自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 STM32 malloc函数(堆区)多线程安全问题

我这里只调用一次heap_mutex_init()创建了一个互斥锁,在进入多线程环境前调用即可。当然多个共享资源使用同一个互斥锁会降低资源利用率,也可以改进针对不同的共享资源使用_mutex_initialize(void *sid)创建不同的互斥锁(需要重新实现)。可以通过调试方式确认这些互斥锁有没有生效,观察使用malloc函数时有没有调用_mutex_acquire(osMutexId *sid)和_mutex_release(osMutexId *sid),若调用了说明互斥锁有效。

2024-01-09 20:00:30 627

原创 STM32F427配置168MHz最高频率(提高程序运行速度)

确保 VCO 输入频率介于 1 和 2 MHz 之间,根据使用的外部高速晶振的频率确定,选择一个恰当的PLLM使输入VCO的频率为1MHz。我们使用PLLN = 336,即VCO 输出频率=336MHz,满足VCO 输出频率介于 192 和 432 MHz 之间(PLLN 并且 192

2024-01-06 18:08:44 603 1

原创 J-Link RTT Viewer连接后不能打印问题

因为RTT Control Block比较靠后,所以自动探测并没有找到,我们选择Address,然后手动输入RTT Control Block地址即可。首先找到编译出来的.map文件,打开文件后搜索“_acUpBuffer”,找到这个变量后,这个变量上面是“.bss”,复制这一行的地址。RTT Control Block 选择 Auto Detection,没有任何打印输出。1、J-Link RTT Viewer不能打印问题。按下图填入再连接,打印正常。

2024-01-04 17:59:34 651 2

原创 STM32 -O2编译进入HardFault_Handler 问题定位

参考cortex-M4 device generic user guide,查找引起HardFault_Handler的原因。LDM指令不支持访问非对齐地址内存,故只要将LDM指令访问的全局变量进行4字节对齐即可。代码O0编译运行正常,O2编译会运行进入HardFault_Handler。//使该变量的地址起始值按照4字节对齐。运行完LDM后就会进入HardFault_Handler。发现是发生了访问非对齐地址内存。

2023-11-24 15:18:12 628 1

原创 QColorDialog基本使用方法

【代码】QColorDialog基本使用方法。

2023-08-17 09:48:39 104 1

原创 freertos互斥锁使用

互斥锁用来保护共享资源,防止多线程同时使用共享资源导致一些不可预知的结果。

2023-05-10 17:13:07 1016 1

原创 C语言volatile用法/Keil编译器优化/delay被编译器优化

*有的小伙伴可能看到这里会很懵,CPU访问变量不就是访问内存中的实际变量吗,并不是这样的,CPU内部还有寄存器,CPU读写寄存器的速度是远大于读写内存的速度,为了提高程序的执行速度,编译器会优化代码,把实际的变量存放到寄存器中,通过读写寄存器来访问该变量。加了volatile关键字的delay函数,使用-O2优化等级,执行速度比不加volatile关键字的delay函数(使用-O0优化)还慢,说明了使用-O0优化编译器仍然会作一定优化。补充实验,声明变量count时也加入了volatile关键字,

2023-05-01 17:52:27 762 1

原创 LWIP打印调试信息的方法

LWIP_DBG_MASK_LEVEL为调试信息等级,0x00打印所有调试信息。里面提供了多种调试选项,默认是关闭的,根据需要自行选择。例如我要调试DHCP模块,就在文件按如图所示定义。定义调试信息的输出方式,这里我选择jlink打印。LWIP_DEBUG为总开关。

2023-04-01 15:58:05 1589

原创 Makefile make错误 配方在第一个目标前开始。 停止。

修改makefile文件后,makefile文件及make后的提示的错误如下图所示,提示错误在19行。查阅了相关资料,提示这个错误是因为出现了不需要的空格或者制表符,去掉18行"bsp/delay "后面的空格后(红色箭头所指的空格),meke一切正常。

2022-09-03 21:33:10 3795

空空如也

空空如也

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

TA关注的人

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