[QBS] Customization for Embedded platforms that has no OS.

Denis Shienkov scapig2 at yandex.ru
Sun Jul 21 15:20:03 CEST 2013

Hello QBS developers.

I had an idea to use a pair of QBS + QtCreator for creation of projects 
for Embedded devices
which have no OS. These devices are different development boards on ARM, 
AVR and so forth
processors. Of course, loading of executable code and debugging is 
carried out via different
JTAG and/or SWD adapters.

I know that for these purposes there are many other projects: Keil, IAR, 
CooCox and so forth...
But for me he have some negative moments.

Earlier, I made attempt to create a plug-in for QtCreator:


with support of features of this type of devices, etc. with use of the 
custom Makefile generator
and so forth. But it seems that my attempts came to a standstill because 
of the increased
complexity of implementation many features. And I'm didn't complete 
anything up to the end...

But now I looked towards QBS, and I think - that this solution of all 
problems, very interesting
concept. I think that by means of QBS I can refuse absolutely my plug-in 
(with all its difficulties)
in its current look, and completely to transfer to QBS support.

Having sketchy viewed documentation on QBS I found the following 
(interesting for me):

1) TargetOS: In documentation is listed the list from several supported 
OS. But in my case of
the device have no OS. Thus it is necessary to add one more listing like 

2) CPU: In documentation there is no "avr" platform (AVR CPU).

3) In documentation are listed only the predetermined set of the 
toolchains (GCC, MSVC, etc).
But for me is not clear about use of "custom" toolchains. For example, 
what if I want to use
Keil or the IAR compiler...

Thus I had questions:

1. Whether QBS can adapt somehow for cross-assembly of Embedded of 
projects without OS?
2. What you can give recommendations for implementation?
3. With what to begin implementation, to what features to pay attention?
4. Whether it is necessary to make modifications in source C++ code of 
the QBS (submit new patches),
or it is rather simple to add new modules by means of *.js and/or *.qbs  

5. Whether QBS depends on QtCreator? I mean whether he receives names of 
toolchains and other
settings from QtCreator? Or QBS - completely independent entity which 
uses for this purpose own

Best regards,

More information about the Qbs mailing list