0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

Q4MP_gh_c472c21 来源:未知 2018-12-31 10:40 次阅读

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

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

    关注

    68

    文章

    10412

    浏览量

    206468
  • Linux
    +关注

    关注

    87

    文章

    10981

    浏览量

    206687
  • Uboot
    +关注

    关注

    4

    文章

    123

    浏览量

    27855

原文标题:Linux面试基础题3道

文章出处:【微信号:gh_c472c2199c88,微信公众号:嵌入式微处理器】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    常见的嵌入式C语言面试题

    数组是最基本的数据结构,关于数组的面试题也屡见不鲜,本文罗列了一些常见的面试题,仅供参考。目前有以下18道题目。
    发表于 07-18 10:46 582次阅读

    java基础练习、面试题

    java基础练习、面试题整理了java私塾教材的课后作业,基础部分,面试中也常常遇到的基础问题,赶紧下载了。下载: [hide][/hide]
    发表于 07-16 14:02

    java经典面试题深度解析

    免费视频教程:java经典面试题深度解析对于很多初学者来说,学好java在后期面试的阶段都没什么经验,为了让大家更好的了解面试相关知识,今天在这里给大家分享了一个java经典面试题深度
    发表于 06-20 15:16

    嵌入式开发面试题3,思考一下,你会几个

    嵌入式开发面试题3,思考一下,你会几个1.ARM异常有哪些分类?2.ARM异常会发生哪些硬件操作?3.请简述中断和异常的差别?
    发表于 08-21 14:49

    NLP的面试题

    NLP面试题目6-10
    发表于 05-21 15:02

    c语言面试题,c++面试题下载

    c语言面试题,c++面试题1. static有什么用途?(请至少说明两种) 1) 限制变量的作用域 2) 设置变量的存储域 2. 引用与指针有什么区别?  1) 引用必须被初
    发表于 10-22 11:19 5次下载

    c语言面试题

    c语言面试题集(单片机)C language problem(20151125084232)
    发表于 12-18 14:05 8次下载

    c语言面试题

    c语言面试题
    发表于 11-05 16:48 0次下载

    C语言经典面试题

    面试题
    发表于 12-20 22:41 0次下载

    C语言经典面试题

    C语言 经典面试题
    发表于 01-05 11:27 0次下载

    经典硬件面试题精选及解答

    经典硬件面试题精选及解答
    发表于 11-29 18:02 0次下载

    C++软件设计基础考试题快来复习一下吧!

    本文档的主要内容详细介绍的是C++软件设计基础考试题快来复习一下吧!
    发表于 09-28 16:36 12次下载

    常见的MySQL高频面试题

    在各类技术岗位面试中,似乎 MySQL 相关问题经常被问到。无论你面试开发岗位或运维岗位,总会问几道数据库问题。经常有小伙伴私信我,询问如何应对 MySQL
    的头像 发表于 02-08 16:05 2067次阅读

    142道linux面试题,值得收藏

    142道linux面试题,值得收藏
    发表于 06-16 14:42 3次下载

    关于数组常见的面试题

    数组是最基本的数据结构,关于数组的面试题也屡见不鲜,本文罗列了一些常见的面试题,仅供参考。目前有以下18道题目。
    的头像 发表于 08-17 09:25 1186次阅读