Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Latest commit

 

History

History
71 lines (55 loc) · 2.99 KB

File metadata and controls

71 lines (55 loc) · 2.99 KB

Flash Layout

This document summarizes the CC1352R flash/RAM placement used by Rehydrator and the boot order expected by TI BIM.

Memory Regions

Region Address range Use
Flash 0x00000000 - 0x00057FFF Firmware images, OAD headers, BIM, and CCFG
SRAM 0x20000000 - 0x20013FFF Runtime data, stack, BSS, and DMA tables
GPRAM 0x11000000 - 0x11001FFF Cache/GPRAM area
ROM Device internal TI ROM boot code and helper routines

Firmware Slots

Slot Start End Role
User image 0x00000000 0x0002FFFF First APPSTACKLIB image checked by BIM
Persistent fallback 0x00030000 0x00051FFF Fallback when the user image is missing or invalid
Metadata 0x00052000 0x00053FFF Reserved update metadata area
Recovery 0x00054000 0x00055FFF Reserved recovery/staging area
BIM + CCFG 0x00056000 0x00057FFF TI BIM and critical device configuration

Each image reserves the first 0x100 bytes for the OAD image header. The reset vector table starts immediately after that header area.

Image Header Entry / reset vector Image type
new-firmware 0x00000000 0x00000100 APPSTACKLIB
old-firmware 0x00030000 0x00030100 PERSISTENT_APP

Boot Order

flowchart TD
    A[Reset] --> B[ROM boot and CCFG settings]
    B --> C[TI BIM at 0x00056000]
    C --> D{Valid APPSTACKLIB at page 0?}
    D -- Yes --> E[new-firmware entry 0x00000100]
    D -- No --> F{Valid persistent fallback?}
    F -- Yes --> G[old-firmware entry 0x00030100]
    F -- No --> H[Boot failure or recovery path]
Loading

BIM checks the page 0 user image first. If only old-firmware is programmed, the user slot is empty and BIM falls back to the persistent image. After new-firmware is programmed at page 0, BIM selects it as long as its OAD header is valid.

CCFG Note

CCFG controls reset and boot behavior. In this layout CCFG is bundled with BIM inside the last flash sector:

0x00056000 - 0x00057FFF

Do not use full chip erase while testing this layout unless BIM + CCFG will be reprogrammed immediately afterwards.

Design Questions

Question Answer
Where is the first working old image placed? old-firmware is placed in the persistent fallback slot: 0x00030000 - 0x00051FFF.
Where is the update image placed? new-firmware is placed in the page 0 user slot: 0x00000000 - 0x0002FFFF.
Can two complete images exist at the same time? Yes for these small examples. The general answer depends on application size and the chosen OAD layout.
What if only a staging area exists? A bootloader or recovery routine must verify and copy the staged image into an executable slot, or expose it through a BIM-compatible header.
Why avoid erasing the running image or BIM sector? Flash erase is sector based. Erasing the active image, fallback image, BIM, or CCFG can break the boot flow.