Please note as of Wednesday, August 15th, 2018 this wiki has been set to read only. If you are a TI Employee and require Edit ability please contact x0211426 from the company directory.

SYS/BIOS for the TMS320F2837X ROM

From Texas Instruments Wiki
Jump to: navigation, search

Sysbios image.png
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.

Configuring a SYS/BIOS app to build against the ROM

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:

 var ROM = xdc.useModule('ti.sysbios.rom.c28.Soprano');

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.
XDC Profile Change F2837X.PNG

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

- 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

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.