407外扩sram和外扩flash的问题

2019-07-20 17:52发布

  如题,主要问题有以下几点,望原子哥和各位大神不吝赐教:
  1、407的程序是否可以在外扩sram上运行,如果可以,该怎么做,希望大神们给点思路;如果不行,那么外扩sram是否仅用于保存数据,例如某些初始化要用的超级大数组。
  2、程序能否下载到外扩flash中,运行时由外扩flash加载到ram中(片内或外扩)执行,如果可以该怎么做;如果不行,那么外扩flash是否仅能保存一些数据,掉电后仍要保存的数据。
  3、基于以上两点,程序可否烧写进外扩flash,然后加载到ram(片内或外扩)中运行,类似linux的启动流程中bootloader(uboot)机制。
  4、如果1、2两点都可行,那么使用开发板板载的flash和sram是否可以实现,如果不行,那么需要使用什么型号的flash和ram(例如norflash、sdram等)。
  希望原子哥和各位大神倾力相助啊~~~小弟谢过!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
15条回答
天涯歌戮
1楼-- · 2019-07-21 07:20
本帖最后由 天涯歌戮 于 2016-8-30 11:16 编辑
zmingwang 发表于 2016-8-30 10:58
FSMC只能挂NAND 和NOR,你还有什么FLASH?

谢谢大神的指点~刚才详细看了下,可以在mdk中配置下载程序到nand或nor flash中,然后在片内flash中烧写一段代码,这个程序要初始化用到的设备,然后将nand 或 nor中的程序拷贝到外扩sram中去,然后设置pc指针到sram的程序运行地址处,搞定~~~整个流程思想其实就是linux中uboot的启动思想,我想复杂了。
zmingwang
2楼-- · 2019-07-21 09:54
 精彩回答 2  元偷偷看……
天涯歌戮
3楼-- · 2019-07-21 10:31
zmingwang 发表于 2016-8-30 11:35
SRAM有可能比你的主控芯片都贵,你有这种想法才是想复杂了.
如果主控芯片的片上FLASH满足不了你的设计需 ...

是的,现在的项目没必要用这种思路,这样做真的是吃力不讨好~
taoking_opendev
4楼-- · 2019-07-21 13:58
关于程序运行我想说几点:首先单片机程序运行方式和pc机是不同的,因为单片机的程序是放到nor flash中的,也是在flash中运行的,因为nor flash可以随机寻址,就和RAM差不多。其次单片机要把程序放在RAM中运行是非常傻的行为,因为速度会变慢而不是变快。第三,nand flash不能随机寻址,所以不能作为程序运行的载体而只能作为存储。第四,pc之所以要把程序从硬盘加载到sdram中运行,除了运行速度快,更重要的是还是不能随机读写。第五,sram比sdram贵的多,所以pc的大内存都是用的sdram,只有小容量的缓存是用的sram,毕竟价格因素和体积因素是不可忽视的。先写这么多吧,总之我想表达的是:不要拿单片机来跑linux,哈哈
zmingwang
5楼-- · 2019-07-21 15:44
 精彩回答 2  元偷偷看……
天涯歌戮
6楼-- · 2019-07-21 16:22
taoking_opendev 发表于 2016-8-30 15:04
关于程序运行我想说几点:首先单片机程序运行方式和pc机是不同的,因为单片机的程序是放到nor flash中的, ...

你的意思我明白了,但是,程序不是在flash中运行的,准确的说也不是在ram中运行的,程序是被读到ram中,然后cup读取ram中的指令和数据去跑一个程序,nor flash能够“直接运行程序”最重要的原因是nor是总线型设备,地址总线直接参与cpu编址和寻址。

一周热门 更多>