摘要: 1、globalmem虚拟设备实例 globalmem为“全局内存”的意思,在globalmem字符设备中会分配一片大小为GLOBALMEM_SIZE(4KB)的内存空间,并在驱动中提供对这片内存的读写、控制和定位函数,供用户空间的进程能通过Linux系统调用获取和设置这片内存。 (1)头文件、宏以 阅读全文
posted @ 2019-08-15 20:45 liangliangge 阅读(1432) 评论(0) 推荐(0) 编辑
摘要: 1、Linux字符设备驱动的基本结构 Linux系统下具有三种设备,分别是字符设备、块设备和网络设备,Linux下的字符设备是指只能一个字节一个字节读写的设备,不能随机读取设备内存中某一数据,读取数据的时候需要按照先后顺序进行,字符设备是面向流的设备,常见的字符设备有鼠标、键盘、串口、控制台和LED 阅读全文
posted @ 2019-08-15 19:38 liangliangge 阅读(900) 评论(0) 推荐(0) 编辑
摘要: 一、双向链表list_head Linux内核驱动开发会经常用到Linux内核中经典的双向链表list_head,以及它的拓展接口和宏定义:list_add、list_add_tail、list_del、list_entry、list_for_each等。 在内核源码中,list_head结构体的定 阅读全文
posted @ 2019-08-15 17:10 liangliangge 阅读(4983) 评论(1) 推荐(0) 编辑
摘要: 1、Linux文件的基本操作 Linux文件的基本操作主要包括了文件的创建、打开、读写和关闭等基本操作。 1.1、文件操作系统调用 (1)创建文件系统函数 int creat(const char *pathname, mode_t mode); 参数: pathname:要创建文件的名称 mode 阅读全文
posted @ 2019-08-15 16:26 liangliangge 阅读(882) 评论(0) 推荐(0) 编辑
摘要: 本文章将介绍如何在Ubunt下进行Linux源码下载,并进行简单的编译步骤。 1、下载linux源码 先查看对应的Ubuntu对应版本源码 $ sudo apt-cache search linux-source 查看Ubuntu的源码版本相关信息 $ uname -a 使用命令下载对应的源码并解压 阅读全文
posted @ 2019-08-15 16:15 liangliangge 阅读(6621) 评论(0) 推荐(0) 编辑
摘要: 在Linux驱动开发过程中,往往需要搭建交叉编译开发环境,其中,最重要的环节就是安装交叉编译工具链,本文介绍如何在Ubuntu下搭建交叉编译开发环境。 1、官网下载交叉编译工具链 链接如下: https://www.linaro.org/downloads/ 2、解压文件 $ mv gcc-lina 阅读全文
posted @ 2019-08-15 16:05 liangliangge 阅读(2607) 评论(0) 推荐(0) 编辑
摘要: 如何去更改printk的打印级别? 1、查看当前控制台的打印级别 # cat /proc/sys/kernel/printk 该文件有4个数字值,它们根据日志记录消息的重要性,定义将其发送到何处,上面显示的4个数据分别对应如下: 控制台日志级别:优先级高于该值得消息将被打印到到控制台; 默认的消息日 阅读全文
posted @ 2019-08-15 15:50 liangliangge 阅读(1851) 评论(0) 推荐(0) 编辑
摘要: 1、find命令的使用 在Linux中可以使用find命令在指定的目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名,当使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件,并将查找到的文件进行全部显示。 (1)命令语法 find命令的语法如下: find根据下面 阅读全文
posted @ 2019-08-15 15:42 liangliangge 阅读(4282) 评论(0) 推荐(0) 编辑
摘要: 在Linux系统中,vim是一款非常好用的文本编辑器,那么,如何在Linux下的vim编辑器设定Tab的缩进长度呢? Linux系统下,vim编辑器Tab键的默认长度为8个空格,在vim中可以通过修改用户的配置文件来进行设置,设置步骤如下。 1、创建.vimrc配置文件 用户可以通过下面的命令进行配 阅读全文
posted @ 2019-08-15 15:31 liangliangge 阅读(6736) 评论(0) 推荐(2) 编辑