下载,甚至调试功能。但不要指望有一个像 PC BIOS 那样通用的 BootLoader 供你使用,至
少你需要作一些移植工作使其符合你的系统,这个移植工作也是你开发的一个部分,作为嵌
入式开发个入门者来讲,移植或者编写一个 BootLoader 会使你受益匪浅。没有 BootLoader 行
不行?当然可以,要么你就牺牲效率直接从 ROM 中运行,要么你就自己编写程序搬移代码
去 RAM 运行,最主要的是,开发过程中你要有好的调试工具支持在线调试,否则你就得在
改动哪怕一个变量的情况下都要去重新烧片验证。继续程序入口的话题,不管过程如何,程
序最后在执行时都是变成了机器指令,一个纯的执行程序就是这些机器指令的集合。像我们
在操作系统上的可运行程序都不是纯的执行程序,而是带有格式的。一般除了包含上面提到
的几个段以外,还有程序的长度,校验以及程序入口——就是从哪儿开始执行用户程序。为
什么有了程序地址还需要有程序的入口呢?这是因为你要真正开始执行的代码并非一定放
置在一个文件的最开始,就算放在最开始,除非你去控制链接,否则在多文件的情况下,编
译器也不一定将你的这段程序放置在最后程序的最顶端。像我们一般有操作系统支持的程
序,只需在你的代码中有一个 main 作为程序入口——注意这个 main 只是大多数编译器约
成定俗的入口,除非你利用了别人的初始化库,否则程序入口可以自行设定——即可。显然,
带有格式的这种执行文件使用更加灵活,但需要 BootLoader 的支持。有关执行文件格式的
内容可以看看 ELF 文件格式。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !