摘要:
###资源 所有资源都放在这里 ###bootchart-lite 源码 http://code.google.com/p/bootchart-lite/ 然而我打不开,最后从github上找了一份,但是编译出来有点问题,最后还是用bootchart解决。 编译(如果是嵌入式记得交叉编译)完源码配置 阅读全文
摘要:
文件: kernel/drivers/gpio/gpio-keys.c kernel/arch/arm64/boot/dts//chip.dtsi kernel/include/dt-bindings/input/linux-event-codes.h ###linux 对于linux,基本的按键驱 阅读全文
摘要:
原文太强了 uboot向kernel的传参机制——bootm与tags kernel的cmdline参数解析原理分析 阅读全文
摘要:
###简介 Overlayfs是一种类似aufs的一种堆叠文件系统,于2014年正式合入Linux-3.18主线内核。 参考: 深入理解overlayfs(一):初识 深入理解overlayfs(二):使用与原理分析 overlayfs 主要有四个目录: lower:底层目录,一般放置只读文件 up 阅读全文
摘要:
http://10.4.0.169/#/c/103316/ 增加一个键值的宏 判断键值进入fastoot gpio 61 fastboot、59 recovery设置为输入,并判断其状态,上报键值 bootable/bootloader/lk/include/dev/keys.h 3 bootabl 阅读全文
摘要:
转 阅读全文
摘要:
###通过 device_create_file 创建/sys/devices下的设备节点 1 使用DEVICE_ATTR初始化device_attribute,或直接初始化该结构体 static DEVICE_ATTR(fw_version,S_IRUGO,mxt_fw_version_show, 阅读全文
摘要:
以platform设备为例 ###设备树解析 很好的一张总结图,转自:设备树解析过程及platform设备注册 ###probe函数调用 转自:device 的probe函数是怎么被调用的 在驱动程序中,我们通常会定义一个platform_driver的结构体,其中包含了各种操作函数。 static 阅读全文
摘要:
##gpio reference 其实就是一些函数,在程序中调用即可: gpio_is_valid(PIN_NUM) gpio_request(PIN_NUM,PIN_NAME); gpio_set_value(PIN_NUM,bool); gpio_get_value(PIN_NUM); gpio 阅读全文
摘要:
kernel/msm-3.18/arch/arm64/boot/dts/qcom/sdm450-qrd-yd-evt.dtsi ###DTS、DTB、DTC是什么 .dts文件是一种ASCII文本格式的设备树描述文件,一般一个dts文件对应一个设备。 .dtsi文件可以被.dts文件包含,靠后的dt 阅读全文
摘要:
1、电源管理 Regulator 分成静态和动态:静态不需要改变电压电流,只需要开关电源,用在bootloader,firmware,kernel board 阶段等。动态,根据需要改变电压电流。 2、获取设备的regulator,dev为驱动对应的设备指针,可以用NULL,Vcc为电源的ID,内核 阅读全文
摘要:
##驱动 设备结构体中要包含input_dev timer_list paltform_device 挂在platform总线上,依靠定时器中断上报event struct timer_list包含的主要成员: data:传递到超时处理函数的参数,主要在多个定时器同时使用时,区别是哪个timer超时 阅读全文
摘要:
###gcc gcc [-option] [filename1] [filename2] [filename3] <输出o文件名不加后缀> 将 1 2 3 一起编译处o文件 -c: 只编译不链接为可执行文件,编译器将输入的.c 文件编译为.o 的目标文件。 -o: <输出文件名>用来指定编译结束以后 阅读全文
摘要:
每个中断都有一个中断号(线),通过中断号即可区分不同的中断。 如果要处理的内容不希望被其他中断打断,那么可以放到上半部 如果要处理的任务对时间敏感,可以放到上半部 如果要处理的任务与硬件有关,可以放到上半部 其他任务,优先考虑放到下半部 ###上半部### ####request_irq 函数### 阅读全文
摘要:
###设备树配置 https://blog.csdn.net/kmnf1/article/details/90292884 ###驱动编写 基本上和platform的没什么区别,无非就是module_init函数中调用的是i2c_add_driver()。 创建设备结构体、iic_driver结构体 阅读全文
摘要:
基本流程和字符设备驱动是一样的。 增加platform_driver结构体 匹配设备树,of_match_table和id_table比较compatible参数匹配。 其中,of_match_table和id_table都是用来在设备树中和设备匹配,且都是通过compatible,但前者优先级更高 阅读全文
摘要:
###驱动编写要点 定义和匹配fpos函数 ope - release - write - read - ioctrl - seek 创建cdev结构体 注册设备 手动注册--已知主次设备号 自动注册--动态分配吗设备号 字符设备初始化,绑定fops和设备 添加字符设备 创建节点--几种方式 手动添 阅读全文
摘要:
Linux 系统是个多任务操作系统,会存在多个任务同时访问同一片内存区域,这些任务可 能会相互覆盖这段内存中的数据,造成内存数据混乱。针对这个问题必须要做处理,严重的话 可能会导致系统崩溃。现在的 Linux 系统并发产生的原因很复杂,总结一下有下面几个主要原 因: 多线程并发访问, Linux 是 阅读全文
摘要:
[collapse title="模式"] a 光标后进入编辑 A行尾进入编辑 i 光标前进入编辑 I行首进入编辑 s 光标处删除进入编辑 R 替换模式 r 替换一次 esc 退出编辑模式 :进入命令模式 :q 退出 :q!不保存退出 :w保存 :wq保存退出 :set ff=unix/dos 设置 阅读全文
摘要:
分布式代码管理,云端和本地 菜鸟教程 廖雪峰 查看修改或提交的状态 git status <-uno> ./ 可以加 -uno 参数 不显示未跟踪的文件 git branch -a./ 查看本地和远程所有分支 diff & patch git diff ./a.txt > hh.patch 检查a文 阅读全文