linux 按键驱动中断 rockchip_嵌入式linux快速入门(转载)

ea8bfa0c5e802ec8460d25db5ecb2831.png

从上图可以知道:
① 组成:嵌入式Linux系统 = bootloader + linux内核 + 根文件系统(里面含有APP)。
② bootloader:它的目的是启动内核,去哪读内核?读到哪里?去Flash等外设读内核,存到内存里去。所以需要有Flash里外设的驱动能力,为了调试方便还会有网络功能。所以,可以认为 booloader = 裸机集合,它就是一个复杂的单片机程序。
③ Linux内核Linux内核的最主要目的是去启动APP,APP保存在哪里?保存在“根文件系统”里。“根文件系统”又保存在哪里?在Flash、SD卡等设备里,甚至可能在网络上。所以Linux内核要有这些Flash、SD卡里设备的驱动能力。不仅如此,Linux内核还有进程调度能力、内存管理等功能。
所以:Linux内核 = 驱动集合 + 进程调度 + 内存管理等。

1、学习bootloader

Bootloader有很多种,常用的叫作u-boot。
在实际工作中,对于u-boot基本上是修修改改,甚至不改。但是u-boot本身是很复杂的,比如为了便于调试,它支持网络功能;有些内核是保存在FAT32分区里,于是它要能解析FAT32分区,读FAT32分区的文件。花那么多精力去学习u-boot,但是工作中基本用不到,这对初学者很不友善。所以,对于初学者,我建议:理解u-boot的作用、会使用u-boot的命令,这就可以了。如果你的工作就是修改、完善bootloader,那么再去研究它吧。

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

之前我们说过Linux内核 = 驱动集合 + 进程调度 + 内存管理等,如果要学习Linux内核,从驱动程序入手是一个好办法。
但是人人都要学习Linux内核、人人都要学习Linux驱动吗?显然不是。
作为初学者,懂几个简单的驱动程序,有利于工作交流;理解中断、进程、线程的概念,无论是对驱动开发、应用程序开发,都是很有好处的。

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

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

3、 学习Linux应用程序吗?

要学,即使以后你只想研究内核,一些基本的应用开发编写能力也是需要的:
① 基本设备的访问,比如LCD、输入设备
② 进程、线程、进程通信、线程同步与互斥
③ 休眠-唤醒、POLL机制、信号
④ 网络编程 ①②③部分的知识,跟驱动有密切的关系,它们是相辅相承的。掌握了基本驱动开发能力、基本应用开发能力之后,在工作中你就可以跟别人友好沟通了,不至于一脸懵逼。

4、学习根文件系统

当然,根文件系统关乎着应用程序的运行,你辛辛苦苦写出了应用程序,怎么把它放到板子上,让它开机就自动启动?
你写的程序,它依赖于哪些库,这些库放到板子上哪个目录?
怎么做一个可升级的系统?即使升级中途断电了,也要保证程序至少还可以运行老的版本?
这些都需要我们了解一下根文件系统。
先了解一下init进程:它要读取配置文件,根据配置文件启动各个APP。了解了init进程,你就了解了根文件系统的组成,就可以随心所欲裁剪系统,为你的项目制作出最精简的系统。

### 回答1: rockchip_developer_guide_linux_wifi_bt_cn.pdf 是一个关于 Linux 系统中 Rockchip 芯片无线网卡和蓝牙技术开发的开发指南,内容主要涉及到无线网卡驱动类型、无线网卡芯片型号、驱动编译、模块加载和配置等方面。 指南中指出了无线网卡驱动类型的差异,包括 SDIO 类型、SPI 类型和 USB 类型等,同时也介绍了 ROCKCHIP 芯片支持的无线网卡芯片型号,如 RTL8188EU、RTL8723BU 以及 AP6235 等。此外,该指南还提供了详细的驱动编译过程和模块加载配置指南,开发者可以根据自己的需求进行配置和修改。 指南中还介绍了蓝牙技术在 Rockchip 芯片中的实现方式,包括 HCI 设备、协议栈和蓝牙应用程序,以及蓝牙驱动编译、模块加载和配置等方面。同时,也提供了一些实际应用场景的开发案例和模板代码供参考。 总的来说,rockchip_developer_guide_linux_wifi_bt_cn.pdf 是一份较为详细的无线网卡和蓝牙技术的开发指南,开发者可以借此指南了解 Rockchip 芯片在 Linux 系统中的无线网卡和蓝牙实现方式,同时也可以根据指南提供的编译和配置指南自行进行开发。 ### 回答2: rockchip_developer_guide_linux_wifi_bt_cn.pdf是一份Linux下的Wi-Fi和蓝牙开发指南,是为Rockchip平台设计的。该指南详细介绍了如何在Linux下开发和移植Wi-Fi和蓝牙驱动程序。本指南的主要目的是提供一些指导,帮助开发者更轻松地完成相关项目。 在指南中,开发者会了解到不同Wi-Fi和蓝牙芯片的特点,以及如何处理Linux驱动程序。本指南还提供了一些示例代码以帮助开发者更好地理解这些概念,并更好地嵌入相关项目。 此外,本指南还涵盖了一些其他关键主题,如电源管理、网络协议和安全性,以及一些常见问题和解决方案。这些内容可以帮助开发者学习和理解更多与Wi-Fi和蓝牙开发相关的概念和技巧,以更好地实现项目目标。 总之,rockchip_developer_guide_linux_wifi_bt_cn.pdf是一份非常重要的指南,它将对Rockchip开发者在Linux平台下进行Wi-Fi和蓝牙开发提供有价值的帮助和指导。可以说,这是一份不容错过的指南! ### 回答3: rockchip_developer_guide_linux_wifi_bt_cn.pdf是一个针对Rockchip芯片上的Linux系统提供的开发指南,主要涉及WiFi和蓝牙的开发。 该指南详细介绍了如何在Rockchip芯片的Linux系统上进行WiFi和蓝牙的驱动开发和应用开发,并提供了开发所需的工具和技术支持。其中,WiFi部分详细介绍了基于硬件的无线芯片驱动开发、基于内核的无线子系统驱动开发,以及WiFi的应用开发。蓝牙部分介绍了基于硬件的蓝牙芯片驱动开发、BlueZ蓝牙协议栈的使用和配置,以及蓝牙应用的开发。 该指南不仅适用于专业的嵌入式软件开发人员,也适用于其他对Rockchip Linux系统开发有兴趣的人员。它提供了可扩展的,易于使用的解决方案,可以帮助用户快速实现WiFi和蓝牙应用开发。但需要注意的是,用户在使用该指南进行开发时,需按照相应的硬件和软件规格进行开发。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值