- 博客(13)
- 收藏
- 关注
原创 FreeRTOS断言错误“Error:..\FreeRTOS\port\RVDS\ARM_CM4F\port.c,768”问题排查,中断优先级配置问题
摘要:使用FreeRTOS时在串口中断调用xQueueSendFromISR()出现断言错误,原因是中断优先级设置不当。需确保调用FreeRTOS API的中断优先级数值≥configMAX_SYSCALL_INTERRUPT_PRIORITY。此外,FreeRTOS要求4位抢占优先级(PRE4_SUB0分组),而实际硬件可能是2位抢占+2位子优先级,导致优先级被截断。解决方案是在main()开始时调用nvic_priority_group_set(NVIC_PRIGROUP_PRE4_SUB0)设置正确的
2025-09-22 10:47:01
494
原创 Keil仿真时点击3次全速运行才进入mian函数
文章摘要:调试FreeRTOS工程时发现程序卡在启动文件Reset_Handler,需多次全速运行才能进入main函数。经查,勾选Keil的"UseMicroLIB"选项可解决问题,即使未使用printf函数。MicroLIB是ARM提供的精简C库,相比标准库优化了内存管理、系统初始化和函数调用开销,能更快进入main函数。该问题表明程序可能被标准库的复杂初始化过程阻塞,改用MicroLIB可避免此类启动延迟。(150字)
2025-09-11 14:43:55
455
原创 FreeRTOS创建任务不成功,跑HardFault_Handler
本文分析了GD32F30x单片机在FreeRTOS环境下因SysTick中断冲突导致的系统崩溃问题。问题表现为SysTick_Handler被裸机延迟函数和RTOS调度器同时占用,引发HardFault异常。通过HFSR(0x40000000)和CFSR(0x00080000)寄存器分析,发现根本原因是除零错误(DIVBYZERO),这可能是由于向量表冲突导致CPU执行无效指令所致。解决方案包括:1)注释掉main函数中的systick_config()调用;2)在FreeRTOSConfig.h中重定义中
2025-09-11 13:18:36
700
原创 嵌入式开发从人类可视化语言到MCU可识别的指令,都经历了什么?
例如在 Keil MDK(适用于 ARM 架构 MCU 的开发环境)中,从编写 C 语言代码到最终烧录到 MCU(微控制器)可执行的程序,需要经历六个核心阶段。每个阶段都有明确的目标和产出物,最终将人类可读的 C 代码转化为 MCU 能直接执行的机器指令。
2025-08-07 11:20:06
1016
原创 AutoHotKey-V1环境搭建
AutoHotkey(AHK)是一款实用的Windows自动化脚本工具,支持创建热键、文本替换和自动化任务。文章介绍了AHK的基本使用方法:首先下载安装官方版本,然后将文本文件后缀改为.ahk来创建脚本。示例展示了如何编写一个按下F2键自动打开网页的脚本,包括代码注释和运行方法。编辑完成后保存并运行脚本,即可实现快捷键操作。该工具能显著提升工作效率,适合需要频繁执行重复操作的用户。
2025-07-28 09:32:05
704
原创 固件镜像是什么意思,为什么要叫镜像?
固件是设备的“底层系统”(如手机的Bootloader、智能手表的操作系统),其正确性直接决定设备能否正常工作。固件镜像的“镜像”称呼,“镜像”一词在计算机领域已有几十年历史(如早期的磁盘镜像),固件镜像沿用了这一术语,原有的固件内容,恢复到镜像对应的状态——就像“镜子里的像”与原物体完全一致。(如Flash、ROM)中,其存储结构(如分区、地址布局、数据排列)是。(Firmware Image)”中“镜像”一词的含义,需从。固件镜像的“镜像”称呼,直接对应其。(Image)”是一个。(无修改、无遗漏)。
2025-07-16 15:37:43
1080
原创 AutoHotKey编写的脚本生成可执行文件使其在没有安装AutoHotKey环境的电脑上运行
摘要:AutoHotkey提供Ahk2Exe工具可将脚本(.ahk)编译为独立运行的.exe文件。该工具内置于AutoHotkey安装包中,操作简单:选择源脚本、设置输出路径,可选配置图标和压缩级别。编译后生成的exe文件无需额外环境即可运行,支持32/64位系统,便于脚本分发和使用。主要步骤包括指定脚本文件、输出路径,并可选自定义图标和压缩选项后点击转换即可完成编译。
2025-07-10 16:14:47
507
原创 Keil文件路径过长导致报error: #5: cannot open source input file......
如下面图所示,添加了Include Paths的路径,编译时还是报错,经过检查发现是路径过长,只需要将文件路径缩短就能解决。
2025-03-13 17:28:17
924
原创 WIFI是什么,为什么你的手机开的网络分享叫热点
那么为什么你的手机开启网络共享叫开热点呢?这就要说到WIFI里AP和Sta这两个术语的概念了,在WiFi网络中,AP(Access Point,无线接入点)和STA(Station,无线工作站),其中AP就相当于开热点的那个手机,STA就是连接热点的那个手机。而AP也就是我们称的热点,那么“热点“这个词是怎么来的呢?开始的时候,在无线通信领域,“hot spot”指的是提供无线网络连接的特定地理位置,这些位置通常是公共场所,如写字楼,咖啡馆、机场、酒店等,用户可以在这些热点区域内通过无线设备连接到互联网。
2024-10-15 13:15:48
1971
原创 GD32F303配置完定时器完成不了初始化
2.究其原因是因为在开启中断使能后定器初始化尚未完成前,产生了中断,又没有清除中断标志位,造成了这种问题,解决方法是在开启中断前,清除标志位,或者在中断服务函数中要清除中断标志。1.配置完定时器,因为程序需要把中断服务函数中的内容屏蔽了,发现复位板子后程序就无法完成定时器初始化了。
2024-06-07 08:43:04
453
原创 在Linux(ubuntu)系统下Visual Studio Code中DevEco Device Tool下载Openharmony源码和示例代码遇到的问题
这个模块是在 Node.js v15.0.0 中引入的,因此你需要确保使用的 Node.js 版本至少是 v15.0.0 以上。确保将正确的路径添加到 PATH 中,例如按照上面步骤我解压后的安装包就在主目录中,假设你的用户名是。这样,新版本的 Node.js 路径会在 PATH 中的最前面,系统会优先使用这个版本。5. 注意可能已经下载了其它版本的Node,所以版本号会显示以前的这时候需要做以下步骤。6.需要注意的是再次开启中断在node -v查询会发现版本号又回去了。,你可以运行以下命令。
2024-06-05 17:27:16
2087
1
原创 在Windows系统下复制的内容无法粘贴到VMware虚拟机中的Linux(ubuntu)系统中的解决办法
一、打开终端并运行以下命令:1.更新软件库2.下载并安装3.重启二、启用共享剪贴板。
2024-06-05 16:33:21
4217
4
原创 cJSON格式数据通过联网模块用AT+MPUB发布消息时涉及的字符转译问题,AT+MPUB发布消息失败的问题,cJSON消息乱码问题
AT+MPUB=,,,中有四个参数,其中每个参数可以用""将参数括起,但在第四个参数中如果还需要使用内嵌的双引号需要转译。但是cJSON库中生成的消息双引号就是双引号不会转译,此时我们就只需要对cJSON的库文件做一些更改。
2024-04-18 17:19:07
564
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅