stepping stone
发布时间:2020-12-15 18:37:20 所属栏目:百科 来源:网络整理
导读:这是三星MCU的一种启动方式,s3c2440的MMU有一种“steppingstone”.技术,它是协助MCU从无法执行程序的NAND FLASH执行启动程序的一种方法。 启动流程 1、系统上电后,首先自动判断是否是autoboot模式,如果使用 s3c2410是带有nandflash的,并切被设置成autoboo
这是三星MCU的一种启动方式,s3c2440的MMU有一种“steppingstone”.技术,它是协助MCU从无法执行程序的NAND FLASH执行启动程序的一种方法。
启动流程1、系统上电后,首先自动判断是否是autoboot模式,如果使用 s3c2410是带有nandflash的,并切被设置成autoboot,从nandflash开始启动. 2、在判断是autoboot模式后,mcu内置的nandflash控制器自动将nandflash的最前面的4k区域(这4k区域存放着 bootloader的最前面4k代码)拷贝到samsung所谓的"steppingstone"里面(steppingstone是在S3C2440 中,实际上是一块4k大小的SRAM,). 3、在拷贝完前4k代码后,nandflash控制器自动将"steppingstone"映射到arm地址空间0x00000000开始的前4k区域. 3、在映射过程完成后.nandflash控制器将pc指针直接指向arm地址空间的0x00000000位置,准备开始执行"steppingstone"上的代码. 5、而"steppingstone"上从nandflash拷贝过来的4k代码,是程序员写的bootloader的前4k代码.这个 bootloader在之前写好,并已经被烧写到nandflash的0x00000000开始的最前面区域..而这"steppingstone"上的 4k代码就是bootloader的前4k代码. 6、在pc指向arm地址空间的0x00000000后,系统就开始执行指令代码.这4k代码的任务是:初始化硬件,设置中断向量表,设置堆栈,然后一个很重要的任务是,将nandflash的最前面区域的bootloader(包含4k启动代码)拷贝到SDRAM中去,bootloader代码的大小是写好bootloader就确定的.然后只需要确定bootloader想映射到SDRAM的起始位置就ok. 7、在完成对nandflash上的bootloader搬移后,找到4k代码的搬移代码最后一个指令的下一个指令在SDRAM的bootloader的地址,然后跳转到该位置,继续执行bootloader的剩余代码(引导系统).(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- c# – 将操作存储在单个集合中以备以后使用
- c# – 手动实例化的SessionState提供程序的问题
- postgresql – 从Debian Docker容器连接到Windows Postgres
- objective-c – 调试器lldb说我的对象是不是什么时候不是?
- 【原创】aix 7.1 平台 oracle 18c unzip工具解压BUG
- 什么都不知道……使用ri数组时 – Ruby
- C++静态绑定和动态绑定(无师自通)
- 推荐好书Enterprise Rails
- 浅谈vue-lazyload实现的详细过程
- c# – 如何从ASP.NET Core中的ActionFilterAttribute访问Ap