本帖最后由 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作为多个数据接口的异步接收缓存或者断电数据保存之类的,彻底把板子的资源榨干净。 |