自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(73)
  • 资源 (4)
  • 收藏
  • 关注

原创 RT-Thread源码阅读(4)——定时器管理

RT-Thread定时器分为硬件定时器和软件定时器两种类型: 硬件定时器在systick中断服务函数中处理超时 软件定时器通过高优先级线程处理超时 通过宏RT_USING_TIMER_SOFT控制是否启用软件定时器 定时器使用: 通过rt_timer_create创建定时器 参数包括名称、回调函数、周期等 通过rt_timer_start启动定时器 定时器管理机制: 使用跳表算法管理定时器链表 定时器按超时时间有序排列 软件定时器会唤醒定时器线程处理超时 定时器启动流程: 设置超时时间 将定时器插入到有序链

2025-05-26 13:52:02 372

原创 RT-Thread源码阅读(3)——内核对象管理

RT-Thread内核对象管理机制解析 RT-Thread通过_object_container数组实现内核对象分类管理,该数组按对象类型(线程、信号量等)组织,每个元素包含类型标识、对象链表和对象大小。关键特性包括: 使用链表结构(rt_list_t)管理同类对象,通过rt_object_allocate动态创建对象并插入链表 对象基础结构rt_object包含名称、类型标志和链表节点,所有内核对象均继承该结构 提供遍历接口如list_find_init,支持通过链表查询对象状态(如list_thread

2025-05-26 13:49:45 585

原创 RT-Thread源码阅读(2)——任务启动与调度

因此针对满堆栈,写入数据的流程为先移动SP指针再填写有效数据;观察后续代码可知,R4-R11在地址小的空间,也会被先出栈,此时返回的栈指针stk指向的就是R4,返回给。是对应着当前栈顶,例如栈空间buff[100],不减的话栈指向buff[100],访问就会溢出。,可以知道怎么调度,至于为什么调度,什么时候调度,请后续了解。当SP指针指向的地址空间没有存放有效数据,则称之为空堆栈。当SP指针指向的地址空间存放有有效数据,则称之为满堆栈。第一眼看这个代码,可能会有一个疑问,调用。线程初始化,相关解释见注释。

2025-05-22 16:30:56 519

原创 RT-Thread源码阅读(1)——基本框架

本文基于RT-Thread V4.1.1和STM32F103(Cortex-M3)平台,使用STM32CubeIDE(GCC)编译环境,旨在解析RT-Thread的基本设计逻辑。文章首先介绍了双向链表的核心操作,包括插入、初始化和判断链表是否为空等。接着,通过链表元素反推内核对象地址的方法,展示了如何从链表节点获取线程对象的结构体首地址。随后,文章详细描述了RT-Thread的启动流程,包括板级初始化、调度器初始化、线程创建和调度器启动等步骤。最后,文章深入探讨了调度器的初始化过程,特别是优先级相关的变量和

2025-05-22 16:28:29 1081

原创 STM32实现SPI转USB虚拟串口输出(实测40M时钟不丢包)

MCU端SPI时钟40M,满速发送,实测PC端串口接收长时间不丢包

2025-04-28 10:02:39 533

原创 lwip学习——PBUF结构(3)

PBUF是lwip中重要的结构

2025-04-28 09:39:39 256

原创 lwip学习——内存池(2)

lwip学习——内存池

2025-03-18 14:10:52 1049

原创 lwip学习——内存堆(1)

lwip学习——内存堆

2025-03-18 14:07:51 274

原创 VSCode C语言环境(多文件一键运行)

VSCode C语言环境 支持多文件一键运行

2025-03-12 15:49:40 487

原创 STM32F4使用高速USB虚拟串口 (CherryUSB)

STM32使用高速USB

2025-03-12 15:46:23 1036

原创 Python中的字节操作

用Python制作协议类的工具,经常会用到字节操作

2025-03-05 11:12:42 224

原创 Python丢包测试脚本(以串口为例)

通过python脚本测试串口的丢包率

2025-03-05 11:11:08 323

原创 Python正则表达式学习

非贪婪,遇到开始和结束就进行截取,因此截取多次符合的结果,中间没有字符也会被截取。用于在给定的字符串开头进行模式匹配,即可以通过此方法来判断目标的格式是否符合要求。用于在给定的字符串中查找所有匹配的模式,并以列表的形式返回匹配结果。一个"."就是匹配除 \n (换行符)以外的任意一个字符。这里必须使用非贪婪,不然所有返回都是0x0000b30a。以匹配成功的正则表达式进行分割字符串,返回字符串列表。与match不同的是search在整个字符串中匹配。贪婪,匹配从.*前面为开始到后面为结束的所有内容。

2025-01-09 14:09:45 395

原创 STM32中的MCO

在嵌入式系统中,时钟是一个至关重要的部分。STM32微控制器系列提供了一个名为MCO(Microcontroller Clock Output)的功能,它允许用户将微控制器内部的时钟信号输出到外部设备。这对于调试、测试或者与其他设备同步时钟非常有用。在这篇博客中,我们将深入了解STM32中的MCO功能,介绍如何配置MCO以及它的常见应用。

2025-01-09 14:07:52 1095

原创 I.MX6ULL裸机开发之串口篇

配置I.MX6ULL串口

2024-08-01 09:30:20 424

原创 I.MX6ULL裸机开发之时钟篇

在嵌入式开发中,时钟配置是至关重要的一部分。它影响整个系统的运行速度、定时和能耗等多个方面。作为一位合格的嵌入式开发工程师,总不能连内核、外设、总线各自的频率都不清晰吧?

2024-08-01 09:29:01 908

原创 解决elf转bin文件超大

解决elf转bin文件超大

2024-07-17 11:13:31 790

原创 哈希表简介

哈希表(Hash Table)是一种非常高效的数据结构,广泛应用于需要快速插入、删除和查找操作的场景中。哈希表是一种将键(Key)映射到值(Value)的数据结构。其核心思想是通过一个哈希函数将键转化为哈希值,然后将该哈希值映射到表中的索引位置。

2024-07-17 11:11:30 434

原创 内联汇编简介

在C语言中嵌入汇编(Assembly)代码,可以使用内联汇编(Inline Assembly),这在一些需要精确控制硬件或者优化性能的场合非常有用以下是关于ASM语法的介绍,主要基于GCC(GNU Compiler Collection)提供的内联汇编特性。

2024-06-03 10:30:12 233

原创 Makefile教程(附通用模板)

Makefile教程(附通用模板)

2024-06-03 10:28:17 1336

原创 MAC开发I.MX6ULL环境搭建

基于MacOS开发I.MX6ULL

2024-03-27 09:19:28 620

原创 MAC使用Clion开发STM32

基于MacOS下的CLion开发 STM32

2024-03-27 09:16:30 1539

原创 Makefile+OpenOCD开发STM32

下可找到,第一个是调试器的配置文件,第二个是芯片的配置文件,可以合二为一。平台:Windows11(Linux,MAC同理)下载对应平台工具链并添加到环境变量,使用。打印空间信息即编译成功,否则日志中会报错。第三个是上一节编译出的hex文件。是执行完成后退出OpenOCD。是下载成功后复位芯片。

2024-03-15 09:45:16 1189

原创 STM32移植SFUD

SFUD是一款开源的串行 SPI Flash 通用驱动库。由于现有市面的串行 Flash 种类居多,各个 Flash 的规格及命令存在差异, SFUD 就是为了解决这些 Flash 的差异现状而设计,让我们的产品能够支持不同品牌及规格的 Flash,提高了涉及到 Flash 功能的软件的可重用性及可扩展性,同时也可以规避 Flash 缺货或停产给产品所带来的风险。

2024-03-15 09:44:20 1352 1

原创 RT-Thread源码阅读笔记

本文旨在理解RT-Thread设计的基本逻辑

2024-01-12 18:31:11 1775 1

原创 IIC学习之SHT30温湿度传感器(基于STM32)

介绍IIC和SHT30温湿度传感器的使用

2024-01-12 10:50:34 2988 1

原创 GCC中常用的内建函数

GCC(GNU Compiler Collection)是一个包含多个编程语言的编译器集合,而内建函数通常是为了提高代码性能或者实现一些特定功能而在编译器层面提供的函数。

2024-01-08 16:15:19 1001

原创 SM4加密算法例程(新增CTR模式)

SM4加密算法例程

2024-01-08 16:06:16 3532 1

原创 MobaXterm自定义关键字高亮(解决绿色不亮问题)

终端中的一些关键字高亮可以提高我们的效率,本文是解决在部分关键字没有高亮的情况下,添加自定义关键字使其高亮

2023-12-28 16:38:30 5092 2

原创 Cortex-M与RISC-V区别

Cortex-M以STM32H750为代表,RISC-V以芯来N305为代表RTOS版本为RT-Thread 4.1.1

2023-11-24 16:34:18 2335 2

原创 STM32驱动QSPI Flash

W25Q64存储容量共64M-bit/ 8M-byte,32768页(pages)、每页256-bytes,最大一次可编程256-bytes一次擦除大小可以为16页(4KB)、128页(32KB)、256页(64KB)或者全擦除W25Q64JV有2048个可擦除扇区(sectors),或者可以说有128个可擦除块(blocks关系 1 Block = 16 sectors;1 sector = 4KB,所以算起来能达到8M-byte编程即写数据,由于Flash的特性,只能从1编程0。

2023-11-24 16:22:25 2470 1

原创 栈回溯之使用帧指针分析

栈回溯可以帮助我们找到函数的调用关系

2023-11-09 14:39:37 604

原创 栈回溯之手动分析栈空间

本文也是旨在加深理解栈回溯的原理,实际中可能会使用BackTrace自动分析

2023-11-08 15:54:52 321 1

原创 栈回溯之CmBacktrace

(Cortex Microcontroller Backtrace)是一款针对 ARM Cortex-M 系列 MCU 的错误代码自动追踪、定位,错误原因自动分析的开源库。支持的错误包括:断言(assert)故障(Hard Fault, Memory Management Fault, Bus Fault, Usage Fault, Debug Fault)故障原因自动诊断:可在故障发生时,自动分析出故障的原因,定位发生故障的代码位置,而无需再手动分析繁杂的故障寄存器;输出错误现场的。

2023-11-08 13:27:41 1295

原创 计算机网络之IP数据格式(三)

由4比特构成,4表示IPv4,6表示IPv6,本文着重讲的是IPv4。

2023-09-25 20:39:13 288

原创 STM32H750+LAN8720无操作系统移植lwip

STM32H750+LAN8720 移植LWIP 保证能ping通

2023-08-30 18:34:33 3334 20

原创 STM32+FreeRTOS 使用SystemView监控系统

本文以STM32F407ZET6 + FreeRTOS V9.0作为演示,其它的Cortex M芯片同样可以参考此文,其他内核和RTOS理论上也支持,本文暂时不做研究。所以开始阅读本文前,需要一块能运行FreeRTOS的Cortex M芯片,如果没有移植好操作系统,可以参考我的另一篇文章《STM32F103移植FreeRTOS完整过程》本文打包提供FreeRTOS V9.0源码SystemView安装包STM32F407ZET6示例工程

2023-07-11 17:30:47 3721 1

原创 通过DAPLink和STLink使用RTT输出日志

由于`SEGGER RTT` 自带的 `JLinkRTTViewer.exe` 只支持自家的`J-Link`,所以使用`DAPLink`和`STLink`我们得另辟蹊径,这里我们选择得是PyOCD

2023-07-06 09:14:00 7329 4

原创 基于J-Link RTT Viewer输出日志(适用于JLink DAPLink STLink)

通过RTT输出日志,可以不占额外的引脚和外设,速度非常快,几乎不影响程序的实时性

2023-07-04 19:39:51 4041

原创 STM32F103移植RT-Thread完整过程

RT-Thread官网有很多通过IDE一键移植的方法,本文选择的是手动移植,文末提供移植好的完整工程。

2023-06-28 13:55:32 4748 1

STM32+FreeRTOS 使用SystemView监控系统配套源码

STM32+FreeRTOS 使用SystemView监控系统配套源码

2024-12-26

IIC学习之SHT30温湿度传感器(基于STM32)配套资料

https://blog.csdn.net/qq_36973838/article/details/135546011

2024-01-12

STM32驱动QSPI Flash

STM32驱动QSPI Flash

2023-11-24

STM32+FreeRTOS 使用SystemView监控系统

STM32+FreeRTOS 使用SystemView监控系统 STM32+FreeRTOS 使用SystemView监控系统 STM32+FreeRTOS 使用SystemView监控系统 STM32+FreeRTOS 使用SystemView监控系统 STM32+FreeRTOS 使用SystemView监控系统 STM32+FreeRTOS 使用SystemView监控系统 STM32+FreeRTOS 使用SystemView监控系统 STM32+FreeRTOS 使用SystemView监控系统 STM32+FreeRTOS 使用SystemView监控系统 STM32+FreeRTOS 使用SystemView监控系统 STM32+FreeRTOS 使用SystemView监控系统 STM32+FreeRTOS 使用SystemView监控系统 STM32+FreeRTOS 使用SystemView监控系统 STM32+FreeRTOS 使用SystemView监控系统

2023-07-11

STM32F103-FreeRTOS基础工程,0错误0警告 FreeRTOS V9.0源码

STM32F103-FreeRTOS基础工程,0错误0警告。 FreeRTOS V9.0源码 STM32F103-FreeRTOS基础工程,0错误0警告。 FreeRTOS V9.0源码 STM32F103-FreeRTOS基础工程,0错误0警告。 FreeRTOS V9.0源码 STM32F103-FreeRTOS基础工程,0错误0警告。 FreeRTOS V9.0源码 STM32F103-FreeRTOS基础工程,0错误0警告。 FreeRTOS V9.0源码 STM32F103-FreeRTOS基础工程,0错误0警告。 FreeRTOS V9.0源码 STM32F103-FreeRTOS基础工程,0错误0警告。 FreeRTOS V9.0源码 STM32F103-FreeRTOS基础工程,0错误0警告。 FreeRTOS V9.0源码 STM32F103-FreeRTOS基础工程,0错误0警告。 FreeRTOS V9.0源码 STM32F103-FreeRTOS基础工程,0错误0警告。 FreeRTOS V9.0源码

2023-07-11

J-Link驱动V7.60 64位版本

J-Link驱动V7.60 64位版本 J-Link驱动V7.60 64位版本 J-Link驱动V7.60 64位版本 J-Link驱动V7.60 64位版本 J-Link驱动V7.60 64位版本 J-Link驱动V7.60 64位版本 J-Link驱动V7.60 64位版本 J-Link驱动V7.60 64位版本 J-Link驱动V7.60 64位版本 J-Link驱动V7.60 64位版本 J-Link驱动V7.60 64位版本 J-Link驱动V7.60 64位版本 J-Link驱动V7.60 64位版本 J-Link驱动V7.60 64位版本 J-Link驱动V7.60 64位版本 J-Link驱动V7.60 64位版本

2023-07-04

STM32F103 RT-Thread 工程

STM32F103 + RT-Thread V4.1.1 0错误 0警告

2023-06-28

Kingst VIS v3.6.0

Kingst VIS v3.6.0

2023-02-17

iperf-1.7.0

iperf 1.7.0——测试网络吞吐量

2022-08-23

STM32F103-FreeRTOS基础工程.rar

STM32F103-FreeRTOS基础工程,0错误0警告。

2021-12-06

nRF5_SDK17.0.2_offline_doc.rar

Nordic系列芯片SDK说明文档离线版,不用担心访问网站速度慢了。

2021-05-13

mqttfx-1.7.1-windows-x64.rar

MQTT调试工具、支持MQTT协议的全部功能,简单易用,是一个调试利器,并且支持SSL。我们在编写MQTT应用的前期,可以通过MQTT.fx验证想法。

2020-07-05

SHT20源代码及中英文手册.rar

关于SHT20温湿度传感器的文档和源代码,具体包含中文手册、英文手册、C语言代码,配合我的博客对此传感器进行仔细讲解。

2020-03-29

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

TA关注的人

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