1. 平时学习单片机的模式:集成度太高,学习不到单片机的本质第001课_不要再用老办法学习单片机和ARM

2. 嵌入式Linux系统的软件组成

第001课_不要再用老办法学习单片机和ARM

3. 系统的启动过程

我们PC机一上电的时候,黑色屏幕上会显示BIOS,这个BIOS目的是去启动Windows内核。Windows内核再挂载C盘(系统盘)、D盘(应用盘),最后再去启动应用程序,像QQ、网游等。

同样的道理,我们的Android手机或者工控设备,也有BIOS,但嵌入式Linux系统里面不叫BIOS,叫Bootloader,他的目的是去启动Linux内核。 他首先也是识别应用程序所在的存储设备,挂载根文件系统(在Windows系统里面的C盘、D盘,在Linux里面称为根文件系统)。最后去启动应用程序。
第001课_不要再用老办法学习单片机和ARM
仔细的分析下Bootloader,他去启动内核,他去哪里启动内核呢? 显然是去某个地方读出内核,就比如说BIOS是去C盘上读出Windows内核,我们的Bootloader是去Flash或者SD卡读取内核。 因此Bootloader要拥有读取Flash或者SD卡的能力。有些Bootloader还要显示logo,因此还要具有操作LCD的能力。Bootloader还要设置开发板的环境,比如,初始化时钟、初始化内存、还要设置网卡等

4. Bootloader是单片机程序的大全

第001课_不要再用老办法学习单片机和ARM

5. 驱动程序

我们再来看看Bootloader启动内核之后,内核再去挂载根文件系统,意味着内核也要有操作硬件的能力,这就是驱动程序。我们首先来看看一个简单的驱动程序是什么样子。 首先我们的应用程序是调用open()、read()、write()这些标准的接口去访问硬件。那么就进入驱动程序里面,驱动程序里面有对应的drive_open()、drive_read()、drive_write()。最后在驱动程序里面,去配置硬件。 这里以如果是一个LED点灯驱动,那么drive_open()要把GPIO设置为输出引脚,drive_read(),返回GPIO状态,driver_write()则写GPIO,让引脚输出高电平或者低电平。
第001课_不要再用老办法学习单片机和ARM
驱动程序的构成:
第001课_不要再用老办法学习单片机和ARM

相关文章:

  • 2021-11-05
  • 2021-12-14
  • 2021-08-02
  • 2022-12-23
  • 2021-11-06
  • 2021-09-01
  • 2021-06-12
  • 2021-04-17
猜你喜欢
  • 2021-07-30
  • 2021-08-28
  • 2022-12-23
  • 2022-12-23
  • 2021-06-06
  • 2021-03-31
  • 2021-12-21
相关资源
相似解决方案