一
请问uboot启动过程都做了些什么?
二
为什么uboot要关掉cache?
三
nandflash和norflash的区别,对norflash的操作方式的理解?
请先思考后在看答案哦
一
uboot启动过程都做了些什么
1、cpu刚开始初始化的时候,还未设置栈,所以先使用汇编代码,构建异常项链表,然后设置cpu为svc(特权)模式,同时关闭fiq和irq(防止突发中断程序跑飞了)
注:在跳转到内核之前,要满足cpu出在svc模式下。
2、对cp15协处理器进行设置,这里主要是关闭mmu和cache
3、进入到板级初始化阶段,这里会进行时钟、内存、串口的初始化。最后还要关闭看门狗。
4、接下来就是设置栈,为c语言准备运行环境,调用board_init_f,填充gd结构体。
5、对代码重定位,搬运到内存中去,搬运之后,跳转到内存中去执行board_init_r,这里就可以开启cache了,当然也可以不开启。然后初始化其他设备。比如flash、网卡、emmc等。初始化完之后,在执行main_loop
二
uboot要关掉cache
1、cpu刚开始初始化的时候,还未设置栈,所以先使用汇编代码,构建异常项链表,然后设置cpu为svc(特权)模式,同时关闭fiq和irq(防止突发中断程序跑飞了)
注:在跳转到内核之前,要满足cpu出在svc模式下。
2、对cp15协处理器进行设置,这里主要是关闭mmu和cache
3、进入到板级初始化阶段,这里会进行时钟、内存、串口的初始化。最后还要关闭看门狗。
4、接下来就是设置栈,为c语言准备运行环境,调用board_init_f,填充gd结构体。
5、对代码重定位,搬运到内存中去,搬运之后,跳转到内存中去执行board_init_r,这里就可以开启cache了,当然也可以不开启。然后初始化其他设备。比如flash、网卡、emmc等。初始化完之后,在执行main_loop
三
nandflash和norflash的区别及对norflash的操作方式的理解
两种芯片的结构不同 norflash之所以可以片内执行,就是因为他符合cpu去指令译码执行的要求。cpu送一个地址出来,norflash就能给一个数据让cpu执行,中间不需要额外的处理操作。
nand flash不一样是因为nandflash有地址,数据,命令共用io口的问题,cpu把地址发出来之后,并不能直接得到数据,还需要控制线的操作才能完成。就是他没有专用的sram接口。
嵌入式系统中代码的执行方式主要有3种:
完全映射按需分页execute in place (xip)片上执行。
联发科完成在半导体光电领域的布局
英特尔实现3D先进封装技术的大规模量产
金属外壳设备出现漏电现象的原因有哪些
TI PLC开发套件的特点及应用介绍
always block內省略else所代表的電路 (SOC) (Verilog)
Linux经常出现的3道基础面试题快来复习吧
旋转LED数字电子钟制作图解 基于51单片机
同步DC/DC 升压转换器(TI)
盘点VR虚拟现实的展示技术
如何解决温度传感器出现的常见故障
苹果宣布对汽车项目“泰坦计划”裁员200多人
怎样用微型线性执行器制作Arduino键盘门锁
第四代光源,是否将成为最后一代?
新微科技打出“战疫”硬核科技组合拳
机器视觉光源不重要吗?光源的作用不重要吗?光源有什么特点呢?
英伟达(NVIDIA)推出Tegra 4,支援全球首创运算摄影架构
英码科技受邀参加2023计算产业生态大会,分享智慧轨道交通创新解决方案
AMD确认第一款CDNA架构计算卡
如何选择机房,这五大注意事项需了解
小米5C对比600块手机拍照,结果还是有点出人意料