摘要:
#include <xxx.h> 以上的#include就是预处理命令。它的作用是将头文件的内容包含到本文件中。 注意:这里的“包含”指的是该头文件中的所有代码都会在#include处展开。 gcc -E xxx.c > xxx.i 预处理xxx.c并把预处理的结果输出到标准输出。 预处理常见的错误 阅读全文
摘要:
1.export export是将一个变量导出,相当于局部变量导出成全局变量。 2.source 通常用法:source filepath 或 . /filepath 功能:使当前shell读入路径为filepath的shell文件并依次执行文件中的所有语句,通常用于重新执行刚修改的初始化文件,使之 阅读全文
摘要:
在安装软件包时如果出现Could not get lock /var/lib/dpkg/lock-frontend,说明之前使用apt时出现异常,没有正常关闭,还在运行。 root@ubuntu:/home/zcxd/3399# apt-get install liblz4-tool E: Coul 阅读全文
摘要:
1.没有引入设备树时中断 在老的内核中断是在完全由所谓的板级支持包中指定的,同时相关的寄存器地址这些也都是在代码中写死的。 这种代码没法在多个SOC上通用,这个就导致大量的重复代码出现。 在2.6.35.7内核中,SMDKV210单板是这样描述的 MACHINE_START(SMDKV210, "S 阅读全文
摘要:
针对重复的代码问题,如果不同的SOC使用了相同的IP block(例如I2C controller),那么这个driver的code要从各个arch/arm/mach-xxx中独立出来,变成一个通用的模块供各个SOC specific的模块使用。移动到哪个目录呢?对于I2C或者USB OTG而言,这 阅读全文
摘要:
内核中开放出来的接口函数的声明大多在include/linux/下面,关于设备树的都是以ofxxx.h形式命名 这里介绍一下各个头文件中是关于那些的函数 of_fdt.h // dtb文件的相关操作函数, 我们一般用不到, 因为dtb文件在内核中已经被转换为device_node树(它更易于使用) 阅读全文
摘要:
我们知道了在内核启动时,是把dtb文件所在的内存块保留了下来。 而这个内存块是可以在内核中查看的。 查看的位置在sys文件系统中。 因为dtb文件是二进制文件,所以要用hexdump命令来查看。 hexdump -C /sys/firmware/fdt 部分信息如下,和我们传给内核的dtb文件里的完 阅读全文
摘要:
4.x的内核都是已经支持设备树的,所以platform bus也是做了一些调整。 主要是在匹配函数里面的支持设备树。 struct bus_type platform_bus_type = { .name = "platform", .dev_groups = platform_dev_groups 阅读全文
摘要:
1.哪些device node可以转换成platform device 首先,要说明的是设备树最初是为了解决大量重复的platform_device在mach-xx目录下,但在实现的过程中,设备树体现的是一个电路板的信息,添加了bootargs,memory,clock,interrupt等非pla 阅读全文
摘要:
1.内核中对一个设备节点的表示 struct device_node { const char *name; //节点的名字 const char *type; //device_type属性的值 phandle phandle; //对应该节点的phandle属性 const char *full 阅读全文