Tool/software:
Hi TI team,
This is my current memory layout plan for the TMS570LS1224:
{
VECTORS (X) : origin=0x00000000 length=0x00000020 /* 32 B → sector 0 (0x00000–0x0001F) */
KERNEL (RX) : origin=0x00000020 length=0x00007FE0 /* ~32 KB–32 B → sectors 0–1 (0x00000–0x07FFF) */
BOOTLDR (RX) : origin=0x00008000 length=0x00010000 /* 64 KB → sectors 2–5 (0x08000–0x17FFF) */
CONFIG (RWX): origin=0x00018000 length=0x00008000 /* 32 KB → sector 6 (0x18000–0x1FFFF) */
OTA_INFO (RX) : origin=0x00020000 length=0x00004000 /* 16 KB → sector 7 (0x20000–0x23FFF) */
FILESYS (RWX): origin=0x00024000 length=0x0001C000 /*112 KB → sector 7 (0x24000–0x3FFFF) */
APP_A (RX) : origin=0x00040000 length=0x00080000 /*512 KB → sectors 8–11 (0x40000–0xBFFFF) */
APP_B (RX) : origin=0x000C0000 length=0x00080000 /*512 KB → sectors 12–15 (0xC0000–0x13FFFF) */
STACKS (RW) : origin=0x08000000 length=0x00000800 /* 2 KB SRAM */
KRAM (RW) : origin=0x08000800 length=0x00000800 /* 2 KB SRAM */
RAM (RW) : origin=(0x08000800+0x00000800) length=(0x0002F800 - 0x00000800) /* SRAM */
}
I’m currently designing a system with:
-
A bootloader
-
Two application partitions (APP_A and APP_B), both running with RTOS (FreeRTOS)
-
A shared KERNEL and VECTORS section
-
Shared regions for CONFIG and FILESYS
I have a few key questions:
-
How should I properly implement a bootloader on a system that runs RTOS-based tasks?
Most TI examples (like CAN bootloaders) don’t show how to integrate the bootloader with RTOS context switching or how to prepare the RTOS environment before jumping to the app. -
Is it possible to let APP_A and APP_B share the same
VECTORSandKERNELmemory region?
If so, how should I configure both the linker and runtime to avoid reinitializing or corrupting shared memory areas? -
For regions like
CONFIGandFILESYS, is it valid and safe for both applications to share and access them?
What precautions or patterns do you recommend to avoid conflict or corruption during runtime or OTA updates?