嵌入式linux基础面试题

本文介绍了嵌入式Linux系统的启动流程,包括从CPU启动到内核挂载根文件系统的全过程。同时探讨了Bootloader的工作内容及其向内核传递的参数,以及如何创建动态库和静态库。此外还对比了vmlinux、zImage和uImage的不同,并简述了ARM体系中C语言可变参函数的实现机制及处理器模式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.  嵌入式linux大致启动过程

1)设备上电后CPU启动

2)CPU启动bootloader,bootloader先初始化硬件

3)解压Image并拷贝到内存执行,

4)将内核区的镜像拷贝到内存解压,准备好内核的启动参数

5)内核启动,对各子系统和MMU完成初始化(MMU:cpu用来管理虚拟储存器,物理储存器的控制线路)

6)内核挂载根文件系统

7)内核继续初始化其他驱动程序,第一个进程启动

2.  bootloader的工作内容是什么,它需要传递哪些参数给内核

1)bootloader分两部分,第一部分汇编负责初始化CPU,PLL等硬件,第二部分c代码负责串口,网口等驱动的加载,构建shell环境供用户输入。解压镜像准备启动参数

2)传递MTD分区信息和内核启动参数

3.如何把c语言源代码打包成动态库

    1) gcc – fPIC -shared -o libxxx.so  xxx.c xxx.h

                           lib后面跟生成的库名        源代码

    2)打包静态库:

        gcc -c xxx.c        //生成.o文件

        ar -crlibxxx.a  xxx.c      //最后面为源文件

        gcc -o main main.c-L路径 -l 名字  //使用静态库

3.  说明vmlinux,zImage,uImage的区别

1) ZImage是ARM Linux 常用的压缩映像文件

2) vmlinux 是可引导的,压缩的内核

3) uImage是U-boot专用映像文件(比zImage多了一个0x40的头【说明这个映像文件类型,加载位置,生成时间等】)

4.  在ARM体系中C语言可变参函数的底层实现机制是什么

函数调用的栈结构

 

5  ARM的处理器模式

有七种模式:常用Usr,IRQ,,svc,abt,und五种模式

(1)  Usr用户模式

(2)  FIQ快速中断模式

(3)  IRQ中断模式

(4)  SVC管理模式

(5)  SYS系统模式

(6)  Abt中止模式

(7)  Und未定义模式

6.  什么是RTOS?如何分类?

RTOS:实时操作系统

分类(1)高精度计时系统

    (2)多级中断机制

    (3)实时调度机制

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值