• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
 






kaosine

 
 

Powered by 博客园
博客园 | 首页 | 新随笔 | 联系 | 订阅 订阅 | 管理
上一页 1 2 3 4 下一页

2020年7月26日

3.字符设备驱动模型
摘要: 一、字符设备驱动的设计流程 1、定义一个字符设备2、定义字符设备的file_operations和其接口函数3、申请设备号:静态注册,动态分配4、字符设备初始化cdev_init()5、将字符设备加入内核cdev_add()6、创建设备文件:手动创建(shell命令)、自动创建(调用函数) 二、定义 阅读全文
posted @ 2020-07-26 11:29 kaosine 阅读(188) 评论(0) 推荐(0)
 
2. 内核模块概述
摘要: 一、linux内核模块1.数据类型:char(8bits)、short int (16bits)、int(32bits)、long int(与CPU的字长一致) 2、内核模块的作用linux kernel Module >设备驱动是以独立的module的形式存在的,设计的驱动需要包含在module内 阅读全文
posted @ 2020-07-26 11:19 kaosine 阅读(390) 评论(0) 推荐(0)
 
1.概述
摘要: 为了保存以前学习的一些笔记,把他们都写到blog。嘻嘻,虽然不怎么辉CSS排版,但是为了不丢失,暂时只能这样了。 一、驱动如何使用?显卡的访问方法?1、打开显卡fd = open("/dev/fb0", O_RDWR); //打开显卡。/dev/fb0 >设备文件,应用程序访问驱动程序的一个桥梁。每 阅读全文
posted @ 2020-07-26 11:13 kaosine 阅读(105) 评论(0) 推荐(0)
 

2020年7月23日

驱动开发crash问题debug方法之一
摘要: 有时候在开发过程中遇到crash的问题,back trace印的比较少或者没有印,或者看到back trace你觉得可以不是死在这边,都可以用下面的方法进行debug,定位到具体是哪一个函数的某一行。 [Thu Jul 16 07:24:18.560 2020] [ 9.983629] Intern 阅读全文
posted @ 2020-07-23 20:25 kaosine 阅读(615) 评论(0) 推荐(0)
 

2020年6月8日

Linux内核中使用usleep_range(min, max)的注意事项
摘要: 这个延迟函数最少的延迟时间为50us, 就算min=max=1, 实际的效果应该不是延迟1us, 而是50us, 大牛们说的。。 1) 驱动中的延时语句一般禁止使用mdelay(),msleep的话特别是较短10~20ms的时候常常会因为系统调度变成更长的时间,精度较差,需要较为精确的ms级别延时请 阅读全文
posted @ 2020-06-08 17:04 kaosine 阅读(12241) 评论(0) 推荐(0)
 

2020年3月3日

C++ 多态的实现原理分析
摘要: 一、什么是多态在面向对象开发中,多态是一个很重要的特性。什么是多态呢?就是程序运行时,父类指针可以根据具体指向的子类对象,来执行不同的函数,表现为多态。 二、C++ 多态的实现原理1. 实现原理当类中存在虚函数时,编译器会在类中自动生成一个虚函数表虚函数表是一个存储类成员函数指针的数据结构虚函数表由 阅读全文
posted @ 2020-03-03 19:01 kaosine 阅读(272) 评论(0) 推荐(0)
 

2020年1月10日

内核中open、read、write应用层文件。
摘要: 虽然为了策略安全的问题不建议在内核中读写应用层的文件,但是有时候我们要debug时候会用到,这时候我们应该怎么写呢? 包含头文件 #include <linux/fs.h>#include <asm/uaccess.h>#include <linux/param.h> CHAR ucFileName 阅读全文
posted @ 2020-01-10 15:51 kaosine 阅读(488) 评论(0) 推荐(0)
 

2019年12月26日

Git常用有用的命令
摘要: git add git commit git checkout -b abc abc/mstaer git pull git push abc HEAD:refs/for/abc git reset --soft HEAD~1 git revert xxxx git diff git diff -- 阅读全文
posted @ 2019-12-26 16:14 kaosine 阅读(160) 评论(0) 推荐(0)
 
dump_stack()函数的作用
摘要: dump_stack使用方法 对于大型驱动,想要知道某个回调函数由谁调用,非常困难。到底有没有办法知道呢?回答是肯定的,通过内核提供的接口dump_stack()可以满足要求。其实能够想到使用dump_stack()来跟踪,是根据当内核发生panic时候,也会主动调用该接口,所以我们可以在调试过程中 阅读全文
posted @ 2019-12-26 16:07 kaosine 阅读(1130) 评论(0) 推荐(0)
 
procfs的作用
摘要: 有时候我们在开发内核驱动的时候,有很多feature需要增加开关控制,在debug的时候,有时候需要提高debug效率,不想要去手动改code,这时候可以使用procfs,通过procfs来实现控制这个flag的开关。 在许多类 Unix 计算机系统中, procfs 是 进程 文件系统 (file 阅读全文
posted @ 2019-12-26 16:05 kaosine 阅读(332) 评论(0) 推荐(0)
 
上一页 1 2 3 4 下一页