自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(7)
  • 收藏
  • 关注

原创 Linux驱动学习【platform】

自定义获取数据平台设备和驱动的代码都需要进行改动,平台设备函数的操作步骤:①定义引脚类型②实例化引脚对象③定义平台数据类型④创建平台数据对象并绑定对象⑤平台设备结构体dev成员中用platform_data绑定。其实通过上面的程序我们也能了解到的一种成功匹配的条件:就是平台驱动的名字和设备驱动的名字要相同!(这里这样命名主要是为了我方便使用tab键哈哈哈,其次平台设备文件之间的-是参考内核文件中平台设备的命名方式)使用printk函数调试,只要能成功匹配probe()那么就证明我们程序没问题。

2023-08-03 16:56:10 72

原创 Linux驱动学习【设备树】

设备树是在uboot启动之前就已经加载好的,通过扁平设备树FDT(flat device tree)展开,将部分设备信息结构存放到dfevice tree文件中,uboot启动之后就将device tree编译成dtb设备树文件,然后加载到内核中的resource.img镜像中。设备树三个文件后缀。设备树源文件dts(描述文件),设备树包含源文件dtsi(类似头文件),编译后设备树文件dtb(二进制文件)。设备树反编译的方法是在我们的内核目录下。也就是再将设备树二进制文件反向编译成设备树源文件。

2023-08-03 14:47:42 188

原创 Linux驱动学习【字符设备注册】

通过前面的学习,我们大概了解了驱动字符设备的过程。现在我们介绍一个兼容老版本的字符设备注册方法,之前我们注册设备号使用的是register_chrdev.随着内核文件变化升级,我们完善出了新的注册设备号的方法(使用cdev注册设备号)。1)注册设备号(静态:register_chrdev_region 动态:alloc_chrdev_region)新的方法注册设备号比原来的老方法多了一步,就是向内核注册添加cdev设备。4)将cdev对象注册到内核中(3)初始化cdev对象(2)创建cdev对象(

2023-08-02 19:33:41 149

原创 Linux驱动学习【GPIO】

应用层要打开我们的设备文件,调用对应的设备驱动程序,把我们要点亮灯的操作实现。要在入口把设备申请好,把GPIO口设置好,出口注销设备相关即可。首先电灯得知道引脚号,快去翻原理图!之前说过,我们要创建字符设备文件。这里设计应用层了,那么我们就需要调用内核文件自己写的文件操作函数,也就是fops结构体,之前我们学习了驱动程序的编写框架以及了解了字符设备驱动需要做的事。(设备注册函数register_chrdev把file_operations结构体告诉内核), 装驱动程序时,就会去调用这个入口函数。

2023-08-02 19:12:24 131

原创 Linux驱动学习【程序框架】

其中major参数表示主设备号,静态设置就自己找一个没被用的赋值(通过查看 cat /proc/devices找没被用的),动态设置就是major=0。当make的目标为all时,-C $(KDIR) 指明跳转到源码目录下读取那里的Makefile;M=$(PWD) 表明然后返回到当前目录继续读入、执行当前的Makefile。当make的目标为all时,-C $(KDIR) 指明跳转到内核源码目录下读取那里的。M=$(PWD) 表明然后返回到当前目录继续读入、执行当前的Makefile。

2023-07-26 17:08:56 65

原创 Linux驱动学习【准备工作】

rk3399 驱动

2023-07-25 20:38:34 378

原创 linux应用编程(1)进程使用

这个结构体内容很多!就会存在一个父进程等待子进程和回收子进程结束的概念。1)fork()------------子进程完全复制父进程的资源(除了pid和task_struct)2)使用函数exit()-------这个是会刷新缓冲的,会处理进程程序内容。)-------子进程成为孤儿进程。(子进程一生的使命圆满完成结束了,父进程都不管死活)-------子进程成为僵尸进程。3)使用函数_exit()------这个不管你进程内容,直接干死。2)vfork()------------不推荐使用。

2023-07-13 09:03:10 35

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除