NOTICE: The Processors Wiki will End-of-Life on January 15, 2021. It is recommended to download any files or other content you may need that are hosted on processors.wiki.ti.com. The site is now set to read only.
SYS/BIOS for the TMS320F2837X ROM
Frequently used SYS/BIOS modules have been flashed into the RevB ROM of TMS320F2837X devices. It is now possible to build a SYS/BIOS application against the RevB ROM. One of the benefits of using SYS/BIOS in ROM is that it helps reduce the flash requirements of the SYS/BIOS kernel thus allowing more flash availability for the end application. By default, a SYS/BIOS application will be built to run from FLASH. A special module needs to be included in the application's cfg script to build against the ROM. The details are covered in the below sections.
Contents
Configuring a SYS/BIOS app to build against the ROM[edit]
In order to build a SYS/BIOS application against the ROM, the user is required to do the following two steps:
Step1: Include the following line in their cfg script: <syntaxhighlight lang="javascript">
var ROM = xdc.useModule('ti.sysbios.rom.c28.Soprano');
</syntaxhighlight>
Step2: Change the XDC build profile to debug from project Properties->General setting's RTSC tab. This does not affect the build options used to build the application source files. It only affects the build options used to build the generated C file. When building against the ROM, the pre-built SYS/BIOS kernel library is used to link with the final application. The kernel library is pre-built built with optimization enabled and is not affected by XDC build profile.
Note: SYS/BIOS 6.37.02+ only supports RevB ROM. If a ROM based app built with SYS/BIOS 6.37.02+ is run on an earlier version of the TMS320F2837X silicon (i.e. RevA ROM), the SYS/BIOS validation check will fail and the kernel will loop forever in the ti_sysbios_rom_c28_Soprano_romVersionCheck() function.
Limitations when building a ROM based SYS/BIOS app[edit]
- BIOS.libType config param is not supported and will be ignored when building against the ROM.
- Asserts (BIOS.assertsEnabled) must be disabled when building against the ROM.
- Logging (BIOS.logsEnabled) must be disabled when building against the ROM.
- Tasks and Swis cannot be disabled i.e. BIOS.taskEnabled and BIOS.swiEnabled should be true when building against the ROM.
- Swi and Hwi hooks are not supported.
- Semahpore.supportEvents must be set to false.
- The number of Swi priorities cannot be changed. The default of 16 must be used.
- The Hwi module's auto nesting support cannot be disabled when building against the ROM.
- Memory policy -> STATIC_POLICY is not supported for ROM based apps.
- Zero latency interrupts are not supported.
SYS/BIOS ROM memory map[edit]
SYS/BIOS ROM code makes references to certain generated SYS/BIOS functions and data structures. These generated functions need to be placed at a fixed address in the FLASH and the global data structures need to placed at a fixed address in RAM. Sector B of the FLASH is reserved for these functions and a portion of RAMM1 is reserved for the referenced global data structures. For exact addresses, please see table below.
Section | Start | Length |
---|---|---|
SYSBIOS_ROM | 0x3f8002 | 0x1d6c |
RESERVED_FLASH | 0x82000 | 0x824 |
RESERVED_RAM | 0x780 | 0x68 |
The above table is valid for RevB of TMS320F2837X.