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.

代码量大于2812 片载FLASH的存储空间,如何固化、运行程序?



代码量有可能会超出2812的片载FLASH空间, 想扩展片外FLASH,并将程序固化在片外FLASH中。如何将片外FLASH中的程序运行起来?想法:上电后将片外FLASH中存储的程序分段运行在片内RAM(运行速度要求高的程序段)、片载FLASH(速度低于内部RAM;高于外部RAM)、外部总线连接的外部RAM(速度最慢)。这种想法可以实现么?如何实现?

  • 可以实现。外扩flash存储的部分代码需要你建个专用工程完成代码数据的写入

    上电后需要二次引导 引导到RAM中跑

  • 1.引导ROM只能将片外SPI FLASH中的程序中下载至内部RAM,而内部RAM仅有18K word,承载不了大量的代码。

    2.2812提供一种boot rom serial FLASH programming机制,并提供了一种SCI引导案例,这种方式是将引导程序放在内部RAM中运行,通过一种专用的FLASH API将接收到的应用程序写入片内FLASH.这个案例有一定的借鉴意义,该案例给出的应用程序代码量小于片内FLASH的存储空间。而我目前面临的问题是应用程序大于片内FLASH存储空间,又该如何将程序分别引导至片内FLASH和片外RAM中呢?

  • 关于这个问题有篇文章可供参考:https://wenku.baidu.com/view/4ae8b2daad51f01dc281f197.html

    以及下面帖子讨论的是F28346外部flash启动的问题,

    http://www.deyisupport.com/question_answer/microcontrollers/c2000/f/56/t/12581.aspx?pi239031348=1

  • 最简单的方案,换28335,内部FLASH空间扩大一倍。外扩并口的NOR FLASH也可以。
    ps,什么项目有这么大的代码量?按照我的经验,除非项目中有二进制图片、汉字库之类,想把2812的FLASH空间全部填满还是很困难的。大容量数据解决起来很容易,一只8脚的SPI FLASH就搞定了。