- 博客(35)
- 收藏
- 关注
原创 【SoC设计指南 基于Arm Cortex-M】学习笔记2——AHB概述
AHB系统在内核时钟HCLK信号驱动下运行,AHB总线上连接的寄存器访问均在AHB的上升沿触发。AHB总线信号中有一个低电平有效的复位信号HRESETn,即HRESETn信号为低电平时,AHB系统立即复位。典型AHB系统主要信号如下:HREADYOUT信号与HREADY信号在不是同一个信号线。
2024-11-22 18:25:40
551
原创 【Linux驱动开发】裸机点亮LED灯实验
本实验使用的是正点原子I.MX6ULL开发版的汇编LED灯实验,通过GPIO1_IO03引脚输出低电平点亮小灯。通过操作寄存器使GPIO1_IO03输出低电平包括以下几步:1、开启时钟。2、设置IO口的复用功能为gpio。3、对IO进行配置,如上下拉、速度等。4、设置GPIO1_IO03为输出。5、向GPIO1的data register中IO03对应位写入0,使得GPIO1_IO03输出低电平。
2024-11-22 18:23:59
1144
原创 某款扫地机器人源码分析1——指令数据解析处理部分
本文对一款基于stm32实现的扫地机器人程序进行分析。扫地机器人通过串口接收或发送数据,数据包括控制端向扫地机器人发送的控制指令,扫地机器人向控制端反馈当前状态等。
2024-11-19 13:27:32
1186
原创 【SoC设计指南 基于Arm Cortex-M】学习笔记1——AMBA
先进微控制器总线架构(Advanced Microcontroller Bus Architecture,AMBA)是用在arm处理器上的片上总线协议规范集。AMBA总线协议规范集包含AHB、APB、AXI等。AHB:先进高性能总线(Advanced High-performance Bus)APB:先进外设总线(Advanced Peripheral Bus)AXI:先进可扩展接口(Advanced eXtensible Interface)
2024-11-10 11:32:17
377
原创 stm32以太网接口:MII和RMII
MII和RMII就是stm32与PHY芯片之间的通信接口,类似于I2C、UART等。stm32以太网模块有专用的DMA控制器,通过AHB接口将以太网内核和存储器相连。数据发送时,先将数据从存储器以DMA传输到TX FIFO中进行缓冲,然后由MAC内核通过MII或RMII接口发送;数据接收时,RX FIFO先通过MII或RMII接收以太网数据帧,再由DMA传输至存储器。
2024-11-10 10:50:12
1106
原创 【开源项目赏析】遥控四旋翼直升机项目——MiniQ
本项目包括遥控器和四旋翼两部分,遥控器是一个安卓app,四旋翼主要包括:蓝牙模块:用于接收遥控器指令。IMU:惯性测量单元(Inertial Measurement Unit),也就是MPU6050,用于获取当前四旋翼状态。电机:通过对其输出PWM信号,控制其转速快慢。
2024-09-02 13:13:36
489
原创 【LwIP源码学习笔记1】LwIP网络接口管理
netif是Lwip抽象出来的网卡,结构体的声明在文件中。Lwip将每个用netif描述的网卡连接成一个链表(单向链表)。以下是在netif.h头文件中定义的一些netif的操作函数操作函数中第一个参数是netif指针,用这种方式达到了C++中类的封装效果,有设计模式中工厂模式的设计思想,也就是该结构体表示对象的数量是不确定的,随时可能变多或者单少,这种情况下可以使用的方式,方便对多个同类对象管理。
2024-08-26 17:15:14
600
原创 【链接、装载与库】动态链接中的延迟绑定(PLT)
动态链接是在运行时将各个模块的代码进行整合,静态链接是在编译时对各个模块的代码进行整合。而运行时整合使得动态链接相对消耗了一些性能,为了减小这点带来的影响,动态链接中引入了延迟绑定(PLT),其基本思想是当函数第一次被用到时才进行绑定(符号查找、重定位等),如果没有用到则不进行绑定,接下来通过一个示例对延迟绑定进行分析。
2024-07-13 14:46:50
1177
原创 Xilinx SDK创建项目时报错“Error generating bsp sources. Please check the SDK Log view for further details.”
Xilinx SDK创建项目时报错“Error generating bsp source. Please check the SDK Log view for further details.”
2024-07-12 13:08:20
713
原创 【链接、装载与库】动态链接初体验
动态链接基本思想是把程序按照模块拆分成各个相对独立部分,在程序运行时才将他们链接在一起形成一个完整的程序。Linux系统中,动态链接文件以".so"为扩展名,so表示Shared Objects,称为动态共享对象。Windows系统中,动态链接文件以".dll"为扩展名,dll表示Dynamic Linking Library,称为动态链接库。
2024-07-10 15:49:13
379
原创 【Cortex-M3】中断处理时栈空间操作过程分析
中断发生后,压栈行为分两步:第一步:处理器自动压栈“调用者保护寄存器”,顺序为xPSRLRR12R3R2R1R0。第二步:中断服务函数首先压栈LR(这时的LR已经和进入中断前的LR不一样了),然后压栈一些用到的“被调用者保护寄存器”R4-R11。
2024-06-29 11:55:41
1413
2
原创 stm32 485接收数据异常调试过程
stm32f407与传感器通过485总线进行通信,stm32向传感器发送索要数据的指令,传感器本应传回的数据与实际接收到的数据不一致。像是被485芯片修改过一样。
2024-06-13 18:03:05
1296
原创 【stm32、ESP8266、华为云】搭建一个简单的物联网系统
本文介绍搭建一个简单的物联网系统,系统包括服务器、stm32单片机、手机三部分。
2024-06-08 14:39:11
1271
1
原创 boot程序中启动主程序bug,一线调试过程
boot程序首先从flash中把主程序的数据读取出来,如果校验没问题则启动主程序,但是发现boot在主程序校验正确后卡死,不再有任何反应。
2024-04-09 17:51:17
386
1
原创 排序算法-归并排序
将nums数组从中间分割成两部分,将分割后的两个数组按照升序排列起来,前提是分割的两部分已经是排好序的了,类似于合并升序链表。最后整个数组分割成5 2 和 3 和 4 1 三个部分。5 2 3 4 1 分割成 5 2 3 和 4 1。5 2 3还可以继续分割成5 2 和 3。mergeSort函数只起到分割的作用。......
2022-09-01 09:39:17
169
3
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人