
linux
basic
没伞的孩子往前跑
这个作者很懒,什么都没留下…
展开
-
LED控制 从kernel到app的过程分析和小结(基于android 6.0)
1. Driver part (图方便,随便在一个文件中申请了一个杂项设备,有时候想,为什么不是字符设备,查阅相关信息,得知杂项设备驱动是一种特殊的字符设备驱动,节省了主设备号,使用简单。)#include <linux/miscdevice.h>#include <linux/uaccess.h>#define MISC_NAME "led"#define MISC_IOC_MAGIC 'L'#define RK_FBIOSET_SET_LOGO _IOW(M原创 2021-11-21 17:57:26 · 1945 阅读 · 0 评论 -
Linux Kernel - The Block I/O Layer
固定大小的数据块称为块,常见块设备磁盘有硬盘,闪存等,随机访问,字符设备以序列数据流的方式访问,如键盘输入是一字节接一字节访问。由于块设备的复杂度,访问性能等原因,内核提供了一个子系统进行管理,即 Block I/O Layer。块设备最小可寻址单元称为扇区,扇区大小是一个设备的物理属性,大部分块设备为 512 B,CD-ROM 磁盘为 2KB。...原创 2020-03-11 16:01:05 · 455 阅读 · 0 评论 -
Linux Kernel - The Virtual Filesystem
虚拟文件系统是内核的子系统,实现了供用户空间编程用的文件系统相关的接口,其抽象特性使得不同的文件系统看起来用起来都一样,如将 ext2, ext3 格式的文件系统 mount 到不同的目录,ls 指令可以查看两个不同的文件系统内容。 ...原创 2020-03-08 10:59:53 · 162 阅读 · 0 评论 -
Linux Kernel - Memory Management
MMU原创 2020-03-02 19:02:16 · 399 阅读 · 0 评论 -
Linux Kernel - Synchronization
case 1 - SingleVariablei++; 汇编会进行如下操作1. 获取变量 i 的值,并写入寄存器2. 寄存器的值加 13. 寄存器的值写回变量 i 所在的内存空间若两个线程同时进行对变量 i 进行 i++ 操作,则可能出现下面两种结果,因此,在共享内存的应用中,需要保证并发访问时共享资源是受保护的。...原创 2020-02-28 20:22:25 · 262 阅读 · 0 评论 -
Linux Kernel - System calls
1. 提供抽象硬件接口 eg. 磁盘读写 read/write2. 保证系统安全和稳定性 对 kernel 的访问需要权限,用户空间不可直接访问系统资源3. 基于进程的虚拟系统考虑 多任务,虚拟内存的实现稳定性和安全性通常,应用编程调用在用户空间实现的 API,而不直接使用系统调用。...原创 2020-02-26 19:23:59 · 182 阅读 · 0 评论 -
linux 调试笔记 - insmod error
最近在 driver 里面实现一个新的功能时,发现平台 APP 部分出现一些异常状况,界面显示异常,wifi 相关的应用不停的打印 error 信息,讲道理我实现的新功能只是在系统启动的时候启用,怎么会影响到 user space 部分。相关 log 信息如下:vmap allocation for size xxx failed: use vmalloc=<size&g...原创 2019-07-28 18:25:57 · 2257 阅读 · 1 评论