Programming BBB - How assembly code & OS work together

I was going to start off programming my BBB with C++ before running into this post:
Apparently, BBB can be programmed with CCS, which offers assembly, C, and C++.


  1. Does the code compiled with CCS run on the OS, or straight on the CPU? If on OS, where is it written to, how does it get started and executed?
  2. What are the differences between CCS C/C++ code and CCS assembly code running on BBB?
  3. What are the differences between CCS C/C++ code and C/C++ code from another IDE or compiler running on BBB?
  4. Can I write assembly code with CCS, run on the OS, and interact with the OS’ other processes (communication, file I/O)?

Thank you so much.

Also, does CCS write the compiled the code onto the eMMC or the SD card?


I suggest you to visit this YouTube channel:

It might be the solution for all the questions you asked in the previous mail.

I hope you to find the solutions.

Best regards.

Some of this is described on the processor wiki. Bare metal means no OS.
Using CCS you have source level debugging and jtag support instead of printf.
Bare metal allows maximum possible hard real-time responsive but puts the burden of anything beyond the driver’s provided in starterware on you.
If your system needs operating system like services you have 3 choices TI_RTOS , open source Linux or a Commercial RTOS.
read about the processor boot sequence in the TRM and read the PowerPoint on the wiki and baremetal howto it should be obvious that CCS uses a gel script that does the firmware equivalent of the 1st stage boot loader and uboot and the code is placed in RAM.
Then when your code works and you have your product hardware you decides what kind of loader beyond the Rom bootloader you want to implement which will determine the strapping of the pins.
Your question about programming languages I don’t understand. All 3 languages are supported by GCC command line builds or CCS and RTOS use an API usually C language but some support c++. Calling C code can be done from assembler but requires understandings the registers used by the compiler.

Your final system design and budget dictates which OS, IDE/compiler and jtag barebones vs the open source Linux and printf debugging you go with.

This forum generally supports linux. Bare metal is supported by e2e forum if you plan on not reading and blindly expecting to get something working with minimal effort your probably better off in here maybe someone will write your Linux application code for you in here.