发新帖本帖赏金 10.00元(功能说明)我要提问
返回列表
打印
[APM32F4]

基于VScode 的APM32F4开发环境配置

[复制链接]
996|18
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
kai迪皮|  楼主 | 2022-11-27 21:19 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 kai迪皮 于 2022-11-28 17:55 编辑

#申请原创#
@21小跑堂

前言
上次分享了《基于VScode 的APM32F1开发环境配置》https://bbs.21ic.com/icview-3262442-1-1.html,再接再厉玩一下APM32F4的VSCode开发,在这里记录一下开发APM32F4的过程。


1 环境搭建及VSCode环境配置

本节的环境搭建可以参考《基于VScode 的APM32F1开发环境配置》的章节2及4,但这里需要注意的是,xpack编译的OpenOCD是不支持APM32F4的,这里我也准备了一个支持APM32F4的一个OpenOCD的包 openocd-v0.12.0-rc2-2022-11-22-1713.zip (9.96 MB) ,基于最新的OpenOCD源码(这是它的官网Open On-Chip Debugger,https://openocd.org/)添加APM32系列MCU(后续有感兴趣的小伙伴我们再单独开贴讨论)。

这里需要注意把Embedded IDE插件的OpenOCD的路径更改至新的路径。



2 启动文件及连接脚本编写

2.1 启动文件

GCC环境下,芯片的启动文件一般是完成芯片的内核,中断向量号的声明,以及一些数据段的初始化操作,最终在Reset_Handler函数中调用相应的系统时钟初始化函数(“SystemInit”函数)然后执行“main”函数。
  我们新建一个文件“startup_apm32f40x.S”,其代码和我们之提到的F1的代码类似,可以参考得到(主要修改是中断函数的声明),这里需要注意的是F4是M4内核的,需要把启动文件里面的内核声明改为M4:

  .syntax unified
  .cpu cortex-m4
  .fpu softvfp
  .thumb


简单总结就是:

  • 改内核声明
  • 改中断声明与APM32F4的头文件“apm32f4xx.h”保持一致即可。


具体代码,大家可以看附件文件中的源码,这里就不在赘述。

2.2 链接脚本文件

链接脚本文件一般为芯片的主要存储空间信息以及一些程序段保存位置信息,在了解其编写规范后编写也比较简单的将其写出。

我们这里新建一个文件“APM32F4xxxE_FLASH.ld”,其内容为与前面的F1的文件类似。但是值得注意的是F4有一个单独的RAM,仅供内核使用,大小是64KB。这里需要单独分配声明。


APM32F407xE的内存分配下:

/* Specify the memory areas */
MEMORY
{
RAM (xrw)      : ORIGIN = 0x20000000, LENGTH = 128K
CCMRAM (xrw)   : ORIGIN = 0x10000000, LENGTH = 64K
FLASH (rx)     : ORIGIN = 0x8000000, LENGTH = 512K
}
具体代码,大家可以看附件文件中的源码,这里就不在赘述。

3 工程创建及编译仿真

该章节比较简单,大家可以参考F1环境搭建的相应章节,但是大家需要注意把启动文件和链接脚本文件,以及OpenOCD(使用Geehy-Link等CMSIS-DAP血统的仿真器时)的配置更改如下:


配置完相应的宏定义,头文件包含等工作后我们就可以编译及下载仿真啦。


APM32F4xx_SDK_VSCode_v0.1.zip (7.35 MB) 这里我把工程下的.pack文件夹删除了,大家使用例程的时候注意程序导入Pack。欢迎大家在评论区一起讨论使用VSCode开发遇到的趣事~

使用特权

评论回复

打赏榜单

21小跑堂 打赏了 10.00 元 2022-12-09
理由:恭喜通过原创审核!期待您更多的原创作品~

沙发
lzbf| | 2022-12-1 17:57 | 只看该作者
是不是可以直接关联上keil进行编译?

使用特权

评论回复
评论
kai迪皮 2022-12-4 14:29 回复TA
可以的,这个插件满舒服的 
板凳
xu@xupt| | 2022-12-10 13:20 | 只看该作者
感觉不如keil上方便一点

使用特权

评论回复
评论
kai迪皮 2022-12-12 10:26 回复TA
毕竟Keil花了钱的 
地板
wwppd| | 2023-1-5 10:45 | 只看该作者
如何设置APM32F4的固件库?

使用特权

评论回复
5
everyrobin| | 2023-1-5 12:46 | 只看该作者
这个VScode是否需要插件?              

使用特权

评论回复
6
elsaflower| | 2023-1-5 13:06 | 只看该作者
这个学习一下,vs环境好用。              

使用特权

评论回复
7
phoenixwhite| | 2023-1-5 15:30 | 只看该作者
怎么从底层开始开发相关的代码呢?

使用特权

评论回复
8
vivilyly| | 2023-1-5 16:36 | 只看该作者
apm32的性能非常给力。              

使用特权

评论回复
评论
kai迪皮 2023-1-9 18:00 回复TA
是的喔,一起体验! 
9
macpherson| | 2023-1-6 16:05 | 只看该作者
感觉还是keil实用一些。              

使用特权

评论回复
评论
kai迪皮 2023-1-9 17:59 回复TA
keil 开箱即可使用,会方便,但商用要授权 
10
chenjun89| | 2023-1-10 19:39 | 只看该作者
eclipse做开发也不错

使用特权

评论回复
11
deliahouse887| | 2023-2-4 22:08 | 只看该作者
还是习惯于使用keil开发代码的。

使用特权

评论回复
12
uiint| | 2023-2-7 21:48 | 只看该作者
APM32F4是不是兼容st的m4单片机

使用特权

评论回复
13
updownq| | 2023-2-8 12:09 | 只看该作者
这个的代码优化如何设置的?              

使用特权

评论回复
14
pl202| | 2023-2-8 12:28 | 只看该作者
vscode如何搭建开发环境?              

使用特权

评论回复
15
macpherson| | 2023-2-8 15:59 | 只看该作者
直接keil开发的不好用吗?              

使用特权

评论回复
发新帖 本帖赏金 10.00元(功能说明)我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

26

主题

196

帖子

11

粉丝