Keil 中 Bin 文件各段地址分析

相关信息:

  1. scatter文件定义:
    LR_IROM1 0x00001800 0x0003E800 { ; load region size_region
    ER_IROM1 0x00001800 0x0003E800 { ; load address = execution address
    .o (RESET, +First)
    (InRoot$$Sections)
    .ANY (+RO)
    }
    RW_IRAM1 0x1FFF8000 0x00008000 { ; RW data
    .ANY (+RW +ZI)
    }
    }

  2. 编译信息:
    Program Size: Code=35080 RO-data=1848 RW-data=168 ZI-data=47208

  3. Bin文件SP地址:0x1FFFD510
    问题:

  4. RAM的空间分配

  5. 如何计算出SP的地址

答:
stack是ZI的一部分,bin中第一个int是MSP,相当于stack的limit address,计算公式为:起始地址(0x1FFF8000)+RW size(0xA8)+ZI Size(0x5068)+Stack Size(0X400)=0x1FFFD510。本例中ZI Size分为两部分,分别放在0x1FFF8000和0x20000000起始的两段RAM中,Size分别为0x5468和0x6400。

你可能感兴趣的:(Keil 中 Bin 文件各段地址分析)