嵌入式Linux

嵌入式Linux系统的组成

bootloader

Linux 内核

根文件系统

1. bootloader 

目的:启动内核

去哪里读内核?  去flash等外设读内核  

写到哪里?  写到内存里

所以需要有flash外设的驱动能力,为了调试方便还会有网络功能

可以认为 bootloader = 裸机集合 其实就是一个复杂的单片机程序

2.Linux内核

目的:启动APP  

APP保存在哪里? 存在根文件系统里

根文件系统保存在哪里?  在flash或SD卡/网络上,所以Linux要有flash SD卡的驱动能力

 Linux内核 还应该有进程调度 内存管理

总结 Linux内核 = 驱动集合+进程调度+内存管理

Bootloader 

boot loader 有很多种,常用的有u-boot

在实际工作中,对于u-boot基本上是修修改改,甚至不改。但是u-boot本身是很复杂的,比如为了便于调试,它支持网络功能;有些内核是保存在FAT32分区里,于是它要能解析FAT32分区,读FAT32分区的文件。

理解u-boot的作用、会使用u-boot的命令,这就可以了

要学习Linux内核、要学习驱动程序吗

Linux内核 = 驱动集合+进程调度+内存管理 

如果要学习Linux内核,从驱动程序入手是一个好办法

作为初学者,懂几个简单的驱动程序,有利于工作交流;理解中断、进程、线程的概念,无论是对驱动开发、应用程序开发,都是很有好处的。

所以对于初学者,建议前期只学习这几个驱动:LED、按键、中断。

  1. LED驱动程序
    这是最简单的驱动程序。

  2. 按键驱动程序
    它也比较简单,从它引入“中断”

  3. 中断
    从“中断”它可以引入:休眠-唤醒、进程/线程、POLL机制、异步通知等概念。这些概念无论是对驱动开发,还是对应用开发,都很重要所以,对于初学者,我建议必须学习这几个驱动:LED、按键、中断。

入门之后,如果你想从事内核开发、驱动开发,那么可以去钻研几个驱动程序(输入系统、I2C总线、SPI总线等),掌握若干个大型驱动程序后,你对内核的套路就有所了解了,再去研究其他部分(比如进程管理、文件系统)时你会发现套路是如此通用。
摄像头(VL42)、声卡ALSA驱动是Linux中比较复杂的2类驱动,它们是很难的,如果工作与此相关再去研究。

学习Linux应用程序,先学会一些基础技能

1.基本的设备访问,比如LCD,输入设备

2.进程,线程,进程通信,线程同步与互斥

3.休眠与唤醒,POLL机制,信号

4.网络编程

前三个跟驱动有着密切的关系。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值