关于6410的sd卡和nandflash启动的区别
今天在公司我们队长问我个问题,关于cortex的sd启动流程和nandflash的启动流程,一下想不起来了,中午闲来无事就整理了整理当初6410的两种启动方式的区别。在这里写一下。有不对的请指点,我对Rom,Ram,Sram这些实在学不通。
1,sd卡启动6410
首先,sd卡启动0地址在Rom里面,上电后,程序从0地址开始执行,将sd卡的前8Kbootloader拷贝到Sram里面执行,这8Kbootloader会对进行一些设备的初始化,关闭看门狗,初始化nandflash,初始化时钟,初始化必要的硬件设备等等,执行完毕后,由Rom执行程序将整个的bootloader拷贝到内存(这里包括之前的8K),然后在内存执行bootloader,注意,此时将不再执行前8K,而是跳到某个函数地址开始执行。
2,nandflash启动
首先,nand启动呢,0地址不再是在Rom里,而是在一个叫stepstone控制器里。由它掌管执行指令的跳转和程序拷贝。之后的运行和sd卡基本是一样的。也是将bootloader的前8k拷贝到Sram里,之后同sd卡启动,只是执行地址跳转以及程序拷贝不由Rom控制而是由stepstone控制器控制了。
综上,这两种启动方式的不同有两个:
1,映射0地址不一样,sd卡0地址在ROM里,而nandflash启动的0地址在Sram里。
2,sd卡启动是用ROM进行地址的跳转和程序的拷贝,而nandflash启动是用stepstone控制器来进行的。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
2012-09-23 QT实现的简单五子棋游戏