embedded – 在Flash Memory中下载代码的过程
我是Embedded领域的新手.关于hex文件下载,我想到了一个疑问:
由于链接器和定位器的输出是一个二进制文件,其各种部分如.text,.bss,.data等,.text驻留在Flash中,.bss转到RAM,.data转到RAM … 所以我的问题是 >如何将.bss和.data写入RAM,因为我正在使用FLASH Loader将程序刻录到闪存上. 提前致谢.请帮忙. 解决方法
代码,常量数据和初始化数据都写入FLASH.在运行时,初始化数据在启动期间复制到bss.通常直接访问常量数据(使用“const”关键字声明它).
我认为你的意思是“二进制”链接器输出.这通常被称为目标文件,并且与二进制图像不同.目标文件包括所有代码,数据,符号,调试信息和内存地址.对于GCC工具链,链接器输出通常是.elf文件. 您的链接器使用“链接脚本”或其他定义文件来定位相应内存地址的各个段.您的工具链应该有关于如何更改它的文档.
“objcopy”实用程序将读取链接器输出,并可以以各种格式写入输出文件,包括Intel-hex.对于人类可读输出,请参阅“objdump”.
按内存地址. GCC使用“初始化数据”段来复制到bss的数据.它根据您的链接器脚本定位. Intel-hex格式:http://en.wikipedia.org/wiki/Intel_HEX 海湾合作委员会:http://gcc.gnu.org/onlinedocs/ (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |