共2条
1/1 1 跳转至页
entry,point,bin entry_point对生成bin文件有啥用?
问
在生成bin文件时,我们必须制定一个sactter文件(包括RO、RW段等如何放,放哪里的一个配置文件,当然,为简单起见,我们也可以在ads的连接选项里面,配置-first, -last,-entry_point等。)。
然后Linker会调用这个文件,将各个object的o文件进行连接,生成axf格式的文件,便于axd进行调试。根据资料以及我的实践,我发现sactter文件中entry_point的信息会在该文件的头部留下痕迹!除此之外,没有其他作用!
最后,fromelf把上面的文件生成bin文件时,会把entry_point唯一的痕迹都抹掉。(我采用两个不同的entry_point,生成的bin文件一模一样)。
所以,我就一直都奇怪,既然它对最后的bin文件根本一点影响都没有。 那entry_point是什么用呢? 答 1: 能回答一下吗?我一直还不是太明白。
谢谢拉。 答 2: 我也没搞懂这个问题?Entry到底有什么用呢? 在AXD仿真时,它能指示仿真器(我是软仿真)直接跳到Entry处执行代码,但对生成的实际要烧录的BIN档好像没有什么作用啊?请知道的指点一下,谢谢! 答 3: REAXF文件格式和BIN文件格式是两种完全不同的文件格式.
AXF文件包括了很多的信息:调试信息,ENTRY POINT,源文件路径等.所以,在AXD里面装载AXF文件后,AXD可以从AXF文件里面提取这些信息,根据ENTRY POINT等设置好PC,打开相应的源文件.
而BIN文件,纯粹的二进制文件.AXF文件转换成BIN文件后,BIN文件里只包括AXF文件里的程序指令和一些初始化了的全局数据.其他的调试信息全都丢失了的.
从上面可以看出,一般来说,AXF文件一般是用在调试的时候使用.BIN文件一般是在开发完成后,保存最基本的指令和数据,用来烧写到你的产品的ROM/FLASH里面的.板子上电后,就从地址0X0开始取指令执行.在开发的时候,如果你的程序是要烧写到FLASH/ROM里面,上电就执行的,你必须设置好你的程序的ENTRY POINT,保证ENTRY POINT是在地址0X0.因为实际应用的时候,不象调试,AXD会自动从AXF文件里面提取ENTRY POINT,然后帮你设置好.
希望上面的信息对你有帮助. 答 4: 谢谢twentyone的指点!因为ARM上电都是执行中断向量的跳转程序,所以是不是应该将ENTRY POINT设在中断向量表的位置?而且在实际的应用中,应该将中断向量表放在FLASH/ROM的0x00位置?
我有个假设:假如一段程序主体是没有问题的,即使ENTRYPOINT设置错了位置,但生成的BIN档烧录到FLASH里后,仍然是可以正常运行的。不知道我的假设对不对?
请大家指点!谢谢!
然后Linker会调用这个文件,将各个object的o文件进行连接,生成axf格式的文件,便于axd进行调试。根据资料以及我的实践,我发现sactter文件中entry_point的信息会在该文件的头部留下痕迹!除此之外,没有其他作用!
最后,fromelf把上面的文件生成bin文件时,会把entry_point唯一的痕迹都抹掉。(我采用两个不同的entry_point,生成的bin文件一模一样)。
所以,我就一直都奇怪,既然它对最后的bin文件根本一点影响都没有。 那entry_point是什么用呢? 答 1: 能回答一下吗?我一直还不是太明白。
谢谢拉。 答 2: 我也没搞懂这个问题?Entry到底有什么用呢? 在AXD仿真时,它能指示仿真器(我是软仿真)直接跳到Entry处执行代码,但对生成的实际要烧录的BIN档好像没有什么作用啊?请知道的指点一下,谢谢! 答 3: REAXF文件格式和BIN文件格式是两种完全不同的文件格式.
AXF文件包括了很多的信息:调试信息,ENTRY POINT,源文件路径等.所以,在AXD里面装载AXF文件后,AXD可以从AXF文件里面提取这些信息,根据ENTRY POINT等设置好PC,打开相应的源文件.
而BIN文件,纯粹的二进制文件.AXF文件转换成BIN文件后,BIN文件里只包括AXF文件里的程序指令和一些初始化了的全局数据.其他的调试信息全都丢失了的.
从上面可以看出,一般来说,AXF文件一般是用在调试的时候使用.BIN文件一般是在开发完成后,保存最基本的指令和数据,用来烧写到你的产品的ROM/FLASH里面的.板子上电后,就从地址0X0开始取指令执行.在开发的时候,如果你的程序是要烧写到FLASH/ROM里面,上电就执行的,你必须设置好你的程序的ENTRY POINT,保证ENTRY POINT是在地址0X0.因为实际应用的时候,不象调试,AXD会自动从AXF文件里面提取ENTRY POINT,然后帮你设置好.
希望上面的信息对你有帮助. 答 4: 谢谢twentyone的指点!因为ARM上电都是执行中断向量的跳转程序,所以是不是应该将ENTRY POINT设在中断向量表的位置?而且在实际的应用中,应该将中断向量表放在FLASH/ROM的0x00位置?
我有个假设:假如一段程序主体是没有问题的,即使ENTRYPOINT设置错了位置,但生成的BIN档烧录到FLASH里后,仍然是可以正常运行的。不知道我的假设对不对?
请大家指点!谢谢!
共2条
1/1 1 跳转至页
回复
有奖活动 | |
---|---|
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
【有奖活动】震撼来袭!这场直播将直击工程师的心灵! | |
“我想要一部加热台”活动,不花钱赢取开发好工具!活动开始了哦 | |
【有奖活动】伙伴们:您的“需求”解决了吗? | |
抽奖了,抽奖了,金升阳医疗电源 |
打赏帖 | |
---|---|
【换取手持数字示波器】+与同事对定时器输出相位可调PWM移相全桥控制分享被打赏50分 | |
【换取手持数字示波器】+LP-MSPM0L1306开发板试用体验+串口被打赏40分 | |
CC-RL编译器相关问题求助被打赏10分 | |
【换取手持数字示波器】+与同事对ESP-12开发调试经验分享被打赏50分 | |
【换取手持数字示波器】+同事tek示波器调试spi解析被打赏50分 | |
【换取手持数字示波器】+2.6寸墨水屏调试经验被打赏50分 | |
换取手持数字示波器+个人开关电源的设计经验被打赏50分 | |
【换取手持数字示波器】+【APT32F173测评】+URAT被打赏20分 | |
【换取手持数字示波器】CH32X035的定时器以及外部中断体验被打赏50分 | |
【换取手持数字示波器】CH32X035搭建开发环境(RISC-V)被打赏50分 |