单片机外挂SDRAM与NANDFLASH的系统规划,并设计一个山寨内核

现在用的单片机STM32F4系列都是M4,STM32F4XX9系列可以外挂SDRAM,与NANDFLASH,这样的硬件框架就类似于ARM9开发板了,所以完全可以在这样一个硬件平台上设计一个类似于ARM9一样的系统框架。这里的STM32F4XX9只有1M的内部FLASH,512K的内存,如果拿他来做大型的应用远远不够,所以外挂了SDRAM与NAND。这里SDRAM有32M,NANDFLASH有128M。

可以这样设计:

内部1M的FLASH和512k内存都用于启动代码,他的功能类似于uboot,只是这个启动代码完全独立的,不会想ARM9那样下载到NANFLASH,再上电自动加载到4k空间里面,这里的启动代码和NANDFLASH里面存放的程序完全独立,他主要完成以下功能:初始化SDRAM与NANDFLASH,下载程序到NAND,把程序从NAND复制到SDRAM,跳转到SDRAM里面执行应用程序。

外部NAND存放应用程序,文件系统。

外部SDRAM存放运行的应用程序,图形缓存区,堆,栈,只是这里面的链接起始地址不是0x00000000了,而是SDRAM的物理起始地址。所以在编译应用程序的时候需要把链接起始地址设置一下。用分散加载文件设置。


这样的系统框架就跟ARM9系统很像了。

现在打算把应用框架设计为LINUX内核的模式:

freeRTOS + yaffs2 + SQLite + Lwip + cdev + shell + 输入子系统 + emWin + 其他中间件

把上面这些做个编译与链接配置文件(类似makefile),再封装成库,留出API头文件,这些API对上提供了应用所需的接口,对下提供硬件平台移植接口,这样一个山寨的“内核”就出来了。以后项目管理要升级维护就很简单,立个新项目能快速开发。缺点就是消耗了点硬件资源,但硬件资源技术上的不断进步,成本越来越低,这一块不能像以前那样的老工程师那样的思维模式,现在的项目管理与设计要把开发速度与维护成本要在首要位置。

这样的模式在一个小型的控制系统中足够用了。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值