我想从spi1 flash启动,程序较大,所以做了二级引导,现在二级引导可以跑起来,但是应用程序起不来
我的工程思路是:RBL+UBL+APP(所有的代码都是在L2RAM中运行,UBL和APP通过CMD文件指定了不同的运行内存地址)
问题1:当app大于64kb时,不加UBL的情况下,RBL读取不了这么长的数据吗,导致起不来?RBL最大读取64kb的数据吗?
问题2:UBL最大是多少kb?小于等于16kb?还是小于等于64kb?
问题3:UBL利用AISgen_d800k008.exe工具生成“.ais”格式的文件,RBL会根据此文件里的一些命令初始化一些硬件环境,但是后面的APP在内存中运行时就不需要依赖RBL了吧,如果不需要依赖RBL,那么APP应该用什么工具生成什么格式的文件呢?
问题4:在UBL中我直接将APP的c_int00段的地址赋值给一个函数指针,然后调用函数指针跳转到相应的地址,这样就可以启动app了吧(当然前提是都复制到内存中去)?
问题5:在步骤4中UBL启动APP时,程序直接跑飞,PC值从APP的c_int00段的地址值开始不停的累加增长,(APP通过out2rprc.exe工具转成的".bin文件"),可以不?
user5781709:
回复 Shine:
在SPI1 FLASH中的APP程序大于64kb的话(AIS格式的二进制文件),RBL也能读取启动吗?(在L2RAM中运行),我之前查的资料好像是从SPI1 flash启动的话只能是小于或等于64kb的代码?是不是我记错了!
Shine:
回复 user5781709:
如果是SPI flash, 最大支持24bit address,如果是SPI EEPROM,最大支持16bit addresss,在bootloader手册上都有说明9.4 SPI Boot Modes。
www.ti.com/…/spraat2f.pdf
user5781709:
回复 Shine:
好的 十分感谢 辛苦辛苦
user5781709:
回复 Shine:
您好如果是SPIEEPROM的话上面的问题3:APP应该用什么样的工具转换成那个格式的二进制文件呢
Shine:
回复 user5781709:
如果一定要用UBL的,我记得starterware里有bootloader可以参考。
processors.wiki.ti.com/…/C6748_StarterWare_Booting_And_Flashing
user5781709:
回复 Shine:
嗯 好的 谢谢 你们效率非常高,态度非常好 ,谢谢