Linux驱动程序入门-1

开始学习Linux驱动,记录学习内容与路线,下文中超链接多为网络中前辈们的blog

Linux常用头文件

其中的部分头文件:

#include

#include

Writing
Installing : 函数Int init_module()
Removing Modules: 函数void cleanup_module()

相关知识

static关键字修饰的函数

register_chrdev函数

printk函数

动动手:

实现一个HelloWorld模块

Tips:

  • write函数的返回类型可能需要改为ssize_t
  • ./hellotest需要sudo运行,否则会返回-1
  • 需要monutil --disable-validation 设置boot secure mode,否则载入模块时需要模块签名验证(也有其他方法)

相关知识:
__init等关键字

Makefile参数-C M=

ssize_t类型

对于赶时间的朋友,只看第一段就好了。
首先,我非常肯定以及确定的告诉你ssize_t是有符号整型,在32位机器上等同与int,在64位机器上等同与long int,有没有注意到,它和long数据类型有啥区别?其实就是一样的。size_t 就是无符号型的ssize_t,也就是unsigned long/ unsigned int (在32位下),不同的编译器或系统可能会有区别,主要是因为在32位机器上int和long是一样的。在64位没有测试,但是参见百度百科,size_t 在64位下是64位,那么size_t的正确定义应该是typedef unsigned long size_t。

你可能感兴趣的:(嵌入式)