Saving the ROM content size in a variable

Technical Note 52791

Targets:
ARM

Component:
Linker

Updated:
10/1/2014 2:31 PM

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.

Related Tech Notes

© IAR Systems 1995-2016 - All rights reserved.