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

Denis Shienkov scapig2 at yandex.ru
Mon Jul 22 16:11:27 CEST 2013

First - thanks, guys for the help in discussion. :)

> I find it hard to believe that there is "no OS" - the device has to boot
> into *something*, and that something would constitute an operating
> system. Perhaps you mean "no mainstream OS"?

In principle Yes, there are also other specialized OS's for Embedded devices. But I speak about those devices which have no OS. 
For applications of these devices isn't used any target ABI. The application is the own master, that himself controlling own resources and so forth.

These Applications are loaded and carried out by the CPU directly from FLASH/RAM/ROM/EEPROM.

> what a lack of imagination.

But it is a fact! :)

> we are talking about 8-bit
> microcontrollers with 2kb of ROM and 128 bytes (!) of RAM in the minimal
> configuration.

Yes. About microcontrollers, like ARM, AVR and so forth. But size of FLASH/RAM/ROM can be more than 2kB and arch can be 32, 64 bit. :)

e.g. http://www.st.com/web/en/catalog/mmc/FM141/SC1169/SS1577 
and so forth.

>maybe you should look up the definition of operating system?
>or explain how it even matters, given that in the best case, the program
>we are building *is* the operating system (and consequently not the
>target operating system)?

When using cross-compilation with use of "None ABI" of compilers, the host OS can be any of Linux, Mac. Windows, but target OS doesn't 
exist because application is executed directly on CPU of device.

In this context, yes you are right, the question can be reformulated and replaced "no OS" on something another, for example "Some another OS", 
from it the essence won't change.

Please, give I will ask the abstract, general question: what is need to modify in QBS for possibility of compilation of the program for custom

* targetOS: "MyCustomOS"  (is not "windows", not "linux", .. not ..)
* architecture: "MyCustomArch" (is not x86, not x86_64, not arm)
* toolchain: "MyCustomToolchain" (is not gcc, not msvc, .. not .. )

Whether it is necessary to change C++ sources of QBS, or it is enough to add only new *.js, *.qbs files/modules into QBS?

PS: In advance, sorry for my questions. :)

Best regards,

For creation of software products usually use Keil, IAR environments, etc. which specially are for this purpose intended.
But also for these purposes it is possible to use and open-source compiler, like GCC, e.g.: https://launchpad.net/gcc-arm-embedded/+download

Therefore, having read documentation on QBS, I was confused existence of predetermined target OS which can not be used for this task (I mean devices without OS).
Yes, I agree, when using GCC compiler I can use already GCC toolchain, but I can not to specify target platform/OS, because he is "unknown" for QBS.

More information about the Qbs mailing list