This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

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

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

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

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

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

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

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

    user5287758 说:
    并显示欢迎界面。

    显示屏是什么接口的?

  • 程序约170k。主要功能已经完成。
    显示屏是SPI接口。
  • 我想通过-reg_config配置SPICDR来提高一下SPI clock是否也是可以达到你的要求的?

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

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

    不知道TI有没有类似的例程,或者相关的应用笔记呢?
  • 我记忆中好像没看到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里做的。

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