NuttX Operating System
beagley-ai
has been
created. This configuration is tailored to the hardware features of our board and the capabilities of the R5F cores.
gcc-arm-none-eabi
toolchain is
the standard solution for this requirement.
On Ubuntu/Debian systems, you can install the toolchain using the package manager:
arm-none-eabi-gcc --version
.
apps
folder contains the applications and
services that will run on the operating system.
beagley-ai
configuration for our Gemstone board:
Build Setup
→ Debug Options
→ Enable Debug Features
. Also, enable the
Generate Debug Symbols
option. These settings ensure the compiler embeds debug information into the binary, allowing
the debugger to perform source-level debugging.
nuttx
, which contains the operating system image to be loaded onto the R5F core.
File
→ Import
→ C/C++
→
Existing Code as Makefile Project
.
Select the nuttx
folder as the project directory and specify Cross GCC
as the toolchain. This configuration allows
CCS to understand the NuttX source code and provide features like syntax highlighting and code navigation.
tiboot3.bin
file located in the SD card’s boot partition launches the U-Boot
bootloader. However, to enable debug access to the R5F cores, we need to replace this file with the tiboot3.bin
produced by the SBL NULL project.
SBL NULL is a special version of the System Boot Loader. This version initializes the SoC at a basic level and leaves
the R5F cores in WFI (Wait For Interrupt) mode. This state allows the cores to wait for the debugger to connect without
executing any code.
Insert the SD card into your computer, back up the tiboot3.bin
file in the boot partition, and replace it with the
file produced by SBL NULL. Reinsert the card into the Gemstone board and power it on.
Run
→ Debug
menu, select the MCU R5F core.
Once the debugger is connected, use Run
→ Load
→ Load Program
to select the nuttx
ELF file. This process loads
the NuttX operating system into the R5F core’s memory.
After the program is loaded, you can set breakpoints, monitor variables, and step through the code. This allows you to
examine critical components like NuttX’s task scheduler and interrupt handlers in detail.
make clean
command removes files generated during compilation but preserves the configuration. make distclean
resets the project to its initial state, requiring you to reconfigure it.
Once this process is complete, your Gemstone board’s R5F cores will be running a fully functional NuttX operating
system, providing a solid foundation for your real-time applications.