- 博客(12)
- 资源 (9)
- 收藏
- 关注
原创 使用Automake、autoconf、Libtool自动生成Makefile
使用Automake、autoconf、Libtool自动生成Makefile
2021-04-30 10:23:09 943
原创 ext3文件系统分析
创建一个64M虚拟磁盘 dd if=/dev/zero of=./test.img bs=1M count=64将虚拟磁盘绑定在/dev/loop1设备上将磁盘格式化为block size=1024,卷标为“HelloFs”,ext3文件系统 mkfs.ext3 -L HelloFs -b 1024 /dev/loop1通过which mkfs.ext3和rpm -qf /usr/sbin/mkfs.ext3命令可查找mkfs.ext3命令在哪个软件包里面,其他命令也可以通.
2021-02-05 18:34:25 738
原创 C语言嵌入式Linux编程相关资料链接
收集一些感觉比较好的博客链接,方便以后再看Linux 内核中的 C 语言语法扩展Linux 内核驱动中的指定初始化宏构造利器:语句表达式Linux 内核第一宏:container_of零长度数组U-boot镜像自拷贝分析:section属性地址对齐那些事儿变参函数的格式检查链接过程中的强符号和弱符号内联函数探究内建函数可变参数宏总结...
2021-02-04 16:16:13 89
原创 linux内核打补丁和制作补丁
1 、打补丁先下载内核源码和补丁,例如内核源码:linux-3.10.tar.gz 下载补丁:patch-3.10.1.gz在Linux下创建一个patch-3.10.1目录,把patch-3.10.1.gz放到patch-3.10.1目录下,进入到patch-3.10.1目录,并使用以下命令解压:gunzip patch-3.10.1.gz补丁就是一个文件,通过vim打开补丁文件可看到补丁的样子,像使用git中的diff:进入到内核源码路径,执行以下命令开始打补丁:.
2021-02-04 15:06:57 1121
原创 Linux内核中导出符号及其引用
导出符号可以被其他模块使用,只需使用前声明一下即可。模块使用以下宏导出符号到内核符号表中:EXPORT_SYMBOL(符号名);EXPORT_SYMBOL_GPL(符号名);EXPORT_SYMBOL_GPL只适合GPL许可的模块进行调用示例:导出整数加、减运算函数符号的内核模块calculate_lib.c#include<linux/init.h>#include<linux/module.h>#include "calculate_lib.h"
2020-08-18 15:34:30 773
原创 回调函数与回调函数解耦
一般应用程序直接调用系统、库、底层模块的API;如果反过来,用户写一个函数,让系统直接调用该函数,称为回调。应用层app.c#include<stdio.h>#include"module.h"void func1(void){ printf("func1...\n");}void func2(void){ printf("func2...\n");}int main(void){ runcallback(func1); runca
2020-08-17 17:28:13 862
原创 一个驱动同时支持多个设备
#include <linux/module.h>#include <linux/types.h>#include <linux/fs.h>#include <linux/cdev.h>#include <linux/kernel.h>#include <linux/init.h>#include <linux/slab.h>#include <linux/uaccess.h>#defi...
2020-08-13 19:58:43 992
原创 字符设备驱动
编写一个字符设备驱动,并利用对字符设备的同步操作,设计实现一个聊天程序。可以有一个读,一个写进程共享该字符设备,进行聊天;也可以由多个读和多个写进程共享该字符设备,进行聊天。1、字符设备驱动程序#include <linux/module.h>#include <linux/init.h>#include <linux/fs.h>#include <asm/uaccess.h>#include <linux/wait.h>#in
2019-08-31 09:36:36 219
原创 Linux中module模块的编译、加载、卸载
在Linux下建个DriverHello目录,在DriverHello目录下编写源文件hello.c和Makefile文件。1、编写源文件hello.c#include <linux/init.h>#include <linux/module.h>#include <linux/sched.h>#include <linux/kernel.h>static int nbr = 10;module_param(nbr, int, S_IR
2019-08-31 09:14:56 1009
原创 exfat文件系统分析
本文详细分析了exfat文件系统结构,并通过实际数据对exfat文件系统各个字段中的定义进行解释。目录1文件系统整体布局2 -1Master Boot Record(MBR)-MBR分区2.1 结构2.2 数据分析2.3 读取硬盘MBR数据C++语言代码2-2 GUID Partition Table(GPT)分区3 ExFAT文件系统卷分布3.1 Main Boot Region 主引导区3.1.1 引导扇区(Boot Sector)3.1.2 扩展引导扇区(E
2018-02-03 16:59:58 6290 2
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人