加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

embedded – 在Flash Memory中下载代码的过程

发布时间:2020-12-15 07:29:10 所属栏目:百科 来源:网络整理
导读:我是Embedded领域的新手.关于hex文件下载,我想到了一个疑问: 由于链接器和定位器的输出是一个二进制文件,其各种部分如.text,.bss,.data等,.text驻留在Flash中,.bss转到RAM,.data转到RAM … 所以我的问题是 如何将.bss和.data写入RAM,因为我正在使用FLASH Lo
我是Embedded领域的新手.关于hex文件下载,我想到了一个疑问:
由于链接器和定位器的输出是一个二进制文件,其各种部分如.text,.bss,.data等,.text驻留在Flash中,.bss转到RAM,.data转到RAM …
所以我的问题是

>如何将.bss和.data写入RAM,因为我正在使用FLASH Loader将程序刻录到闪存上.
>在最终二进制文件中是否有任何索引类型的东西区分.text和.bss段.
>链接器/定位器中是否有任何实用程序将我们的简单二进制文件转换为十六进制格式.
>如何从hex文件的内容中区分.text和.bss?

提前致谢.请帮忙.

解决方法

1.) how .bss and .data are written to RAM as i am using FLASH Loader for burning my program onto flash?

代码,常量数据和初始化数据都写入FLASH.在运行时,初始化数据在启动期间复制到bss.通常直接访问常量数据(使用“const”关键字声明它).

2.) Is there any index kind of thing in the final binary which discriminates between .text and .bss segments?

我认为你的意思是“二进制”链接器输出.这通常被称为目标文件,并且与二进制图像不同.目标文件包括所有代码,数据,符号,调试信息和内存地址.对于GCC工具链,链接器输出通常是.elf文件.

您的链接器使用“链接脚本”或其他定义文件来定位相应内存地址的各个段.您的工具链应该有关于如何更改它的文档.

3.) Is there any utility in the linker/locator which converts our simple binary into hex format?

“objcopy”实用程序将读取链接器输出,并可以以各种格式写入输出文件,包括Intel-hex.对于人类可读输出,请参阅“objdump”.

4.) How can I discriminate between .text and .bss from the contents of hex file?

按内存地址. GCC使用“初始化数据”段来复制到bss的数据.它根据您的链接器脚本定位.

Intel-hex格式:http://en.wikipedia.org/wiki/Intel_HEX

海湾合作委员会:http://gcc.gnu.org/onlinedocs/

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读