极海半导体-APM32|基于VScode 的APM32F4开发环境配置
1 环境搭建及VSCode环境配置
需要注意的是,xpack编译的OpenOCD是不支持APM32F4的,这里也准备了一个支持APM32F4的一个OpenOCD的包,基于最新的OpenOCD源码,添加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 工程创建及编译仿真
需要注意把启动文件和链接脚本文件,以及OpenOCD(使用Geehy-Link等CMSIS-DAP血统的仿真器时)的配置更改如下:
配置完相应的宏定义,头文件包含等工作后就可以编译及下载仿真。