共2条 1/1
1
跳转至
页
entry,point,bin entry_point对生成bin文件有啥用?
![](http://m.amcfsurvey.com/uphotos/jackwang/thumb/avatar.jpg)
问 在生成
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
跳转至
页
回复
有奖活动 | |
---|---|
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
【有奖活动】智能可穿戴设备AR/VR如何引领科技新潮流! | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
【有奖活动】震撼来袭!这场直播将直击工程师的心灵! |
打赏帖 | |
---|---|
如何实现基于NXPiMX.RT1021的BH1730采集被打赏50分 | |
【换取手持数字示波器】AHT10温度检测分享被打赏40分 | |
【换取手持数字示波器】ACM32F070开发板点亮LCD屏和触控按键,串口,ADC被打赏40分 | |
【换取手持数字示波器】ACM32F070LCD屏和触控按键功驱动蜂鸣器分享被打赏40分 | |
【换取手持数字示波器】国民技术PWM功能知识分享被打赏40分 | |
【换取手持数字示波器】放大器运放知识分享被打赏40分 | |
【分享评测,赢取加热台】+开关电源AC输入知识分享被打赏30分 | |
【换取手持数字示波器】N32G430点亮数码管与串口打印、ADC被打赏40分 | |
老胖子聊电路--分析一个反馈电路被打赏50分 | |
【换取手持数字示波器】+点亮WS2812RGB灯被打赏50分 |