嵌入式 Linux面试基础题

本文详细解答了嵌入式Linux面试中的一些基础问题,包括uboot启动流程、为何关闭cache、nandflash与norflash的区别、循环控制语句的理解、设备驱动相关问题以及内存管理等内容,旨在帮助读者深入理解嵌入式Linux系统的核心概念。
摘要由CSDN通过智能技术生成

请问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口的问题,

  • 12
    点赞
  • 164
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
嵌入式Linux面试笔试通常包括以下几个方面的问: 1) 嵌入式系统的特点:面试官可能会问你嵌入式系统和普通计算机系统的区别,嵌入式系统的应用场景,以及与Linux系统的关系。 2) C语言基础面试中可能会问到一些C语言的基础知识,比如C语言的数据类型、指针、数组等。你可以参考引用中的内容来回答这些问。 3) volatile关键字:面试官可能会问你volatile关键字的作用和使用场景。可以参考引用中的内容来回答这个问。 4) 字符串操作:面试中可能会涉及字符串操作的问,比如字符串倒序的实现。你可以使用C语言的库函数和循环来实现字符串倒序。 5) 输入函数的选择:面试官可能会问你scanf()和gets()函数的使用场景和优缺点。可以提到scanf()函数可以用来读取不同类型的输入,而gets()函数更适合读取一行字符串,但存在缓冲区溢出的风险。 6) 循环语句的选择:面试官可能会问你for循环和while循环在实现循环时的差异和选择。可以提到for循环适用于已知循环次数的情况,而while循环适用于未知循环次数的情况。 以上是一些常见的嵌入式Linux面试笔试的主。具体问会根据面试官的要求和公司的需求而有所不同。希望对你有所帮助。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Linux嵌入式软件面试整理](https://blog.csdn.net/weixin_42145502/article/details/107743404)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值