- 博客(103)
- 收藏
- 关注
原创 cortex-A7核IIC实验--采集温湿度传感器的值
停止信号:传输数据结束,时钟线SCL高电平,数据线SDA从低到高(上升沿)2)起始信号:开始数据传输,时钟线SCL高电平,数据线SDA从高到低(下降沿)2)传输速率:低速:100K 中速:400K 全速:3.4M。机模式,但 同一时刻,只能单主机单从机进行通讯。IIC总线传输,既可以传输8位数据位,或者。从机:只能被动接收数据。6)每一个从机设备都有自己唯一的。外接两个上拉电阻的作用。7)发送器:发送数据。传输的数据---必须。
2023-11-08 20:48:47 259
原创 cortex-A7核 中断实验(按键中断实验)
4)设置GICD层中断目标分配给那个CPU(cpu0 cpu1)3)设置中断不屏蔽,EXTI层中断转发到GIC层。3)设置GICD层中断优先级,需高于GICC层。1)设置GPIO引脚信号与EXTI进行连接。2)清除EXTI层中断挂起标志位。3)清除GICD层中断挂起标志位。2)设置GICC层中断优先级。2)设置中断信号的触发方式。2)设置GICD层中断使能。1)设置引脚为 输入模式。1)ARM中:延时消抖。1)使能GICD层使能。1)设置GICC层使能。4)清除获取到的中断号。1)使能GPIOF组。
2023-11-08 19:50:35 903
原创 cortex-A7核UART总线及代码
GPIO章节:1)设置复用功能模式 2)设置引脚为对应复用功能。UART4_TX-----PG11------引脚为复用功能。UART4_RX-----PB2-------引脚为复用功能。RCC章节:使能GPIOB/GPIOG/UART4组控制器。章节:1)初始化相关操作 2)实现数据收发、串口配置信息8N1代表什么?各个部件之间传输一种媒介。
2023-10-31 23:15:54 203
原创 设备树(以STM32MP1为例)
设备树并不是从开始就存在,而是后来加入到Linux中,设备树主要用来描述系统的硬件结构。,以提供一个统一的方式来描述各种硬件设备的特性和连接方式。注:软件(例如内核)最终使用二进制设备树文件。它是一个文本文件,通常以。(已编译的设备树二进制文件)为扩展名。注:并不是只有dtsi才能被包含。注:二进制设备树文件。
2023-10-31 11:40:56 175
原创 汇编的各种指令(数据搬移、移位、位运算、算数、比较、跳转、特殊功能寄存器、单寄存器、多寄存器、栈指针指令)
保存现场:stmfd sp!,{r1-r5,lr}恢复现场:ldmfd sp!
2023-10-30 17:21:13 623
原创 Makefile三个版本的编写、以及分析案例
在Makefile中,会把编译的过程分为两步,先生成.o文件,再对.o文件链接,生成可执行文件。,简化编译的流程,完成自动化编译的过程。Makefile是一个。
2023-10-28 12:33:31 183
原创 I2C子系统、读取温湿度的逻辑及代码
scl:时钟线 sda:数据线起始信号(start):scl是高电平,sda下降沿终止信号(stop):scl高电平,sda上升沿应答信号(ack):第9个周期,sda是低电平非应答信号(NACK:)第9个周期,sda维持高电平: 串行同步半双工1)写时序)读时序。
2023-09-21 18:49:25 249
原创 platform驱动模型(工作流程及代码)
为了能够让驱动更加适配,我们可以在驱动端构建一个名字表。只要设备的名字和名字表中的任何一个名字一样,都可以执行驱动端probe函数内核3.10版本以后要求将所有的设备信息都保存在设备树中,所有以后驱动端获取设备信息都在设备树中获取,所以需要使用驱动端的设备树匹配方式2.
2023-09-20 21:43:34 252
原创 Linux内核中断(内核中断实现过程、注册三个按键中断实例、中断底半部实例、工作队列)
工作队列用于底半部原理:内核中存在工作队列对应的内核线程,这个线程从内核启动就存在,处于休眠态。当有任务需要执行时,只需要将任务提交到工作队列中,然后唤醒休眠的内核线程,由内核线程去处理对应的任务即可。工作队列既可以用于中断,也可以用于进程。
2023-09-19 19:03:44 482
原创 GPIO子系统编写LED灯的驱动、linux内核定时器
一个芯片厂商生产出芯片后会给linux提供一个当前芯片中,我们当前只需要调用对应的厂商驱动即可完成硬件的控制。而linux内核源码中的gpio厂商驱动有很多,这里linux内核对,提供了一系列的API,我们在自己编写的设备驱动中只需要调用这些API即可访问对应的厂商驱动,进而完成GPIO的控制。
2023-09-18 19:03:31 255
原创 linux驱动开发day6--(epoll实现IO多路复用、信号驱动IO、设备树以及节点和属性解析相关API使用)
红黑树、一张表以及三个接口、int epfd=epoll_create(int size--无意义,>0即可)----------成功:返回根节点对应文件描述符,失败:-1a.struct epoll_event event;定义事件结构体b.struct epoll_event events[10];定义存放就绪事件描述符的数组c.添加准备就绪事件进入epoll,如:event.events = EPOLLIN; // 读事件event.data.fd = fd1;epoll_ctl(epfd, EPOL
2023-09-15 20:34:51 593
原创 linux驱动开发--day4(字符设备驱动注册内部流程、及实现备文件和设备的绑定下LED灯实验)
inode对象里字符设备结构体成员(struct cdev)里,有操作方法结构体成员(struct file_operations *ops)4.数组每个成员都是struct file类型,存储的是打开文件的相关信息,里面有操作方法结构体(驱动中的操作方法)去驱使硬件实现特定功能。应用层打开文件系统中的存在文件,会有inode号,且系统内核中就会存在一个inode对象(struct inode)保存文件相关信息。2.在进程里打开一个文件,内核就会存在一个struct file对象,用于保存打开文件的信息。
2023-09-13 20:12:16 379
原创 linux驱动开发--day1(驱动、内核模块及相关命令、内核模块传参)
【代码】linux驱动开发--day1(驱动、内核模块及相关命令、内核模块传参)
2023-09-06 19:52:05 304
原创 A7核IIC实验--采集温湿度传感器值(IIC时序、IIC协议的介绍)
【代码】A7核IIC实验--采集温湿度传感器值(IIC时序、IIC协议的介绍)
2023-08-23 21:22:29 95
原创 ARM--day7(cortex_M4核LED实验流程、异常源、异常处理模式、异常向量表、异常处理流程、软中断编程、cortex_A7核中断实验)
软中断代码:(keil软件)
2023-08-21 19:21:02 522
原创 ARM--day6(实现字符、字符串收发的代码和现象,分析RCC、GPIO、UART章节)
【代码】ARM--day6(实现字符、字符串收发的代码和现象,分析RCC、GPIO、UART章节)
2023-08-18 19:29:51 267
原创 ARM--day5(C语言点灯实验、总线、串口通信信息、串口通讯协议)
【代码】ARM--day5(C语言点灯实验、总线、串口通信信息、串口通讯协议)
2023-08-17 19:34:58 399
原创 ARM--day4(电灯实验、分析RCC、GPIO控制器,PMOS管、NMOS管的基本原理)
【代码】ARM--day4(电灯实验、分析RCC、GPIO控制器,PMOS管、NMOS管的基本原理)
2023-08-16 18:58:33 460
原创 ARM--day2(cpsr、spsr、数据搬移指令、移位操作指令、位运算操作指令、算数运算指令、比较指令、跳转指令)
用for循环实现1~100之间和5050。
2023-08-14 20:30:54 1355
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人