摘要:
一、 ioremap() 函数基础概念 几乎每一种外设都是通过读写设备上的相关寄存器来进行的,通常包括控制寄存器、状态寄存器和数据寄存器三大类,外设的寄存器通常被连续地编址。根据CPU体系结构的不同,CPU对IO端口的编址方式有两种: a -- I/O 映射方式(I/O-mapped) 典型地,如X 阅读全文
摘要:
Linux中如何构建内核源码树,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。 要编写Linux的驱动,必须要构建内核源码树。 内核源码树的作用是构造可以在Linux内核中装载和卸载的模块,因此若是要为目标板构造模块,必须保证用于构建内核 阅读全文
摘要:
本文是参考了网上多篇帖子而写的算不上什么原创。唯一值得欣慰的只不过在本机上实现罢了。因为毕竟失败了几次。也因为本人是初学驱动编程,很多简单的问题在我来说是相当的困难的。望有识之士不要笑话。最后,希望本文能给刚学驱动而还没开头的人提供一些帮助。刚看 O'REILLY 写的《LINUX 设备驱动程序》时 阅读全文
摘要:
一、环境 Ubuntu14.04 +vmware tools 二、步骤 先写个.c文件,驱动文件一般没有printf,有自己的一套,先写一个helloword.c /* * helloworld.c * * 宇文凌风 * */ #include "linux/init.h" #include "li 阅读全文
摘要:
一、构造内核源码树 # apt-cache search linux-source # apt-get install linux-source-4.4.0(下载的源码在目录/usr/src下) # 解压内核源码tar xjf ..... 进入源码目录 # make oldconfig # make 阅读全文
摘要:
1.手动创建文件节点的命令(mknod): 命令 文件目录&名称 文件类型 主设备号 次设备号 mknod /xxx/xx c 120 1 2.手动删除文件节点的命令(rm): 命令 文件目录&名称 rm /xxx/xx from: https://blog.csdn.net/wanzhilin88 阅读全文
摘要:
注:本文个人学习记录 目的:一个工程里有多个makefile 如何make根目录下的makefile 调用子目录下的makefile,编译所有.c文件 如图所示 目录结构 ,根目录server: makefile ;子目录 so :makefile 根目录makefile: GCC=gcc APP= 阅读全文
摘要:
编译概述 编译基础: 使用GCC编译程序时可以分为4个阶段: (1)预处理(pre-processing)-E.c >.i-I (Include)将源文件生成中间文件 (2)编译(compiling) -S .i >.s 将中间文件生成汇编 (3)汇编(Assembling) -c .s >.o 将 阅读全文
摘要:
第1章 Makefile快速入门 基础概念 make :项目构建工具——用于管理文件的更新 Makefile:规则文件,告诉make如何进行编译与管理 Makefile(取名makefile也行)其实就是一个脚本文件。 快速入门 创建文本文档——文件名Makefile #代表注释 显示规则:一条显示 阅读全文
摘要:
每个Makefile中都应该写一个清空目标文件(.o和执行文件)的规则,这不仅便于重编译,也很利于保持文件的清洁。这是一个“修养”。一般的风格都是: clean: rm edit $(objects) 更为稳健的做法是: .PHONY : clean clean : -rm edit $(objec 阅读全文
摘要:
gnu-makemakefile Using Makefile to clean subdirectories 是否可以从父目录执行make clean,而该父目录又递归清除所有子目录,而不必在每个子目录中都包含makefile? 例如,当前在我的Makefile中,我有类似以下内容: 123456 阅读全文