自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 中断向量表地址偏移的对齐要求

“中断向量表的二次幂对齐”指的是 中断向量表对 偏移量大小 的要求 ,在进行中断向量表偏移时,需要向上圆整,否则会出错。

2025-03-26 00:23:52 328

原创 ARM异常处理流程与中断机制总结,与常见丢中断情况

本文系统梳理了ARM Cortex-M系列处理器的异常与中断机制,从基本概念、处理流程到实际应用中的关键问题逐一解析。重点探讨了异常(同步)与中断(异步)的核心差异、NVIC控制器的特权访问机制、中断处理中的悬起状态与咬尾优化,以及因标志位清除不当导致的丢中断场景。

2025-03-26 00:14:41 1260

原创 嵌入式项目代码架构与分层

BSP:板级支持驱动程MCU和板上外设器件(比如MPU6050)的通信与交互过程。有时候分两种:1.在裸机(有限状态机)情况下,写的驱动程序;2.在操作系统下,写驱动程序。Core:MCU驱动程序面向MCU进行编程,初始化MCU内部的外设(时钟,IIC,SPI等外设)。包含main.c文件。Drivers:厂商SDK程序MCU厂商和MCU内的CPU厂商提供的,用来对CPU和偏上外设编程时用的驱动库,一般由厂家提供。Middlewares:中间件。

2025-03-17 23:10:19 494

原创 FreeRTOS&Bug解析:一个任务printf打印一半突然跳转另一个任务,导致另一个任务无法打印

FreeRTOS&Bug解析:一个任务printf打印一半突然跳转另一个任务,导致另一个任务无法打印。同时对文中读者可能不了解的的知识点提供一站式解析。

2025-03-17 23:02:42 954

原创 ARM:使用F103纯汇编点灯

F103纯汇编点灯

2025-03-15 12:18:12 429

原创 ARM体系结构解析:PC寄存器机制、三级流水线与C/汇编交互全揭秘

文章详解ARM与Thumb双态差异,揭秘三级流水线如何导致PC寄存器"当前地址+8"现象,解析ATPCS规则下汇编与C函数的参数传递奥秘。通过反汇编实例展现编译器优化策略,结合STM32启动流程图解Flash内容布局,并探讨volatile关键字对内存访问的关键影响。最后通过Keil实战演示反汇编码阅读技巧,为理解ARM架构、编写高效底层代码提供知识框架。

2025-03-15 12:14:01 870

原创 ARM内部寄存器与常用汇编指令(ARM汇编)

本文对ARM芯片内部寄存器进行了介绍,同时介绍了ARM汇编常用指令与语法。

2025-03-14 21:31:09 650

原创 ARM:什么是满减栈?为何选择满减栈?

ARM通过硬件指令的寻址模式(如STMDB/LDMIA或STMFD/LDMFD)强制SP在压栈时先减后存、弹栈时先取后增,从而实现了“满减”栈。这种机制由架构直接支持,确保了栈操作的原子性和高效性,同时符合ARM标准调用约定(AAPCS)。

2025-03-14 21:21:53 1008

原创 MCU+RTOS学习笔记1

JTAG是一种国际标准测试协议,主要用于芯片内部测试,标准的JTAG接口为4线:TMS、TCK、TDI、TDO,分别为模式选择、时钟、数据输入和数据输出。PC13通过LED接3V3,当PC13输入低电平时LED点亮,配置为推挽输出模式,无上下拉。SWDIO:串行数据输入信号,作为仿真信号的双向数据信号线,建议上拉。3.边界扫描,可以访问芯片内部信号逻辑状态,还有芯片引脚状态等等。SWCLK:串行时钟输入,作为时钟线,建议下拉。Vref:参考电压信号,不向外提供输出电压。2.JTAG主要功能。

2025-02-25 17:00:42 425

原创 嵌入式硬件基础知识

嵌入式硬件基础介绍,电阻电容电感基本知识,芯片封装

2025-02-25 16:55:45 4540 1

原创 【数据结构】栈和队列

栈,栈的概念及结构,实现数组栈,接口总览,相关实现,初始化:,栈顶数据的增删:,返回栈顶数据:,返回栈内数据个数:,栈的销毁:,来一道简单的栈的OJ题,队列,队列的概念及结构,队列的实现,接口函数总览,队列初始化和销毁,检测队列是否为空,队尾放入数据,队头删除数据,取队列头尾数据,队列内数据个数,用队列实现栈,使用栈实现队列,设计循环队列

2024-11-27 23:09:33 1261

原创 【数据结构OJ】相交链表问题,求相交链表的相交第一个交点

运用双指针,第一次遍历先一起走,当一个走到尾时开始计数,等另一个指针也走到尾时记录下两个指针的路程差,同时比对两个指针指向的地址是否相同,以此判断两个链表是否相交。 如果相交,则让两个指针回到两个单链表开头,让链表长的那个先走完两指针的路程差,然后再将两个指针同时启动,每走一步都比对两个指针指向地址,当两指针指向地址相同时,就是两个单链表相交的第一个相交节点。

2024-11-23 21:37:44 442

原创 【数据结构】链表解析与实战运用(1.8w字超详细解析)

链表:双向带头循环链表1、任意位置插入删除效率高。O(1)2、按需申请释放空间。1、不支持随机访问。(用下标访问)意味着:一些排序,二分查找等在这种结构上不适用。2、链表存储一个值,同时要存储链接指针,也有一定消耗(一般不用在意)3、cpu高速缓存命中率更低(详情见下文额外拓展)优点:(用下标访问)1、支持随机访问。需要随机访问结构支持算法可以很好的适用。2、cpu高速缓存命中率更高(详情见下文额外拓展)1、头部中部插入删除时间效率低。O(N)2、连续的物理空间,空间不够了以后需要增容。

2024-11-16 19:17:26 1290

原创 【数据结构】时间复杂度与空间复杂度

时间复杂度和空间复杂度

2024-11-15 11:42:00 1520

原创 【数据结构】顺序表解析及实战运用

顺序表解析,C语言实现,顺序表实战运用

2024-11-15 11:22:58 1089

原创 I2C通信协议

i2c通信协议、六种时序结构、i2c读写数据

2024-11-04 00:13:22 1397

原创 DS1302时钟芯片(基于STC89C52)

DS1302时钟芯片的数据读写、寄存器定义、引脚定义、时序图

2024-11-01 21:47:08 431

原创 51单片机学习心得2(基于STC89C52):串口通信(UART)

stc89c52串口通信

2024-11-01 21:41:38 810

原创 51单片机学习心得1(基于STC89C52):数码管、矩阵键盘、定时器、中断系统

基于STC89C52的51单片机学习心得:数码管、矩阵键盘、定时器、中断系统

2024-11-01 21:32:38 752

原创 【C语言】C语言预处理/预编译&宏定义与使用

C语言预处理/预编译详解&宏定义与宏使用详解,宏定义,#define,#include,条件编译指令,宏与函数的区别

2024-10-29 22:39:25 1045

原创 【C语言】C语言文件操作与文件操作函数的使用和剖析

C语言文件操作解析,C语言文件操作函数的使用和剖析,fgetc,fputc,fgets,fputs,fprintf,fscanf,fwrite,fread,fseek,ftell,rewind,feof

2024-10-29 00:16:24 1126

原创 【C语言】柔性数组的使用与使用其他方式的实现

柔性数组的使用,柔性数组的另一种方法实现

2024-10-28 00:36:46 263

原创 【C语言】动态内存管理与动态内存管理常见错误

动态内存管理,动态内存分配函数,动态内存管理常见错误,经典动态内存笔试题练习

2024-10-28 00:30:16 1194

原创 【C语言】结构体,枚举,联合体 详解(自定义类型详解)

结构体详解,枚举详解,联合(共用体)详解

2024-10-15 23:05:33 1293

原创 【C语言】内存函数详解:使用和剖析

C语言内存函数memcpy、memmove、memcmp、memset详解,使用和剖析。

2024-10-13 23:51:45 401

原创 数据的存储学习笔记

最简单的机器数表示法,最高位表示符号位,0表示正数,1表示负数,其余位表示数值的绝对值。原码表示直观易懂,但存在+0和-0两种表示形式,且在进行加减运算时规则复杂。正数的反码与原码相同,负数的反码是对其原码逐位取反,但符号位除外。反码解决了原码中+0和-0的问题,但仍然存在两个负数相加结果错误的情况。正数的补码与其原码相同,负数的补码是在其反码的末位加1。补码的出现解决了负数计算的问题,使得加法和减法可以统一为加法运算,简化了计算机的硬件设计。

2024-10-12 15:12:40 404

原创 【C语言】字符串函数的使用和剖析

C语言中对字符和字符串的处理很是频繁,但是C语言本身是没有字符串类型的,字符串通常放在 常量字符串 中或者 字符数组 中。字符串常量 适用于那些对它不做修改的字符串函数。

2024-10-12 14:55:41 818

原创 【C语言】指针详解

1.字符指针2.数组指针3. 指针数组4.数组传参和指针传参5. 函数指针6.函数指针数组7.指向函数指针数组的指针8.回调函数9.指针和数组面试题的解析(注:以下部分截图来源b站鹏哥C语言教学视频)

2024-10-10 10:23:25 1239 2

空空如也

空空如也

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

TA关注的人

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