- 博客(10)
- 收藏
- 关注
原创 RK3568开发板学习linux驱动---相关环境搭建与文件
sudo service ssh start //开启SSH。sudo systemctl status sshd //查看SSH状态。我的路径是:D:\mini2144virtual\VM\Ubuntu 64 位.vmx。sudo apt-get install openssh-server //安装SSH。eg: ssh 用户名@虚拟机ip地址。1、分区文件Parameter的位置。找到虚拟机文件后缀为vmx的文件。虚拟机需要先安装SSH。
2025-11-19 23:24:09
163
原创 十三、I2C和BH1750
struct device_driver driver.name //名字。函数返回值:注册成功返回 0 注册失败返回 非 0。应答信号:第九个数据位为0表示从机应答,为1表示没有应答。起始信号:SCL在高电平的时候SDA产生了下降沿。结束信号:SCL在高电平的时候SDA产生了上升沿。函数头文件: <linux/i2c.h>
2024-10-21 20:48:02
660
原创 十二、定时器和POLL轮询
timer:都是刚才完成初始化的内核定时器的核心结构体原则上 add_timer 只要填充结构体后就完成了激活定时器就开始工作,只会工作一次工作完毕后不允许直接 add_timer 再次添加->内核错误。使用poll函数是为了检测,内核层的poll是一个机制,没有说明必须要去实现,去过有一天,你的按键是阻塞性,而且还有很多按键,我们就需要对按键进行检测。linux下的定时器是一个软件定时器,定时器的精准比较低。func:回调函数->当你定时器计数完毕,该函数被回调一次可以当作软中断。
2024-10-17 15:18:50
559
原创 十一、中断
在中断服务程序中,为了保护中断现场(即CPU主要寄存器中的内容)期间不被新的中断所打断,必须关中断,从而保证被中断的程序在中断服务程序执行完毕之后能接着正确地执行下去。为了保证在中断服务程序执行完毕后能正确地返回到原来的程序,必须将原来程序的断点(即程序计数器(PC)的内容)保存起来。中断优先级通过中断控制器控制(NVIC GIC),linux下可以控制优先级,但是需要耗费大量的时间去修改底层,得不偿失。引出中断服务程序的实质就是取出中断服务程序的入口地址并传送给程序计数器(PC)。
2024-10-15 20:33:40
469
原创 九、平台设备总线 platfrom 框架开发
很多情况下,内核附带的驱动很多,而这些驱动在内核刚开始的时候就会自动加载到内核的内部!而这些内核都是静态的实际上都是无效的驱动。因为这些驱动采用都是自动匹配设备信息的方法如果检测到设备树没有设备信息!驱动则会静态等待信息,可以把这状态当作 挂起!这个时候的驱动不占用任何的资源和空间!设备树就是设备端,平台设备总线可以分为:设备端----设备树信息、驱动端----写的驱动代码。drv:填充的驱动的信息:三个信息:匹配的名字。在内核注册驱动的信息以及新的入口和新的出口。driver:驱动的匹配的信息。
2024-10-11 17:37:11
340
原创 八、设备树开发
使用设备树开发可以提高我们的代码通用性,我们可以设备树中添加硬件的信息,当我们驱动硬件的时候,我们可以从设备树中获取硬件的信息进行开发,如果我们需要修改硬件信息的话,直接去修改设备树,而驱动硬件的代码不用修改,这样即使换个芯片,代码依旧可用。设备树里面所编写的设备的信息是节点,节点里面的内容才是设备树关键。这里面的内容我们称之为属性!需要注意的是,一个使用多个属性时要用,隔开最后再加;设备树本质上是一个文本文件,包含了芯片的各种信息。属性的内容一共就分为两大类:数字属性、字符串属性。属性名 = 属性值;
2024-10-10 20:14:36
730
原创 LINUX Ubuntu镜像常用的指令
pwd显示绝对路径 ls -a显示所有文件及目录 ls -l显示文件的详细信息 mkdir +目录名 创建目录 cp +文件名 +目的地址 把文件复制到该目录下 move + 文件名 +目的地址 把文件移动到该目录下 rm +文件名删除文件 rm -r +目录名删除目录 chomd +权限 +文件修改文件权限 find -name +文件名查找文件 tar -xvf file.tar //解压 tar 包 tar -xzvf file.tar.
2024-10-09 20:32:50
226
原创 七、linux2.6驱动开发
错误原因一:89编译模式下 变量的声明要放到函数体内的上面,也可以在kernel修改Makefile中的-std=gnu89改为-std=gnu99 注释掉KBUILD_CFLAGS += -Wdeclaration-after-statement。错误原因二:编写mybeep_exit函数的时候多打了一个{2.结构体初始化函数。4.创造一个设备文件。
2024-10-09 16:33:03
536
原创 六、杂项设备驱动
会生成main和led.ko文件,把这两个文件推入到开发板里边 adb push main led.ko /(推入根目录)杂项驱动是把设备抽象成一个linux下的设备文件,相当于是一个接口,上层开发人员可以通过这个接口对设备进行操作。ls /dev/myled_text 看是不是有设备文件产生。使用make编译led.c和main.c。转换到开发板 adb shell。./main运行主函数。
2024-10-08 20:30:41
300
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅