韦东山的嵌入式Linux学习笔记

对于一个嵌入式系统来说,操作系统是大脑,单片机只是用来实现手指的功能。

首先理解一下嵌入式Linux操作系统的软件组成,用Windows电脑来类比:
Windows电脑用的是Windows操作系统,而安卓手机或工控设备是基于linux内核,用的是linux操作系统。
Windows电脑的启动过程是:通过bios来启动Windows内核,然后Windows内核的任务是去c盘(系统盘)读出应用程序。
安卓手机的启动过程是:通过bootloader来启动linux内核,然后linux内核去根文件系统里面启动应用程序。
问题:bootloader去哪里启动linux内核?
Flash或SD卡。所以说bootloader具有读取Flash和SD卡的能力。
由于bootloader还需要在界面上logo,所以bootloader还具有操作LCD的能力。
另外bootloader在启动阶段还需要设置开发板的环境,包括初始化时钟、初始化内存、设置网卡等。

由上可以看出bootloader需要完成很多功能,将这些功能单独拆分出来就是一个个单片机程序,所以可以说,学懂了bootloader就学会了单片机。

由于linux内核需要去根文件系统启动应用程序,这个过程叫作linux内核挂载根文件系统,所以linux内核也要有操作硬件能力(这就是linux驱动程序开发)。

以LED点灯为例子,一个简单的驱动程序框架如下:
我们的应用程序app是通过open、read、write这些接口来访问硬件,其实是这个访问硬件就是进入到硬件的驱动程序:通过drv_open(设置gpio为输出)、drv_read(返回gpio状态)、drv_write(设置gpio是高电平还是低电平)配置硬件。

由此可以看出:驱动程序=软件框架➕硬件操作(单片机部分,原理图、芯片手册、读写寄存器)

所以linux驱动开发学习的重点是软件框架。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值