最新消息:20210816 当前crifan.com域名已被污染,为防止失联,请关注(页面右下角的)公众号

程序运行机理解析

工作和技术 crifan 1345浏览 0评论

1.程序运行的前提就是,加载code到ro段,加载数据到data段,将zi段memset成0。其中,code要放到对应的区域。加载和执行地址可以不一样。ARM支持的,和scatter file相关reload机制,也就是这样,同样的地方,在不同时刻(即程序执行时候需要运行此段代码),可以加载不同的code,然后执行区域可以放到别处。在load不同code和data进来后,还要手动去清零对应的区域,因为此时没有了之前第一次启动时候,编译器或者bootload,没法清零对应区域了,所以要手动memest 0对应区域。

2.要实现程序运行的前提,那就要有人去做对应的上面的事情。在程序正常执行的时候,bootload就是起这个作用:装code和data到对应的区域。如果code是压缩的,还要实现解压缩,并拷贝到对应执行区域。将ZI段清零。在调试程序的时候,调试器就实现了对应的事情,将code和data拷贝到内存里面,并清零ZI段,然后就可以执行程序了。

上述是解析部分程序运行机理,待补充。以上内容如有不妥,还请指出。

转载请注明:在路上 » 程序运行机理解析

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
79 queries in 0.155 seconds, using 22.09MB memory