本人初学者,以下仅为个人理解
iram,irom和dram
iram : 指令存放处,有64kb
irom : flash映射的rom,限制在了8Mbit(二级bootloader可以变相的解除限制)
dram : 变量存放处,有96kb
物理地址分段(部分用链接脚本语法表示)
iram1_0_seg : org = 0x40100000, len = 0x8000 : 因为iram后32kb用cache来映射flash,所以这里只用前32kb
dram0_0_seg : org = 0x3FFE8000, len = 0x18000 : dram,有96kb,一般用链接脚本时这里不放满0x18000(暂时还没搞清楚原因,我看的几个里面放的是0x14000,不知道是不是为了预留动态申请的空间)
0x40200000~0x402FFFFF : falsh映射在cache而形成的物理地址空间
0x40000000~0x400FFFFF : 放置sdk的相关函数,如:
PROVIDE ( SPI_read_status = 0x400043c8 );
PROVIDE ( SPI_write_status = 0x40004400 );
PROVIDE ( SPI_write_enable = 0x4000443c );
...
本文深入探讨嵌入式系统中的iram、irom和dram作用与分配,详细讲解了物理地址分段及其在链接脚本中的表现形式,包括iram作为指令存放区、irom作为flash映射的ROM以及dram作为变量存放区的特性。
2871

被折叠的 条评论
为什么被折叠?



