摘要: 1. API2. 源码3. 对system进行封装TOC 1. API #include int system(const char *command); 注: 这个函数的作用相当于,在shell下执行command命令 2. 源码 int system(const char * cmdstring) { pid_t pid; int status... 阅读全文
posted @ 2020-03-23 15:58 standardzero 阅读(205) 评论(0) 推荐(0) 编辑
摘要: TOC 程序异常退出大部分都是系统发出的信号导致的,程序收到某些信号退出时,会产生core文件,如段错误信号SIGSEGV;但是某些信号不会产生,core文件,程序收到此类信号默认退出,排查这类问题时,会抓不到方向。 因此有必要对这类信号,进行捕获并记录日志。linux有一套处理信号的API。 样例 #include #define ARRAY_SIZE(arr) (sizeof((... 阅读全文
posted @ 2020-03-23 15:57 standardzero 阅读(115) 评论(0) 推荐(0) 编辑
摘要: container_of(ptr, type, member):通过计算member的地址, 获取 ptr 所在的结构体type的首地址。 #define container_of(ptr, type, member) ({ \ const typeof(((type *)0)->member) *__mptr = (ptr);\ (type *)((cha... 阅读全文
posted @ 2020-03-23 15:56 standardzero 阅读(302) 评论(0) 推荐(0) 编辑
摘要: 1. 从linux内核源码拿到list.h 从linux内核拿到的源码需要添加相关的宏变量 直接可以使用的list.h #ifndef _LINUX_LIST_H #define _LINUX_LIST_H #include #include #include #include # define POISON_POINTER_DELTA 0 #define LIST_POIS... 阅读全文
posted @ 2020-03-23 15:54 standardzero 阅读(1202) 评论(0) 推荐(0) 编辑
摘要: 1.异步IO概念 在传统的 I/O 模型中,有一个使用惟一句柄标识的 I/O 通道。在 UNIX 中,这些句柄是文件描述符(这对等同于文件、管道、套接字等等)。在阻塞 I/O 中,我们发起了一次传输操作,当传输操作完成或发生错误时,系统调用就会返回。 在异步非阻塞 I/O 中,我们可以同时发起多个传输操作。这需要每个传输操作都有惟一的上下文,这样我们才能在它们完成时区分到底是哪个传输操作完成了... 阅读全文
posted @ 2020-03-23 15:51 standardzero 阅读(1315) 评论(0) 推荐(0) 编辑
摘要: net.h /* * ===================================================================================== * * Filename: net.h * * Description: * * Version: 1.0 * Created: 07... 阅读全文
posted @ 2020-03-23 15:47 standardzero 阅读(1882) 评论(0) 推荐(0) 编辑
摘要: 前言编写简单的自定义驱动创建相关目录和文件关联上一级目录的Kconfig和Makefile配置&编译TOC 前言 在了解了Kconfig和Makefile的相关原理后,是不是有种在源码上自定义驱动的冲动。 放心,接下来,我会满足你的小小欲望。 编写简单的自定义驱动 hello_dev.c #include #include #include #include #... 阅读全文
posted @ 2020-03-23 11:40 standardzero 阅读(367) 评论(0) 推荐(0) 编辑
摘要: 前言语法Makefile 语法Kconfig 语法.configTOC 前言 要想了解内核的编译过程,分析这三个文件的作用是很有必要的。 三者的作用: 简单来说就是去饭店点菜:Kconfig是菜单,Makefile是做法,.config就是你点的菜。 Makefile:一个文本形式的文件,编译源文件的方法。 Kconfig:一个文本形式的文件,内核的配置菜单。 .config:编译内... 阅读全文
posted @ 2020-03-23 11:39 standardzero 阅读(1135) 评论(0) 推荐(0) 编辑
摘要: Makefile #**************************************************************** # * # Makefile for MB86M01/M02/M03 driver * ... 阅读全文
posted @ 2020-03-23 11:38 standardzero 阅读(200) 评论(0) 推荐(0) 编辑
摘要: 1. 根据硬件工程生成设备数文件 dts / { amba_pl: amba_pl { #address-cells = ; #size-cells = ; compatible = "simple-bus"; ranges ; axi_timer_0: timer@42800000 { ... 阅读全文
posted @ 2020-03-23 11:37 standardzero 阅读(264) 评论(0) 推荐(0) 编辑