Linu设备开发详解 如何学习linux驱动开发?

[更新]
·
·
分类:互联网
3928 阅读

Linu设备开发详解

如何学习linux驱动开发?

如何学习linux驱动开发?

1. 学会写简单的makefile
2. 编一应用程序,可以用makefile跑起来
3. 学会写驱动的makefile
4. 写一简单char驱动,makefile编译通过,可以insmod, lsmod,rmmod. 在驱动的init函数里打印hello world,insmod后应该能够通过dmesg看到输出。
5. 写一完整驱动, 加上read, write,ioctl, polling等各种函数的驱动实现。在ioctl里完成从用户空间向内核空间传递结构体的实现。
6. 写一block驱动, 加上read,write,ioctl,poll等各种函数实现。
7. 简单学习下内存管理, 这个是最难的,明白各种memory alloc的函数实现细节。这是linux开发的基本功。
8. 学习锁机制的应用,这个不是最难的但是最容易犯错的,涉及到很多同步和并发的问题。
9. 看内核中实际应用的驱动代码。你会发现最基本的你已经知道了,大的框架都是一样的,无非是read,write, ioctl等函数的实现,但里面包含了很多很多细小的实现细节是之前不知道的。这时候就要考虑到很多别的问题而不仅仅是基本功能的实现。
linux免费学习地址:

arm单片机为什么一定要再linux系统下开发呢?

linus是嵌入式可用的操作系统之一,嵌入式开发到后面必须用操作系统,除非你把嵌入式当单片机用,这时候就不需要。当你在嵌入式下用操作系统的时候,可以选择的操作系统有5,6个。比如:uC/OS II   uCLinux   FreeRTOS   RTX   Arm-Linux   VxWorks   RTEMS   pSOS   Nucleus   PalmOS   Windows CE   Windows XP Embedded   Windows Vista Embedded   嵌入式LinuxECOS   QNX   Lynx  Meego Symbian   Android   Meamo  这些里面,比较用的多的是uC/OS; Windows CE;Linux;AndroidLinux相对功能完善,大家大量使用的还有个重要原因就是免费系统。这对于开发学习来说都是非常重要的。代码完全开源。希望对你有用。