嵌入式Linux驱动
文章平均质量分 61
Linux驱动开发
清欢_小铭
手机厂从事嵌入式软件开发,985小硕。
嵌入式Linux、围绕C/C++、单片机裸机、RTOS。
展开
-
Linux设备树详细学习笔记
一般.dtsi 描述板级信息(也就是开发板上有哪些 IIC 设备、SPI 设备等,由芯片厂提供),.dts 描述 SOC 级信息(各个外设控制器信息、那个iic上挂哪个传感器等),这样写的好处是,将芯片平台与下游odm分开,通过dts拓展原始基础dtsi。比如,要在iic总线上挂载一个六轴设备,soc厂商可能给一个例程,也可能不给,就要自己修改和添加。和 C 语言一样,设备树也支持头文件,设备树的头文件扩展名为.dtsi,也可以引用 C 语言中的.h 文件,甚至也可以引用.dts 文件,例如。原创 2023-09-10 17:59:38 · 539 阅读 · 0 评论 -
Linux下 /sys/class 一些操作
dev下面有很多节点,每一个节点代表一个设备,/dev目录下面是按物理器件进行分类;而/sys/class下面的更多是按功能抽象出来的。class_create执行后,sys/class下面会生成一个NEWCHRLED_NAME的路径,但此时,该路径下为空。将dev设备与class相关联,该函数执行后,NEWCHRLED_NAME路径下出现。my_att_store和my_att_show分别对应应用层对属性文件的读写。在删除设备的时候自动删除该节点,无需在exit函数中特意删除。原创 2023-09-04 22:07:37 · 1431 阅读 · 0 评论 -
Linux驱动零散知识点
外设寄存器的物理地址是已知的,但不能直接访问,必须将其映射到内存空间,在Linux内核的io.h头文件中声明了ioremap()函数,用来将IO内存资源映射到核心虚拟地址空间(3Gb~4GB)中,当然不用了可以将其取消映射iounmap()。Bootloader会将这棵树传递给内核,然后内核来识别这棵树,并根据它展开出Linux内核中的各种设备,而这些设备用到的内存、IRQ等资源,也被传递给内核,内核会将这些资源绑定给展开的相应设备。下半部的实现方式很多:小任务(tasklet),工作队列,软中断。原创 2021-07-01 22:30:57 · 463 阅读 · 0 评论 -
实时操作系统与分时操作系统
实时的概念实时操作系统是保证在一定时间限制内完成特定功能的操作系统。实时操作系统有硬实时和软实时之分,硬实时要求在规定的时间内必须完成操作,这是在操作系统设计时保证的;软实时则只要按照任务的优先级,尽可能快地完成操作即可。实时特点可剥夺的内核当系统响应时间很重要时,要使用可剥夺型内核。最高优先级的任务一旦就绪,总能得到CPU 的控制权。比较非实时系统:交互能力较强,响应时间在秒级别,可靠性 一般。进程完成没有明确的期限,进程间切换较慢,内核不可剥夺(体现在公平)。非实时系统:交互能力较弱,原创 2021-08-01 11:47:17 · 1499 阅读 · 0 评论 -
编译内核驱动为模块,没有指定架构的时候出现错误
跨平台需要交叉编译,命令展开后make -C /home/alientek/linux/linux-imx-4.1.15-2.1.0-g3dc0a4b-v2.7 M=/home/alientek/linux/driver/broaddriver/01_chrdevbase modules 并没有指定编译架构。因为直接使用的历程,并且跳过了一些内容,所以猜想不是代码抄错了,是配置原因。将makefile文件改为。原创 2023-05-21 21:44:53 · 179 阅读 · 0 评论 -
树莓派sensehat画图游戏 Etch a sketch
目标通过sensehat的手柄移动光标,led点阵相当于屏幕,按下按键,切换颜色,摇动树莓派清屏。Etch a sketchPress the joystick button to cycle through colors (at least red, green, blue, white, unlit). Move thejoystick to draw with the chosen color. Shake the Pi to erase the screen (using the accele原创 2021-12-13 21:48:35 · 2852 阅读 · 1 评论