ARM RO/RW/ZI_DATA内存区域说明
ARM 程序里的变量到底是怎么分的?嗯,多朋友问过我这事儿。其实只要搞清楚RO、RW和ZI_DATA这仨家伙,你就明白变量在内存里是怎么安排的了。RO 是只读区,专门放代码和常量的,编译完就扔 ROM 里,动都不能动;RW 是可读写区,放那些你提前赋了值的变量;ZI 就有点“懒”,编译时啥也没干,等运行时再自动清零。这些内存区域怎么搞得这么复杂?因为 ARM 程序得先在启动时做两件事:把 RW 拷去 RAM,还得把 ZI 那片区域清零——只有这样,C 语言的变量才能正常跑起来。不然只能傻跑些不带变量的代码,哪顶得住?
103.5KB
文件大小:
评论区