当前位置: 首页 > news >正文

【灵动Mini-F5265-OB】vscode+gcc工程创建、下载、调试

【前言】
【灵动Mini-F5265-OB】在官方的例程中提供了mdk、IAR的开发环境,使用起来非常方便。有位大佬也提供了一个gcc的示例,但是我使用vscode的keil插件进行工程创建,但是提示pack是对不上的。所以我决定重新创建我的vscode来创建开发环境。
【工程创建】
首先创建文件夹gcc_template文件夹,下面创建Devcie文件夹,存放驱动等文件,下面创建CMSIS和MM32F5260分别用于存放系统头文件与驱动。
复制官方库的HAL_LIb、Source、Include到MM32F5260文件夹下,最后其目录如下:
在这里插入图片描述

在Soucre目录下, 复制官方给出的GCC_StartAsm到文目录下面,提供启动的汇编文件。
同时复制mm32f5260_flash.ld到该目录下面,提供连接算法文件。
在工程的根目录再创建Core目录,下面创建app目录用于存入用户的代码文件,其结构如下:
在这里插入图片描述

在工程的根目录下面创建Debug目录,复制.pack包与寄存器文件MM32F5260.svd。
在这里插入图片描述
到此工程的文件准备完毕。
【makefile的编写】
1、Makefile我采用分块的书写,首先在device目录下面创建Device.mk,内容如下:

# 模块名_DIR 是上一层传递下来的参数,
# 是从工程根目录到该模块文件夹的路径# 向 C_SOURCES 中添加需要编译的源文件
C_SOURCES += $(wildcard $(Device_DIR)/MM32F5260/HAL_Lib/Src/*.c)
C_SOURCES += $(wildcard $(Device_DIR)/MM32F5260/Source/system_mm32f5260.c)# 向 C_INCLUDES 中添加头文件路径
C_INCLUDES += -I$(Device_DIR)/CMSIS/Core/Include
C_INCLUDES += -I$(Device_DIR)/MM32F5260/Include
C_INCLUDES += -I$(Device_DIR)/MM32F5260/HAL_Lib/Inc# 向 LIBDIR 中添加静态库文件路径
# LIBDIR += -L$(Libraries_DIR)/Lib
# 向 LIBS 中添加需要链接的静态库
# LIBS += -lxxxx# link script
LDSCRIPT = $(Device_DIR)/MM32F5260/Source/mm32f5260_flash.ld# 汇编文件宏定义c
AS_DEFS += # 汇编头文件目录
AS_INCLUDES += # 汇编源文件(starup)
ASM_SOURCES += $(Device_DIR)/MM32F5260/Source/GCC_StartAsm/startup_mm32f5260.S

在Makefile中,大部分与其他的工程都是一样的下面主要讲一下修改的地方
1、就是CPU的信息,由于MM32F5260是兼容cortex-m33的,所这我指定了CPU 为cortex-33。
2、就是指定汇编文件编译时要与提供的后缀一样,需要修改为.S(大写的S),我在前面执行make时是报错,最后查找出原因是后缀的原因:
$(BUILD_DIR)/%.o: %.S Makefile | $(BUILD_DIR)
@echo "[AS] < " @ <" @ <"@(AS) -c $(CFLAGS) $< -o $@
修改好这些后就可以执行make了
在这里插入图片描述
顺利的生成了固件。
【下载】
在根目录下面创建pyocd.yaml文件:

pack: ./Debug/MindMotion.MM32F5260_DFP.0.2.0.pack
target_override: MM32F5265E8PV
frequency: 24000000

首先要指定pack存放的路径,再指定MCU的型号
然后执行make flash就可以把固件烧写进开发板里面了:
在这里插入图片描述
【调试】
首先要安装Cortex-Debug插件
然后创建launch.json:

{// 使用 IntelliSense 了解相关属性。 // 悬停以查看现有属性的描述。// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387"version": "0.2.0","configurations": [{"name": "Cortex Debug","cwd": "${workspaceFolder}","executable": "./build_exec/template.elf","request": "launch","type": "cortex-debug","targetId": "MM32F5265E8PV","runToEntryPoint": "main","servertype": "pyocd","svdFile": "./Debug/MM32F5260.svd","postRestartCommands": ["monitor reset"],}]
}

最后执行调试任务就可以:
在这里插入图片描述
到此基VSCODE的工程创建就结束了。
【经验】
就是编写makefile,再就是注意启动汇编的后缀文件。还有就是编译文件里面的注释需要更新一下。

相关文章:

  • 【小红书】API接口,获取笔记核心数据
  • 华为盘古 Ultra MoE 模型:国产 AI 的技术突破与行业影响
  • 【最新版】西陆洗车系统源码全开源+uniapp前端+搭建教程
  • 简单实现Ajax基础应用
  • 鸿蒙5.0项目开发——横竖屏切换开发
  • 现代密码学介绍
  • 【软件工程】软件工程学概述复习资料
  • openharmony5.0.0中kernel子系统编译构建流程概览(rk3568)
  • 可视化大屏工具对比:GoView、DataRoom、积木JimuBI、Metabase、DataEase、Apache Superset 与 Grafana
  • ArcGIS Pro 3.4 二次开发 - 地图创作 1
  • ArcGIS Pro 3.4 二次开发 - 地图创作 2
  • JavaScript async/await指南
  • 解决Vditor加载Markdown网页很慢的问题(Vite+JS+Vditor)
  • 【请关注】MySQL 中常见的加锁方式及各类锁常见问题及对应的解决方法
  • ES101系列09 | 运维、监控与性能优化
  • 笔记本/台式C盘扩容:删除、压缩、跨分区与重分配—「小白教程」
  • 大模型的外围关键技术
  • 动态规划-1143.最长公共子序列-力扣(LeetCode)
  • OpenCV C++ 学习笔记(五):颜色空间转换、数值类型转换、图像混合、图像缩放
  • Flink 重启后事件被重复消费的原因与解决方案
  • 番禺做网站设计/常见的网站推广方式有哪些
  • 代做电子商务网站作业/1688的网站特色
  • 浙江有限公司网站/万能优化大师下载
  • 建设一个农家乐网站/seo优化需要多少钱
  • 目前做哪些网站能致富/chrome谷歌浏览器官方下载
  • 网站的尺寸/2022年明星百度指数排行