当前位置: 首页 > 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,再就是注意启动汇编的后缀文件。还有就是编译文件里面的注释需要更新一下。

http://www.lqws.cn/news/90793.html

相关文章:

  • React从基础入门到高级实战:React 高级主题 - React 微前端实践:构建可扩展的大型应用
  • 如何监测光伏系统中的电能质量问题?分布式光伏电能质量解决方案
  • 【论文解读】ReAct:从思考脱离行动, 到行动反馈思考
  • 【Doris基础】Apache Doris中的Fragment概念详解
  • Vue3中使用Echarts图表步骤-demo
  • 通信算法之281:大疆DJI无人机ID-DJI DroneID开源工程-相关问题-协议信息问题
  • 20250603在荣品的PRO-RK3566开发板的Android13下的命令行查看RK3566的温度
  • 学习路之PHP--easyswoole使用视图和模板
  • 大语言模型评测体系全解析(上篇):基础框架与综合评测平台
  • 用户管理页面(解决toggleRowSelection在dialog用不了的隐患,包含el-table的plus版本的组件)
  • 剑指offer15_数值的整数次方
  • Elasticsearch | 如何将修改已有的索引字段类型并迁移数据
  • 云原生周刊:探索 Gateway API v1.3.0
  • 点击启动「高效模式」:大腾智能 CAD 重构研发设计生产力
  • Go 为何天生适合云原生?
  • 项目前置知识——不定参以及设计模式
  • MYSQL索引详解
  • 平台化 LIMS 系统架构 跨行业协同与资源共享的实现路径
  • Ubuntu 22.04 安装 Nacos 记录
  • ubuntu 20.04挂载固态硬盘
  • Ubuntu22.04安装MinkowskiEngine
  • 安装和配置 Nginx 和 Mysql —— 一步一步配置 Ubuntu Server 的 NodeJS 服务器详细实录6
  • 解决 Ubuntu 20.04 虚拟机中 catkin_make 编译卡死问题
  • seafile:ubuntu搭建社区版seafile12.0
  • Starrocks Full GC日志分析
  • Stone 3D新版本发布,添加玩家控制和生物模拟等组件,增强路径编辑功能,优化材质编辑
  • 无人机避障——感知部分(Ubuntu 20.04 复现Vins Fusion跑数据集)胎教级教程
  • 网络安全厂商F5推出AI Gateway,化解大模型应用风险
  • RequestRateLimiterGatewayFilterFactory
  • 大数据 ETL 工具 Sqoop 深度解析与实战指南