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

Determine the maximum size of a region in C source

As there're linker-defined symbols like

Load$$LR$$load_region_name$$Base   Address of the load region.
Load$$LR$$load_region_name$$Length Length of the load region.
Load$$LR$$load_region_name$$Limit  Address of the byte beyond the end of the load region


to get the attributes of a Load region. But I think the Load$$LR$$load_region_name$$Length and Load$$LR$$load_region_name$$Limit are redundant. Since we can calculate the Limit address by adding the Length to the Base address.

My question is how to get the maximum size of a region in C source? For example,

Load Region LR_IROM1 (Base: 0x00005000, Size: 0x00005cb8, Max: 0x0000b000, ABSOLUTE, COMPRESSED[0x000054ec])

Load$$LR$$LR_IROM1$$Length would be 0x000054ec. But is there any symbol to refer to the value of 0x0000b000?

Parents
  • thank you, but how do I access the 'max_size' in code? I am not interrested in changing scatter files or changing the max size at all. I want to known what it is, in code.

    A bit more context: Our framework needs a buffer as large as possible. This is shared over all products we have. But the max size needs to be configured every time for each new project and each target. We want to use all the ram available by using the unused spaced between the end of the stack region and the physical end of the ram. This is why I need to known at which address the application stops using ram and the actual max available ram.

    The end of the used ram by the application I can find, that is not the problem. But how do I get the max available ram? That is, the size of the ram as configured in uVision. This is the max_size of the region. I can find the value manually in the map file. But I need it in code. 

    thank you.

Reply
  • thank you, but how do I access the 'max_size' in code? I am not interrested in changing scatter files or changing the max size at all. I want to known what it is, in code.

    A bit more context: Our framework needs a buffer as large as possible. This is shared over all products we have. But the max size needs to be configured every time for each new project and each target. We want to use all the ram available by using the unused spaced between the end of the stack region and the physical end of the ram. This is why I need to known at which address the application stops using ram and the actual max available ram.

    The end of the used ram by the application I can find, that is not the problem. But how do I get the max available ram? That is, the size of the ram as configured in uVision. This is the max_size of the region. I can find the value manually in the map file. But I need it in code. 

    thank you.

Children