嵌入式软件工程师面试题目整理(六)

本文整理了嵌入式软件工程师面试中的常见问题,涉及uboot启动流程、cache关闭原因、NAND/NOR Flash特性、代码执行方式、循环结构、中断服务注意事项等。详细解答了Linux模块机制的优势、MMU的作用、DMA特点以及FIQ与IRQ的区别。此外,还探讨了内存分配方式、GPIO概念以及中断处理的最佳实践。
摘要由CSDN通过智能技术生成

嵌入式软件工程师面试题目整理(六)

请问uboot启动过程都做了些什么

 见之前ARM部分

为什么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的区别&#x

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

嵌入式与Linux那些事

您的鼓励将使我写出更好的文章

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值