酸菜。
忘了他吧,我写代码养你!
展开
-
linux下MMC_TEST的使用
linux下MMC_TEST的使用。原创 2025-04-08 11:04:38 · 147 阅读 · 0 评论 -
内核单核启动方式
linux-单核启动原创 2025-04-07 11:22:08 · 26 阅读 · 0 评论 -
内核crash定位
内核crash调试原创 2025-04-03 10:26:03 · 31 阅读 · 0 评论 -
buildroot制作自己的软件包(可以理解为应用程序)
可以看到生成的可执行程序。原创 2024-10-28 17:59:53 · 397 阅读 · 0 评论 -
在驱动中,利用Makefile增加宏定义
即在驱动源代码当中添加了DEBUG宏定义。即在驱动源代码当中添加了DEBUG宏定义。可以通过增加打印进行验证。可以通过增加打印进行验证。原创 2024-03-25 16:59:20 · 785 阅读 · 0 评论 -
ubuntu环境下openssl库的简单使用
编译:gcc aes.c -lssl -lcrypto -o aes。原创 2024-02-22 20:46:43 · 1128 阅读 · 0 评论 -
linux scatterlist阅读三
函数实现比较复杂,还涉及了struct sg_mapping_iter 结构体,这里比较重要的是skip参数,是指拷贝时跳过的字节数。原创 2023-08-26 11:40:02 · 1035 阅读 · 1 评论 -
virt_to_page和page_address使用总结
其余的还有类似于页帧号转struct page结构的函数。内核逻辑地址转struct page 结构体指针。truct page 结构体指针转内核逻辑地址。原创 2023-08-26 00:12:22 · 356 阅读 · 0 评论 -
is_vmalloc_addr函数总结
【代码】is_vmalloc_addr函数总结。原创 2023-08-23 08:43:06 · 256 阅读 · 0 评论 -
linux异步信号驱动
参考:https://www.cnblogs.com/mrlayfolk/p/15858989.html。原创 2023-08-15 09:46:48 · 262 阅读 · 0 评论 -
register_chrdev函数简单使用
在/proc目录下,cat device时可以看到该megaraid_sas_ioctl字符设备的设备号,但是由于该设备文件还没有设备节点,所以还无法执行到对应的read等回调函数,所以可以利用函数或者mknod命令创建相应的设备节点,比如,register_chrdev函数网上介绍的文章比较多,就不概述了。然后就可以对mega进行cat,echo了。原创 2023-08-12 15:16:57 · 376 阅读 · 0 评论 -
dma_mmap_coherent函数的使用
需要注意的是,使用remap_pfn_range映射dma地址虽然没有报错,但是在应用程序操作的好像不是同一个dma地址。buf_addr 是内核态的虚拟地址,dma_addr是dma地址,它们都1对应同一段物理地址,即,已经建立了映射关系。在相应的字符设备驱动的mmap回调函数里,可以这样处理,这样在用户态,就可以通过mmap函数操作dma地址了。原创 2023-08-11 10:42:30 · 1709 阅读 · 0 评论 -
linux scatterlist阅读二
page_link ,offset,length的值,其中page_link 保存的是经过转换以后的物理地址,在使用sg_init_one函数的例子当中,buf传入的是内核虚拟地址。可以看到这个函数的作用就是将sgl起始地址的一段空间清零,然后设置最后一个元素的page_link 值,由于是最后一个元素,所以page_link 的第一个bit被设置为1。而像dma_length,dma_address一类成员的值的设置就要使用dma相关的函数去设置了,设置以后,记录的就是设备认识的dma地址了。原创 2023-07-22 17:51:45 · 519 阅读 · 0 评论 -
linux scatterlist源码阅读记录
linux scatterlist结构体学习原创 2023-07-22 14:27:29 · 516 阅读 · 0 评论 -
linux内核自旋锁理解总结
比如一开始是禁止了中断,然后调用spin_lock_irq和spin_unlock_irq,在调用spin_unlock_irq结束后会开启中断,本来一开始是禁止中断的,但是最后开启了中断,这显然是不对的。主要是spin_lock_irq和spin_lock_irqsave的区别理解,,一个会记住在调用函数时中断是否使能,原创 2023-05-21 21:12:59 · 129 阅读 · 0 评论 -
linux内核红黑树
相关结构体定义如下:使用案例:原创 2023-03-19 17:35:51 · 152 阅读 · 0 评论 -
linux内核链表的基本操作
一:链表的头插法参考:原创 2023-03-18 20:43:33 · 120 阅读 · 0 评论 -
linux kernel常用的对齐函数总结
内核字节对齐函数原创 2023-03-10 18:15:11 · 660 阅读 · 0 评论 -
module_param_array()用法
ubuntu5.4.135平台。原创 2023-03-02 14:35:08 · 423 阅读 · 0 评论 -
debugfs调试学习
linux debugfs原创 2022-11-23 19:33:14 · 277 阅读 · 0 评论 -
linux内核网络驱动流量控制系列api总结
网络流量系列api总结原创 2022-10-11 16:41:35 · 230 阅读 · 0 评论 -
linux内核 kthread函数简单使用
linux 内核线程原创 2022-10-10 14:36:56 · 252 阅读 · 0 评论 -
linux内核iic驱动例程
linux iic驱动例程原创 2022-09-30 18:16:55 · 293 阅读 · 0 评论 -
linux内核内存池和页分配api
内存分配原创 2022-09-28 18:46:38 · 167 阅读 · 0 评论 -
find_first_zero_bit和find_next_zero_bit函数
find_next_zero_bit函数与find_first_zero_bit函数总结原创 2022-09-21 14:32:43 · 1669 阅读 · 0 评论 -
linux内核per_cpu变量学习
per_cpu变量原创 2022-08-25 10:26:21 · 552 阅读 · 0 评论 -
linux内核等待队列API汇总
linux 内核等待队列原创 2022-08-24 10:30:42 · 231 阅读 · 0 评论 -
内核里的atomic_t变量API与位操作API总结
内核原子变量与位操作API汇总原创 2022-08-17 19:43:55 · 480 阅读 · 0 评论 -
使用接口proc_create调试代码
内核调试原创 2022-08-15 10:31:48 · 428 阅读 · 0 评论 -
在字符设备当中实现ioctl函数
实现ioctl函数原创 2022-08-14 14:12:36 · 263 阅读 · 0 评论 -
实现一个字符设备的读写
实现一个字符设备的读写原创 2022-08-13 11:36:30 · 465 阅读 · 0 评论 -
Freebsd bnxt驱动阅读总结
bnxt网卡驱动阅读记录原创 2022-08-11 19:22:10 · 223 阅读 · 0 评论 -
linux内核信号量与完成量
linux内核信号量。原创 2022-08-09 10:09:44 · 267 阅读 · 0 评论 -
自动生成设备节点
udev自动生成设备节点原创 2022-08-07 18:37:26 · 190 阅读 · 0 评论 -
字符设备的注册
字符设备的注册原创 2022-08-07 15:23:20 · 246 阅读 · 0 评论 -
字符设备主设备号和次设备号的分配
设备号的分配原创 2022-08-06 16:39:58 · 200 阅读 · 0 评论 -
FreeBSD bnxt以太网驱动源码阅读记录三:
注意,网卡的这个属性是和其所连接的交换机协商的结果,可能我们的网卡是1000base的,但是连接的交换机的口是100base的,或者网线是100base的,那么可能刚刚启动的时候,运行ifconfig会看到是1000base的,但是数据量多一点,就会改为100base的了。100BASE-T是IEEE定义的以速度100Mbps传输的非屏蔽双绞线电缆及其以太网的各个方面的标准。参考https//www.cnblogs.com/awpatp/p/14261899.html。...............原创 2022-08-01 13:58:15 · 638 阅读 · 0 评论 -
c语言编程当中两个!!的作用
0没的说了,使用两次!还是0,,那非0呢?比如1和12,-1等,它们使用两次以后都变成1。在一些内核模块的代码里面经常看到一个表达式里面用两个!符号的,搜索了一下,其实。作用有两个,一个是非零值使用!...原创 2022-07-26 19:54:58 · 1552 阅读 · 0 评论 -
FreeBSD bnxt以太网驱动源码阅读记录二:
而BNXT_CP_ENABLE_DB和BNXT_CP_DISABLE_DB,BNXT_CP_IDX_ENABLE_DB都是宏。其中上面的4个函数都涉及到了,bnxt_do_disable_intr函数和bnxt_do_enable_intr函数,这两个回调函数里面做的事情由此看来也是调用BNXT_CP_DISABLE_DB写doorbell寄存器的。其中涉及的回调函数有bnxt_handle_def_cp和bnxt_handle_rx_cp。这个函数其实是相当于申请中断号和设置中断回调函数的。.......原创 2022-07-25 13:54:27 · 661 阅读 · 0 评论 -
FreeBSD bnxt以太网驱动源码阅读记录一:
bnxt驱动阅读记录原创 2022-07-13 14:39:55 · 1132 阅读 · 0 评论