TI中文支持网
TI专业的中文技术问题搜集分享网站

EVM5515上能否实现程序分段加载?或二次加载?

我把程序放在SPI flash,启动时很慢,4~5秒。所以想作如下处理?

设计需求,上电后,C5515内置的BootLoader先从SPI flash最低地址加载一小段程序,用于初始化IO等基本外设,并显示欢迎界面。

然后,这段小程序再从SPI flash更高的地址加载更多程序,然后跳转过去运行。加载后一段程序的过程中,一直显示的是欢迎界面,这样就不会显得启动慢了。

不知道是否可以实现?怎么实现?

Tony Tang:

user5287758启动时很慢,4~5秒。

你的程序多大?已经初步完成了?

user5287758并显示欢迎界面。

显示屏是什么接口的?

Shide Lu:

回复 Tony Tang:

程序约170k。主要功能已经完成。
显示屏是SPI接口。

Tony Tang:

回复 Shide Lu:

我想通过-reg_config配置SPICDR来提高一下SPI clock是否也是可以达到你的要求的?

Shide Lu:

回复 Tony Tang:

e2echina.ti.com/…/159078
“C55x使用SPI Flash启动超级慢,怎么解决?”这个帖子中讨论过了。
不过现在解决了SPI flash加载速度慢的问题。解决方法见“C55x使用SPI Flash启动超级慢,怎么解决?”原贴。

现在也没必要二次加载了。

Shide Lu:

回复 Tony Tang:

虽然我当前的情况没有必要进行二次加载了,但是有一种情况还是需要的,就是产品升级固件的时候。
如果将产品程序设计成两个部分,第一部分为用户BootLoader,第二部分为用户应用程序。
第一部分代码由DSP内置的BootLoader加载。第二部分由用户BootLoader加载。
正常情况下,第一部分运行完了就跳转到第二部分运行。
在特定条件下,比如开机时长按某个按键,则第一部分程序对第二部分程序进行更新,如从SD卡读取bin文件写入第二部分,覆盖旧的应用程序。然后再加载更新后的应用程序,最后跳转运行。

不知道TI有没有类似的例程,或者相关的应用笔记呢?

Tony Tang:

回复 Shide Lu:

我记忆中好像没看到TI提供过C55x的二级boot。我说一下过程,其实我看你对TI的DSP已经很熟悉了,可能你也知道了。

#1. 两个工程,一个二级boot, 一个APP。分别转换成boot table,二级boot的bin可以通过–reg config配置PLL等提高速度。APP.bin只是boot table就可以了。

#2. 将boot.bin烧到flash的首地址,APP烧到自己约定的偏移地址。这样boot起来后,从偏移地址按boot table格式读取APP。然后跳转到APP即启动应用。

#3. 在Boot的代码里实现检测某个键按某个键从SD读APP更新flash的功能。这个其实也是可以在APP里做的。

Shide Lu:

回复 Tony Tang:

嗯,就是这个思路!
如何生成boottable的APP.bin文件?对boottable工程有没有什么特殊的配置?
对于这些问题,TI有没有例程或者应用文档呢?

赞(0)
未经允许不得转载:TI中文支持网 » EVM5515上能否实现程序分段加载?或二次加载?
分享到: 更多 (0)