随笔分类 - linux
摘要:在对应的的模块的文件中,添加#define DEBUG 并将 loglevel调到8(dmesg -n 8) 查找对应的进程 ps aux | grep ./loop | grep -v grep //查找loop进程的pid
阅读全文
摘要:usb2 dmesg | grep usb2 cat /proc/interrupts | grep xhci tail -f /var/log/messages
阅读全文
摘要:中断上下文只能使用自旋锁。任务睡眠时只能使用互斥体。 需求 建议的加锁方法 低开销加锁 优先使用自旋锁 短期锁定 优先使用自旋锁 长期加锁 优先使用互斥体 中断上下文加锁 使用自旋锁 持有锁需要睡眠 使用互斥体
阅读全文
摘要:phy_provider = devm_of_phy_provider_register(dev, of_phy_simple_xlate);实际上就是 list_add_tail(&phy_provider->list, &phy_provider_list);将队列 phy_provider->
阅读全文
摘要:转自 https://blog.csdn.net/qq_35003588/article/details/102516512 DEVICE_ATTR_RW 宏分析 举个例子 kernel/driver/rtc/rtc-sysfs.c 的宏分析 static DEVICE_ATTR_RW(wakeal
阅读全文
摘要:void * kmalloc(size_t size, int flags)配置的动态内存空间需告一个动态内存的空间。• size 尺寸:动态内存的空间。• flags :总类• void *:动态内存的空间的指标变量。 flags 说明 GFP_WAIT 配置器可以休息 sleep GFP_HIG
阅读全文
摘要:printk(Loglevels string)驱动程序专用的显示数据专用的。• Loglevels: 消息显示的重要程度,• string : 要显示出来的文字数据。 Log levels 可用参数: 说明 KERN_EMERG 紧急消息,例如系统当机 KERN_ALERT 警告消息 KERN_C
阅读全文
摘要:container_of宏,定义kernel.h中: 1 /** 2 * container_of - cast a member of a structure out to the containing structure 3 * @ptr: the pointer to the member.
阅读全文
摘要:设备驱动中最难的部分在于三个方面,一个是涉及到内存管理的代码,一个是涉及到进程管理的代码,另一个就是信号量和互斥锁或者别的锁的代码.这些部分如果不合理将容易导致系统崩溃,而信号量最容易导致的就是死锁.
阅读全文
摘要:所谓重定位,比如当编译时某个文件用到外部符号是用动态链接库的方式,那么该文件生成的目标文件将包含重定位信息,在加载时需要重定位该符号,否则执行时将因找不到地址而出错
阅读全文
摘要:stty -F /dev/ttyS0 -a 显示串口参数 stty -F /dev/ttyS0 ispeed 9600 ospeed 9600 cs8 设置串口波特率为9600 stty -F /dev/ttyS0 ispeed 115200 ospeed 115200 cs8 设置串口波特率为11
阅读全文
摘要:一:删除节点 通常DTS中包含了多个平台的描述文件,且多个平台会共享一些通用的dtsi。这些dtsi的节点对于指定的平台来说,其节点未必全部需要,因此就需要将不需要的节点进行裁剪或者DISABLE。节点删除就是实现这个作用。 语法如下: /delete-node/ 节点名; 例如在draz7.dts
阅读全文
摘要:dmesg | grep test | tail -n 2 test:我们要查看的驱动的名字 dmesg实际上是从/var/log/messages 或者/var/log/syslog文件中读取到的日志信息 因此我们也可以执行如下命令获取 cat /var/log/syslog | grep tes
阅读全文
摘要:1:我们可以通过如下命令cat /proc/interrupts来获取当前IRQ对应CPU核心的情况 2:执行 echo "2" > /proc/irq/8/smp_affinity 8:我们要绑定的中断号 2:代表CPU1 Binary Hex CPU0 0000 0001 1 CPU1 0000
阅读全文
摘要:1 [17899.255261] sysrq: SysRq : HELP : loglevel(0-9) reboot(b) crash(c) terminate-all-tasks(e) memory-full-oom-kill(f) kill-all-tasks(i) thaw-filesyst
阅读全文
摘要:Completion,是一种轻量级的机制,它允许一个线程告诉另一个线程工作已经完成,用于多线程间同步,即线程A要往下执行需要等待线程B执行到指定代码后才继续执行,这时就可以使用该机制,用于一个线程告诉另一个线程指定工作已完成。 在Linux Kernel源码include/linux/complet
阅读全文
摘要:kmalloc,vmalloc分配都是以字节为单位 (1) kmalloc 1 void * kmalloc(size_t size, gfp_t flags) 该函数返回的是一个指向内存块的指针,其内存块大小至少为size,所分配的内存在物理内存中连续且保持原有的数据(不清零) 其中部分flags
阅读全文
摘要:__ffs 用于找到一个int或者long行最高哪位是1,例如0x8000,就会返回15.代表从第8个bit开始不为0
阅读全文
摘要:1. file 可执行文件 可查看可执行文件是ARM架构还是X86架构 2. nm 可执行文件 可查看文件中的符号,包括全局变量,全局函数等 3. ldd 可执行文件 可查看文件执行所需要的动态库 4. strings 可执行文件 可查看文件中所有的符号,包括编译器版本信息 5. readelf 可
阅读全文
摘要:dtc -I dtb -O dts -o test.dts raw.dtb test.dts:输出文件 raw.dtb:源文件
阅读全文

浙公网安备 33010602011771号