打印

编译后的AXF文件大于512KB状况

[复制链接]
5583|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
stm32boy|  楼主 | 2011-11-12 20:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 stm32boy 于 2011-11-17 11:30 编辑

最近转入STM32的开发,搞了块红牛开发板STM32F103ZET6做测试,板上已外扩了SDRAM-256KB,NOR-FLASH-2MB(8bit),及128MB(8bit)的NAND-FLASH片子,入手先看了看所附的UCOS+UCGUI例程,用KEIL的uv4mdk for arm编译后,出来的axf文件居然2.3MB,还能用JLINK-V8(JTAG模式)烧入板子里,而且还能跑的蛮顺畅的,真是神了……

STM32F103ZET6片内FLASH是512Kb的,片内SRAM也只有64Kb,真觉得这个例程不可思议,正在进一步看源码的函数,有玩过的高手给指教指教,这2.3MB的axf文件是怎么烧入板子里的?

对,对……uv4mdk for arm自己可以通过jTAG烧录时把bin码隔离出来,干脆我在options for Target 'uCOS_uCGUI'里的User版面中"Run User Programs after Build/Rebuild"-"Run #1"那项打勾,再填入"D:\Keil\ARM\BIN40\fromelf.exe --bin  -o ./Obj/uCOSDemo.bin ./Obj/uCOSDemo.axf"就将bin码挖出来了,不错,
uCOSDemo.axf -2350kb
uCOSDemo.bin -221kb
uCOSDemo.hex -620kb

随着RTOS的盛行,在实现多任务单线程的OS开发中,加上GUI的配套,程式的体积会越来越大,这是不可避免的。在这块开发板上,有NOR-FLASH和NAND-FLASH,这两个玩意儿是很有用啲,还有一块PSRAM=256kb作为补充,从开发性价比来看,上RTOS是最理想的,通过IAP的方式,先在片内FLASH(512KB容量内)烧入一个小型U-boot作为启动引导,然后再通过jTAG把RTOS的代码bin源烧进nand-flash里面,启动后通过u-boot把OS分批“搬运”到片内64kb或者扩展的PSRAM里面跑起来,然后利用片内剩余的flash空间搞搞其它什么加密之类的东西,防止NAND-FLASH里的源码随便被导出来的问题发生,还可以利用NOR-FLASH作为多个数据接口的异步接收缓存或者断电数据保存之类的,彻底把板子的资源榨干净。
沙发
mcuisp| | 2011-11-13 08:15 | 只看该作者
512KB是指bin镜像的大小,axf文件比bin大很多。

使用特权

评论回复
板凳
李富贵| | 2011-11-13 08:18 | 只看该作者
真是思路广欢乐多

使用特权

评论回复
地板
stm32boy|  楼主 | 2011-11-14 11:07 | 只看该作者
用uv4mdk for arm生成的ARM 的映象文件有axf 格式和bin格式两种,在目标文件中一般不会自动生成bin码文件,要另外定制才会拉出来,axf文件里包含了bin码。其实bin 文件是真正的可执行文件,而axf文件是ARM 特有的调试文件,里面除了包含bin 文件的内容之外,还附加了许多其他调试信息。

用uv4mdk for arm通过jTAG烧片时,会自动把bin码烧进去的,而axf文件不过是个幌子而已,谢谢各位砖家的提醒指教。

使用特权

评论回复
5
香水城| | 2011-11-14 11:43 | 只看该作者
AXF文件中包含很多定位和调试信息。

使用特权

评论回复
6
byrin| | 2011-11-16 19:30 | 只看该作者
STM的单片机,其中所谓的片内Flash512K 不是指它 片内Flash只有512K,事实上它片内Flash要大于512K,官方给出的512K 是指程序在里面能够稳定运行的最大Flash容量.512K就是说512K以内的的程序在其中能够稳定的运行,超过512K,它不保证能够稳定运行.运行过程中可能会出行这样那样的问题!!!!

使用特权

评论回复
评论
smartmcu 2013-2-7 16:05 回复TA
这个说法很可爱! 
7
15113484470| | 2014-11-12 15:23 | 只看该作者
看来楼主对外扩SRAM Nor 比较有研究,不知道楼主有没有相关资料

使用特权

评论回复
8
diweo| | 2014-11-12 16:09 | 只看该作者
byrin 发表于 2011-11-16 19:30
STM的单片机,其中所谓的片内Flash512K 不是指它 片内Flash只有512K,事实上它片内Flash要大于512K,官方给出 ...

有什么依据?

使用特权

评论回复
9
搞IT的| | 2014-11-12 23:41 | 只看该作者
对外扩SRAM Nor,,个人还知道的很少。。。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:for {;;}

0

主题

34

帖子

0

粉丝