This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Region$$Table$$Base and Region$$Table$$Limit

Hi, I am working with Keil MDK- ARM IDE, and I am looking for information on the the linker generated modules and symbols that are included in the .map file. The target system consists of a Cortex-M3 LM3S6965 with 256kB flash and 64kB SRAM.

I want detail information on Region$$Table$$Base and Region$$Table$$Limit symbols. i.e. What is the purpose of Region$$Table$$Base and Region$$Table$$Limit? How are these symbols used by the startup code.

In my application, there are two structures that are stored in Flash. These structures are mapped before the Region$$Table$$Base and Region$$Table$$Limit symbols.
While I am writing any data to these structures the entire 1KB of flash is erased, data are also gets stored but then after my system gets hang.

my .map file is:

stMapper 0x00007e78 Data 5238 modbus_mapper.o(.constdata)
stModbus_ROM 0x000092f0 Data 3080 modbus_parameter.o(.constdata)
Region$$Table$$Base 0x0000a188 Number 0 anon$$obj.o(Region$$Table)
Region$$Table$$Limit 0x0000a1a8 Number 0 anon$$obj.o(Region$$Table)

so is there any solution to take Region$$Table$$Base and Region$$Table$$Limit symbols above stMapper and stModbus_ROM structures?

Please help urgently...

Regards,
Urvi

Parents
  • Thanx Westonsupermare Pier, the problem was actually in my .sct file. I have updated my scatter file as:

    LR_IROM1 0x00000000 0x0001E800 { ; load region size_region ER_IROM1 0x00000000 0x0001D000 { ; load address = execution address *.o (RESET, +First) *(InRoot$$Sections) .ANY (+RO) } RW_IRAM1 0x20000000 0x0000FFF0 { ; RW data .ANY (+RW +ZI) } RW_IRAM2 0x2000FFFC 0x00000004 { .ANY (+RW +ZI) } MAPPER_CONFIG_DATA 0x0001C400 FIXED 0x00001800 { Modbus_Mapper.o (.constdata) }
    }

    LR_IROM2 0x0001DC00 0x00001000 { ER_IROM2 0x0001DC00 0x00001000 { ; load address = execution address Modbus_Parameter.o (.constdata) }
    }

    so now my updated .map file is like:

    Region$$Table$$Base 0x000077b4 Number 0 anon$$obj.o(Region$$Table)
    Region$$Table$$Limit 0x000077d4 Number 0 anon$$obj.o(Region$$Table)
    stMapper 0x0001c400 Data 5238 modbus_mapper.o(.constdata)
    stModbus_ROM 0x0001dc00 Data 3080 modbus_parameter.o(.constdata)

    & now its working correctly.....

Reply
  • Thanx Westonsupermare Pier, the problem was actually in my .sct file. I have updated my scatter file as:

    LR_IROM1 0x00000000 0x0001E800 { ; load region size_region ER_IROM1 0x00000000 0x0001D000 { ; load address = execution address *.o (RESET, +First) *(InRoot$$Sections) .ANY (+RO) } RW_IRAM1 0x20000000 0x0000FFF0 { ; RW data .ANY (+RW +ZI) } RW_IRAM2 0x2000FFFC 0x00000004 { .ANY (+RW +ZI) } MAPPER_CONFIG_DATA 0x0001C400 FIXED 0x00001800 { Modbus_Mapper.o (.constdata) }
    }

    LR_IROM2 0x0001DC00 0x00001000 { ER_IROM2 0x0001DC00 0x00001000 { ; load address = execution address Modbus_Parameter.o (.constdata) }
    }

    so now my updated .map file is like:

    Region$$Table$$Base 0x000077b4 Number 0 anon$$obj.o(Region$$Table)
    Region$$Table$$Limit 0x000077d4 Number 0 anon$$obj.o(Region$$Table)
    stMapper 0x0001c400 Data 5238 modbus_mapper.o(.constdata)
    stModbus_ROM 0x0001dc00 Data 3080 modbus_parameter.o(.constdata)

    & now its working correctly.....

Children
No data