VSCode+单片机
文章平均质量分 82
VSCode编辑器的使用以及stm32等单片机的环境部署
奇文怪式
To do what you think is "right".
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
VSCode+arm-none-eabi-gcc交叉编译+CMake构建+OpenOCD(基于Pico rp2040的保姆级教程)
摘要:本文详细介绍了Raspberry Pi Pico开发环境的完整搭建流程。主要内容包括:1)Pico SDK三核心组件(pico-sdk、picotool、pico-sdk-tools)的安装与环境变量配置;2)pico-examples例程包的获取;3)ARM交叉编译器、CMake、Ninja等工具链的安装配置;4)调试工具(OpenOCD、J-Link)的安装;5)辅助环境(MinGW64、Python、Git Bash)的配置;6)VSCode推荐插件清单。原创 2025-07-06 17:54:17 · 923 阅读 · 0 评论 -
显式启用-u_printf_float和-u_scanf_float前后的代码内存体积实验
摘要: 本文通过对比实验研究了嵌入式编译器中-u_printf_float和-u_scanf_float选项对代码体积的影响。基于arm-none-eabi-gcc工具链的实验显示:同时启用两个选项时代码体积达23.9KB,仅启用printf_float为15.7KB,仅启用scanf_float为19KB,完全关闭时仅1.1KB。结果表明浮点格式化支持会显著增加22.25KB的代码量,为资源受限系统的优化提供了量化参考。所有实验固定使用-Og优化等级,确保对比有效性。原创 2025-01-06 18:41:34 · 542 阅读 · 0 评论 -
VSCode+arm-none-eabi-gcc交叉编译+CMake构建+OpenOCD(基于STM32的标准库/HAL库)
CMake简介与STM32开发环境配置 CMake是一个跨平台的构建系统生成工具,能够自动生成Makefile/Ninja等构建文件。本文介绍了CMake的三种安装方式:GitHub二进制发行版、官网下载和国内镜像。安装后需配置环境变量并通过cmake -version验证安装成功。 以STM32F103ZET6为例,文章详细说明了工程所需的配置文件,包括VSCode的settings.json、c_cpp_properties.json等设置要点,并提供了相关参考文章链接。原创 2024-12-17 18:48:53 · 5941 阅读 · 6 评论 -
嵌入式编译流程
本文介绍了四种常见的可执行文件格式:.axf(Keil IDE专用)、.exe(Windows通用)、.out(早期Unix系统使用)和.elf(现代扩展格式)。重点对比了.out和.elf格式,指出.elf格式更先进,支持动态链接库等现代特性。文中还解释了.elf文件在调试中的作用,及其转换为.hex等烧录格式的必要性。.elf文件包含完整的调试信息,而烧录时只需提取地址和程序数据生成镜像文件。原创 2024-12-11 14:36:01 · 313 阅读 · 0 评论 -
makefile脚本需要修改的地方
本文针对STM32标准库工程的Makefile构建脚本提供关键修改说明,主要包括:目标文件设置、优化等级配置、MCU特性配置、宏定义修改、源代码路径、头文件路径、链接脚本,该脚本支持交叉编译环境(arm-none-eabi-gcc),通过DEBUG标志区分开发调试与发布版本,并提供编译输出目录管理功能。原创 2024-12-05 16:51:39 · 777 阅读 · 0 评论 -
.vscode文件夹中各个JSON脚本需要修改的地方
本文介绍了VSCode环境下STM32开发的配置方法,重点说明tasks.json文件中OpenOCD下载配置的修改要点。文件主要包含编译、清除、重编译任务,以及三种调试器(CMSIS-DAP、ST-Link、J-Link)的下载配置。关键修改点包括:1)根据MCU型号修改target配置文件路径;2)J-Link配置需参考特定博客进行调整;3)使用${workspaceRootFolderName}变量自动获取工程名作为elf文件名。该配置通过任务依赖实现在下载前自动完成编译,提高开发效率。原创 2024-12-05 16:34:48 · 1146 阅读 · 0 评论 -
OpenOCD之J-Link下载
本文介绍了使用J-Link调试器配置OpenOCD进行STM32开发的方法。首先通过USB Driver Tool将J-Link驱动替换为WinUSB模式,然后在OpenOCD的interface目录中复制jlink.cfg并修改为jlink-swd.cfg,添加SWD传输协议配置。接着在VSCode的task.json和launch.json文件中更新接口配置为jlink-swd.cfg,实现程序下载和调试功能。该方法适用于基于STM32的开发环境,通过简单配置即可使用J-Link进行SWD模式调试。原创 2024-11-24 19:43:58 · 2514 阅读 · 0 评论 -
OpenOCD之flash write_image和program命令
摘要: 本文介绍了使用OpenOCD的flash write_image和program命令下载程序到STM32的两种方式:通过telnet/tcl端口交互或命令行直链下载。flash write_image支持多种文件格式(如bin、elf),需谨慎使用erase参数以避免误擦数据;program命令简化了独立编程流程,示例中展示了ELF和BIN文件的下载方法。OpenOCD连接后会监听6666(tcl)、4444(telnet)、3333(gdb-server)端口,分别用于下载和调试。原创 2024-11-05 16:42:02 · 2044 阅读 · 1 评论 -
基于VSCode搭建开源嵌入式环境的make构建工具选择
本文比较了两种Windows下的make工具配置方案:xpack-windows-build-tools和MinGW-64。两种方案都能支持Linux风格的rm -fR语法,但xpack-build-tools包含完整的Linux移植工具链(busybox、cp、rm等),与GNU Makefile语法兼容性更好。作者建议优先使用xpack-build-tools,但也可将其核心工具复制到MinGW/bin目录下实现等效功能,因为两者底层都是基于GNU Make。原创 2024-10-19 10:48:12 · 1037 阅读 · 0 评论 -
STM32-HAL库的EXTI外部中断不能使用HAL_Delay( )函数的问题剖析
在上一篇文章中,我们讲到了使用外部中断不能退出的原因,这次我们来说另外一个原因:在外部中断中使用HAL_Delay()函数会进入死循环。我看网上很多大佬说,把系统滴答定时器的优先级调高或者自定义1个延时函数替代HAL_Delay(),我个人更偏向于后者。例如下述实例,在中断回调服务函数里调用HAL_Delay(),会导致卡死,无法外部按键触发中断。低优先级(发生了中断嵌套),导致系统滴答定时器不执行,无法进行滴答定时,上述的。, 意为:当系统滴答定时时间小于等待预设时间,则循环,否则退出。原创 2024-07-09 12:06:05 · 1108 阅读 · 1 评论 -
STM32-HAL库调试外部中断EXTI的问题剖析
STM32_HAL库调试外部中断EXTI的问题原创 2024-07-07 15:47:29 · 1570 阅读 · 0 评论 -
ESP32-C3开发环境搭建(基于ESP-IDF插件)和解决串口占用导致程序下载失败的问题
本文详细记录了ESP32-C3开发环境搭建过程中的关键问题及解决方案。作者使用合宙ESP32-C3经典款(带CH343P芯片),在VSCode+ESP-IDF环境搭建时遇到两个主要问题:Python虚拟环境安装失败和串口下载程序失败。通过切换WiFi网络连接、重新安装ESP-IDF插件、解决串口占用问题等步骤,最终成功部署开发环境。文章特别强调了经典款与简约款的硬件差异,并提供了详细的串口状态识别方法、构建失败解决方案以及环境变量设置建议。整个搭建过程耗时两天,为ESP32-C3开发者提供了宝贵的一手经验。原创 2024-07-23 19:07:34 · 3873 阅读 · 0 评论 -
基于arm-none-eabi-gcc编译工具链的串口重定向printf
【摘要】本文介绍了在VSCode基于arm-none-eabi-gcc工具链和Keil MDK基于armcc工具链下实现STM32串口重定向printf输出的差异。重点讲解了GCC环境下的配置方法:1)修改Makefile添加浮点数支持选项(-u_printf_float);2)创建syscalls.c文件实现底层I/O重定向,包含_write和_read函数,分别通过HAL库或标准库实现串口收发功能。文章还对比了GCC与非GCC(Keil/IAR)编译环境下的实现差异,提供了完整的代码示例和配置说明。原创 2024-07-06 19:47:28 · 2008 阅读 · 0 评论 -
VSCode+arm-none-eabi-gcc交叉编译+Makefile构建+OpenOCD(基于STM32的HAL库)
相对路径好了,到这里就解决了报错未定义库函数的问题,其实这和keil的引入源文件和包含头文件路径的思路一样,只是以前习惯了keil的UI界面包含方式,换成Makefile方式包含,终究是有点不习惯,后面有时间还是好好学习一下Makefile的语法规则吧(立个flag!最后还是要重申一遍!!!!!注意,在Makefile中,源文件是引入到具体的.c文件,头文件是包含其相对路径。原创 2024-07-06 13:21:25 · 1542 阅读 · 0 评论 -
VSCode+arm-none-eabi-gcc交叉编译+Makefile构建+OpenOCD(基于STM32标准库的保姆级教程)
本文介绍了嵌入式开发常用的IDE工具,重点讲解了如何搭建基于VSCode的开源嵌入式开发环境。文章列举了Keil、IAR、VSCode等通用IDE,以及STM32CubeMX、Arduino等专用IDE,并详细说明了所需工具的安装配置步骤,包括VSCode编辑器、ARM交叉编译器arm-none-eabi-gcc和Windows平台的MinGW64工具链。作者推荐使用xPack开源仓库获取工具资源,并提供了详细的下载链接和环境变量设置指南,帮助开发者快速配置完整的嵌入式开发环境。原创 2024-07-20 17:48:15 · 7171 阅读 · 15 评论 -
(真实有效)解决使用VSCode打开基于Keil开发的STM32工程时,头文件出现红色波浪线问题(基于Keil Assistant插件)
摘要:作者在配置VSCode+Keil Assistant插件时遇到头文件红色波浪线提示问题,尝试了三种方案均未解决:禁用严格提醒(治标不治本)、删除.vscode文件夹、检查MinGW安装。最终发现正确方法是:用VSCode直接打开Keil工程文件(.uvprojx)所在文件夹,而非整个工程目录,问题得以解决。关键点在于正确的文件打开方式,而非配置修改。原创 2024-07-04 00:10:34 · 6950 阅读 · 19 评论
分享