Linux经常出现的3道基础面试题快来复习吧

电子说

1.2w人已加入

描述

请问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)片上执行。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分