
VSCode+单片机
文章平均质量分 81
VSCode编辑器的使用以及stm32等单片机的环境部署
奇文怪式
To do what you think is "right".
展开
-
显式启用-u_printf_float和-u_scanf_float前后的代码内存体积实验
编译出的代码内存体积为23440B+464B=23904B。,编译出的代码内存体积为15252B+464B=15716B。,编译出的代码内存体积为18556B+464B=19020B。,编译出的代码内存体积为1108B+8B=1116B。可以得到明显的结论:显式启用。本文的嵌入式编译器基于。原创 2025-01-06 18:41:34 · 389 阅读 · 0 评论 -
VSCode+arm-none-eabi-gcc交叉编译+CMake构建+OpenOCD(基于STM32的标准库/HAL库)
📚①默认情况下,CMake使用本地编译器,如gcc,而嵌入式开发需使用交叉编译器,如arm-none-eabi-gcc,因此需要明确地告知CMake使用交叉编译器。arm-none-eabi-gcc工具链发布时自带有2个基于newlib的预构建C库:一个是标准的newlib,另一个是newlib-nano(优化了代码大小)。newlib-nano相比newlib,不仅仅是库的名字上的区别。符号在前的选项,是默认选择的CMake构建生成器,如下图所示:笔者的Windows操作系统默认选择。原创 2024-12-17 18:48:53 · 2969 阅读 · 0 评论 -
嵌入式编译流程
.elf 格式更加先进,支持的功能更多,但是在某些系统上仍然使用 .out 格式。原创 2024-12-11 14:36:01 · 190 阅读 · 0 评论 -
makefile脚本需要修改的地方
嵌入式领域中,在正式发行代码版本时,会严格区分Release和Debug版本,Debug版本用于开发人员内部开发调试所用的代码版本;Release版本面向外部的市场客户,此时的代码往往就会设置代码优化等级,目的是为了将MCU资源利用最大化和优化客户体验(修改为你工程目录中需要参与编译的启动文件路径。修改为你工程目录中需要参与编译的源文件路径。修改为你工程目录中参与链接的链接脚本路径。修改为你工程目录中需要参与编译的头文件路径。派生而来,对makefile脚本需要修改的地方作补充说明。原创 2024-12-05 16:51:39 · 373 阅读 · 0 评论 -
.vscode文件夹中各个JSON脚本需要修改的地方
NOTE:此篇文章由衍生而来,对.vscode文件中各个脚本需要修改的地方作补充说明。原创 2024-12-05 16:34:48 · 640 阅读 · 0 评论 -
OpenOCD之J-Link下载
1.下载USB Dirver Tool.exe,选择J-Link dirver,替换成WinUSB驱动。(⭐USB Dirver Tool工具可将J-Link从WinUSB驱动恢复为默认驱动⭐)同理 将launch.json中的J-link调试段的 interface 处后面的接口文件名修改成上述的。5.将task.json中的 -f interface处后面的接口文件名修改成上述的。6.点击Download——>选择J-link下载,即可下载。4.在jlink-swd.cfg文件的。原创 2024-11-24 19:43:58 · 956 阅读 · 0 评论 -
OpenOCD之flash write_image和program命令
OpenOCD监听端口的各功能:OpenOCD配置完成并正确连接上开发板后,就会监听6666,4444,3333端口,分别用于tcl, telnet,gdb-server。原创 2024-11-05 16:42:02 · 1328 阅读 · 0 评论 -
基于VSCode搭建开源嵌入式环境的make构建工具选择
大家可以自行选择使用上述两个make工具中的任意一个,笔者比较推荐xpack-windows-build-tools,xpack-windows-build-tools是开源作者从Linux移植到Windows上的构建工具包。原创 2024-10-19 10:48:12 · 690 阅读 · 0 评论 -
STM32-HAL库的EXTI外部中断不能使用HAL_Delay( )函数的问题剖析
在上一篇文章中,我们讲到了使用外部中断不能退出的原因,这次我们来说另外一个原因:在外部中断中使用HAL_Delay()函数会进入死循环。我看网上很多大佬说,把系统滴答定时器的优先级调高或者自定义1个延时函数替代HAL_Delay(),我个人更偏向于后者。例如下述实例,在中断回调服务函数里调用HAL_Delay(),会导致卡死,无法外部按键触发中断。低优先级(发生了中断嵌套),导致系统滴答定时器不执行,无法进行滴答定时,上述的。, 意为:当系统滴答定时时间小于等待预设时间,则循环,否则退出。原创 2024-07-09 12:06:05 · 665 阅读 · 0 评论 -
STM32-HAL库调试外部中断EXTI的问题剖析
STM32_HAL库调试外部中断EXTI的问题原创 2024-07-07 15:47:29 · 1216 阅读 · 0 评论 -
记录解决ESP32-C3软件环境搭建和能识别串口但下载不进程序的问题(VSCode+乐鑫官方ESP-IDF插件)
1. 如果VSCode下载ESP-IDF插件出现失败,卸载ESP-IDF插件和ESP-IDF曾经下载的资源包,然后电脑断开网线,连接==WIFI==重新下载即可。2. 如果出现串口无法下载程序的情况,卸载CH340X的2个驱动,再次安装,重启电脑,COM口选择出现ESP32-C3(QFN32)(revision v0.3)就可以了。原创 2024-07-23 19:07:34 · 2213 阅读 · 0 评论 -
基于arm-none-eabi-gcc编译工具链的串口重定向printf
VSCode基于arm-none-eabi-gcc交叉编译工具链的串口重定向printf输出和Keil MDK基于armcc工具链的串口重定向printf输出是不一样的,我按照以下链接①配置GCC的printf输出,以上解决了MCU—>电脑串口接收的问题,电脑串口—>MCU的发送问题还得需要拓展一下,可参考链接②。原创 2024-07-06 19:47:28 · 1236 阅读 · 0 评论 -
VSCode+arm-none-eabi-gcc交叉编译+Makefile构建+OpenOCD(基于STM32的HAL库)
相对路径好了,到这里就解决了报错未定义库函数的问题,其实这和keil的引入源文件和包含头文件路径的思路一样,只是以前习惯了keil的UI界面包含方式,换成Makefile方式包含,终究是有点不习惯,后面有时间还是好好学习一下Makefile的语法规则吧(立个flag!最后还是要重申一遍!!!!!注意,在Makefile中,源文件是引入到具体的.c文件,头文件是包含其相对路径。原创 2024-07-06 13:21:25 · 950 阅读 · 0 评论 -
VSCode+arm-none-eabi-gcc交叉编译+Makefile构建+OpenOCD(基于STM32的标准库)
对于嵌入式开发人员,想必最熟悉在Keil MDK的程序开发了。Keil MDK的调试和仿真功能是其他IDE所不能比拟的,在公司内部的项目合作开发方面,兼容性也是非常优秀。嵌入式领域的编码IDE/编辑器多如牛毛,笔者在这里列举一些:通用IDE:(ARM背书,历史悠久,老牌稳定可靠)(IAR背书,与Keil在嵌入式领域旗鼓相当)(微软背书,需要配置各种插件)(JetBrains背书,需要配置各种插件)(Eclipse开源基金会背书,需要配置各种插件)原创 2024-07-20 17:48:15 · 3897 阅读 · 0 评论 -
(真实有效)解决使用VSCode打开STM32工程,头文件出现红色波浪线问题(基于Keil Assistant插件)
不要在KEIL UVISION PROJECT的工作区直接打开整个keil工程,使用vscode的文件夹方式打开xxxx.uvprojx所在的文件夹。原创 2024-07-04 00:10:34 · 3356 阅读 · 8 评论