Saving the ROM content size in a variable

Technical Note 52791

Arkitekturer:

ARM

Komponent:

linker

Uppdaterad:

2018-05-31 09:14

Introduction

I have a bootloader that will compute the CRC of the application software to launch. My bootloader knows the application's start address, but I also need the application size (for use in the CRC algorithm).

I have used the "Alternative solution" using checksum-start and checksum-end markers from Technical Note 62709 (IELFTOOL Checksum - Placing the checksum).

I would like to store the size of the ROM content in flash, in a section named ROM_length_used ...

define block ROM_CONTENT with fixed order
{
 readonly section checksum,
 readonly section ROM_length_used,
 readonly section checksum_start_mark,
 readonly,
 readonly section checksum_end_mark
};

place in ROM_region { block ROM_CONTENT };

Solution using C

#pragma section = "ROM_CONTENT"
const size_t ROM_CONTENT_size @ "ROM_length_used" = __section_size("ROM_CONTENT");

Solution using assembler

SECTION ROM_length_used:CODE:NOROOT(2)

EXTERN ROM_CONTENT$$Length

DATA

DC32 ROM_CONTENT$$Length ; Number of RO bytes

END

Example

An example project is available, see link: Example project (TN 52791).zip

 

All Product names are trademarks or registered trademarks of their respective owners.

Det här innehållet finns tyvärr inte på svenska.

Vår webbplats finns främst på vårt koncernspråk engelska, förutom det innehåll för investerare som vi är lagstadgade att kommunicera på svenska. Vi rekommenderar att du besöker vår globala webbplats på engelska för att få en bättre upplevelse.

Vi stöder inte längre Internet Explorer. För att få bästa möjliga upplevelse av iar.com rekommenderar vi att du uppgraderar till en modern webbläsare som Chrome eller Edge.