返回列表 发新帖我要提问本帖赏金: 10.00元(功能说明)

[APM32F4] 基于VScode 的APM32F4开发环境配置

[复制链接]
1907|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, 下载次数: 13) ,基于最新的OpenOCD源码(这是它的官网Open On-Chip Debugger,https://openocd.org/)添加APM32系列MCU(后续有感兴趣的小伙伴我们再单独开贴讨论)。

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

image-20221127194820585.png

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

2.1 启动文件

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

  1.   .syntax unified
  2.   .cpu cortex-m4
  3.   .fpu softvfp
  4.   .thumb


简单总结就是:

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


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

2.2 链接脚本文件

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

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

image-20221127195757625.png
APM32F407xE的内存分配下:

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

3 工程创建及编译仿真

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

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

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

打赏榜单

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

lzbf 发表于 2022-12-1 17:57 | 显示全部楼层
是不是可以直接关联上keil进行编译?

评论

可以的,这个插件满舒服的  发表于 2022-12-4 14:29
xu@xupt 发表于 2022-12-10 13:20 | 显示全部楼层
感觉不如keil上方便一点

评论

毕竟Keil花了钱的  发表于 2022-12-12 10:26
wwppd 发表于 2023-1-5 10:45 | 显示全部楼层
如何设置APM32F4的固件库?
everyrobin 发表于 2023-1-5 12:46 | 显示全部楼层
这个VScode是否需要插件?              
elsaflower 发表于 2023-1-5 13:06 | 显示全部楼层
这个学习一下,vs环境好用。              
phoenixwhite 发表于 2023-1-5 15:30 | 显示全部楼层
怎么从底层开始开发相关的代码呢?
vivilyly 发表于 2023-1-5 16:36 | 显示全部楼层
apm32的性能非常给力。              

评论

是的喔,一起体验!  发表于 2023-1-9 18:00
macpherson 发表于 2023-1-6 16:05 | 显示全部楼层
感觉还是keil实用一些。              

评论

keil 开箱即可使用,会方便,但商用要授权  发表于 2023-1-9 17:59
chenjun89 发表于 2023-1-10 19:39 来自手机 | 显示全部楼层
eclipse做开发也不错
deliahouse887 发表于 2023-2-4 22:08 | 显示全部楼层
还是习惯于使用keil开发代码的。
uiint 发表于 2023-2-7 21:48 | 显示全部楼层
APM32F4是不是兼容st的m4单片机
updownq 发表于 2023-2-8 12:09 | 显示全部楼层
这个的代码优化如何设置的?              
pl202 发表于 2023-2-8 12:28 | 显示全部楼层
vscode如何搭建开发环境?              
macpherson 发表于 2023-2-8 15:59 | 显示全部楼层
直接keil开发的不好用吗?              
您需要登录后才可以回帖 登录 | 注册

本版积分规则

43

主题

292

帖子

11

粉丝
快速回复 在线客服 返回列表 返回顶部