当前位置:首页>新闻中心>技术分享>航芯技术分享 | ACM32F0x0开发环境搭建

航芯技术分享 | ACM32F0x0开发环境搭建

发布时间:2022-12-28

Keil 篇


1.1 Keil安装步骤


安装包链接:https://cloud.tencent.com/developer/article/1605195  (keil推荐在MDK5.31(含)以上)。


一、下载并解压安装包,并按步骤完成安装



二、运行安装程序,点击next



三、勾选accept,点击next



四、选择安装路径,点击next(最好选择默认路径,如果自行修改需要注意不要添加中文)



注意事项:

• 安装路径不能有中文

• 安装目合


五、信息随意填写,点击next



六、等待安装



七、点击finish,完成安装



八、突然会弹出“Pack installer”页面,先后关闭两个窗口



1.2 Keil使用流程(以ACM32F0X0系列为例)


一、安装航芯的芯片包





二、创建一个新的文件夹temp,放入航芯提供的Core_Drivers文件,同时在里面创建一个新的文件夹user。



三、打开keil,建立一个新的工程。




四、安装好了航芯的芯片包后,可以选择对应的设备号(没有找到对应的设备号可能是芯片包未安装好)




五、添加头文件(.h文件)




六、添加源文件(.C文件)


第一步打开空白页,编写程序(可以使用航芯提供的demo程序或者自己编写的程序)后,第二步保存到对应的工程文件夹。





1.3 keil编译、下载、运行


一、工程编译



二、下载程序(ACM32F0X0 系列支持的在线仿真器包括: J-Link、 U-Link2、 ST-Link、 CMSIS-DAP,ACM32F4XX 系列支持的在线仿真器包括: J-Link-V9(含)以上、 U-Link2、 CMSIS-DAP等,使用 J-Link 在线调试时, Keil 推荐在 MDK5.31(含)以上, J-Link 驱动建议在 V6.70e(含)以上)



航芯的core开发板是带有DAP连接的,所以可以直接选择CMSIS-DAPDebugger,通过Settings查看是否正常连接。如果需要使用Jlink方式连接,可以参考《航芯通用MCU使用JFlash烧录程序的方法说明.pdf》。





三、运行(目前芯片不支持下载后自启动,需要按下RESET键后,程序才能运行),以GPIO口翻转控制LED灯闪烁为例,部分示例代码(完整代码见附录)和现象如下:





1.4 Keil Debug使用说明


一、进入调试界面



二、调试工具栏介绍


断点是调试器的功能之一,可以让程序停止在设置断点的语句。在调试过程中,可在程序的某一处设置断点再点击Run运行,此时当程序运行至该位置时自动停止。







三、调试窗口介绍


1. 查看外设寄存器的值,参考《航芯ACM32F0X0_FP0X_用户手册_V1.6.pdf》查看各个外设寄存器的功能。





2. 选中需要查看的参数,单击鼠标右键,可以将参数放入观察窗口,实时查看参数的变化。





3. 内核寄存器组


寄存器窗口,如下图所示,该窗口用于显示R0~R15、xPSR等内核寄存器的值(不是外设寄存器),关于内核寄存器的介绍可以查看ARM架构基本寄存器



IAR 篇


1.1 IAR安装步骤


一、下载并解压安装包,并按步骤完成安装






二、运行安装程序,点击next





三、勾选accept,点击next





四、选择安装路径,点击next



五、安装驱动,为避免以后可能使用到其他下载器,默认即可,会自动安装一些驱动



六、直接选择"NEXT"





七、点击"install"



八、等待安装完成,点击"finish"完成安装





九、安装完会出现弹窗,是第7条选择的驱动的安装,每个弹窗直接点击"Install","close"即可,所有驱动按照默认安装即可。






1.2 IAR 使用流程(以ACM32F0X0为例)


一、建立新工作区(File–>>NewWorkspace)



二、建立新项目(Project–>>CreateNew Project…)


选择对应的工程模板后点击“OK”,之后将工程保存在对应的文件夹。



三、添加文件组和源文件


通过Add Files可以添加自己编写好的源文件(.C)或者别的demo文件中的源文件,通过Add Group可以添加文件组,来给每个文件分组。



四、添加头文件


点击Project–>>Options,选择C/C++Complier->>Preprocessor添加头文件的路径。



1.3 IAR编译、下载、运行


一、编译


Compile:只对目前打开的c文件进行语法检查,不对它进行link;Make:对工程所有打开的c文件进行语法检查和link(只编译有改动的文件或者设置变动的文件);Rebuild All:编译链接当前工程(不管文件或者设置是否有变动);


Clean:清除当前工程的编译状态;Batch build:批量编译,打开Batch build 批量编译后,需要给批量编译起个名字,然后将本工程中的三个分类都添加到“Configurations to build”中,然后单击“Make” 就可以对这工程中的三个分类全部进行编译;



二、下载


下载程序需要先安装调试文件(ACM32F4系列也需要安装相应的调试文件)



•  将 ACM32F0XX.ddf 放置于 IAR 的安装目录的\arm\config\debugger下



• 将其余 4 个文件放置于 IAR 的安装目录的\arm\config\flashloader下



在目录中放置好后需要在IAR中配置调试文件




内核选择SC000,使用JLINK驱动烧录。



上述设置完成好后点击Download andDeBUG,烧录成功



三、运行


目前芯片不支持下载后自启动,需要按下RESET键后,程序才能运行,以GPIO口翻转控制LED灯闪烁为例,部分示例代码(完整代码见附录)和现象如下:





1.4 IAR Debug使用说明


一、点击白色按键或者通过Project->>Debugwithout Download进入仿真调试界面



二、设置断点



按F5 键或工具条上的Go 按钮都可以让程序执行到断点。DebugLog 窗口将显示关于断点的信息


三、查看变量( Watch 窗口)


打开Live Watch 窗口的方法是选择主菜单View →  Watch 命令。 Watch 窗口用于观察静止位置上的变量,如全局变量。点击鼠标右键选择要查看的变量,点击Add to Watch;变量的值在执行时会变化并显示出来。



四、监视寄存器


选择主菜单View > Register 打开寄存器窗口,显示的是CPU 寄存器。可以从寄存器窗口左上方的下拉菜单中选择需要查看的任何寄存器组。



Keil+GCC


1.1 Keil安装及使用


具体安装及使用相关信息参照Keil篇,本篇不做具体赘述。


1.2 GNU编译器集合 (GCC) 安装步骤


ARM GCC编译器下载地址https://developer.arm.com/downloads/-/gnu-rm




①使用安装文件exe安装时,默认安装目录为

C:\Program Files (x86)\GNU ArmEmbedded Toolchain\10 2021.10;


②使用压缩包zip文件时,将文件放入C:\Keil_v5\ARM文件夹内解压,安装目录为C:\Keil_v5\ARM\gcc-arm-none-eabi-10.3-2021.10



安装目录后续配置Keil时使用


1.3 Keil + GCC相关配置


①打开Keil后,点击图示按钮Manager Project Items



②在弹出界面中,Folder/Extensions选项中选择Use GCC Compiler (GNU) for ARMprojects,Folder填入GCC安装目录




③点击图示按钮Configure target options


④在弹出界面中,Output选项中,如果选择Creat Executable,则需要在Linker中配置脚本文件,如果选择Creat Library则不需要在Linker中配置脚本文件。



⑤配置CC选项,Include Paths添加CMSIS、Device、HAL库等相关路径


MiscControls中F0系列添加-mcpu=cortex-m0-mthumb -ffunction-sections -fdata-sections。



⑥配置Assmbler选项,Misc Controls F0系列添加-mcpu=cortex-m0 -mthumb。



⑦配置Linker选项,如步骤④中所述,仅在选择Creat Executable时需要在Linker Script File中配置脚本文件,建议脚本文件包含在项目工程根目录中。


MiscControls添加-Wl,–gc-sections ,如需使用封装库增加<-l库名>来链接封装库



⑧项目创建或移植时,CMSIS添加cmsis_gcc.h文件,Device更新GCC专用的.S启动文件(Startup_ACM32F0x0_gcc.S)



1.4 Keil + GCC调试使用说明


调试过程参照Keil篇,需要注意的是使用GCC编译器时,在Keil环境下无法进行跳转(快捷键F12)功能。


常见错误和注意事项


一、在 GCC环境下,printf重定向问题


在Keil中的C库中,printf、scanf等输入输出流函数是通过fputc、fgetc来实现最底层操作的,所以我们只需要在我们的工程中重定义这两个函数的功能就可以实现printf、scanf等流函数的重映射。与keil C库类似GNU C库下的流函数底层是通过_read、_write函数实现的,我们只要在工程中将他们重新定义就可以实现重映射的功能了。


C++
#ifdef __GNUC__  
int __io_putchar(int ch)  
 {  
   Uart_Debug->DR = ch;
   while  ((Uart_Debug->FR & UART_FR_BUSY));  
   return ch;  
 }  
int _write(int fd, char* buffer, int  size)  
 {  
   for(int  i = 0;i<size;i++)  
   {  
       __io_putchar(*buffer++);  
   }  
   return  size;  
 }  
#else  
int fputc(int ch, FILE *f)  
 {  
   if  (Uart_Debug == NULL)  
   {  
       return 0;  
   }  
   Uart_Debug->DR = ch;  
   while  ((Uart_Debug->FR & UART_FR_BUSY));  
   return ch;  
 }  
#endif


Eclipse+GCC


1.1 Eclipse安装


① Eclipse下载地址https://www.eclipse.org/downloads/ 整体安装过程需联网进行


②下载完成后双击打开,界面如下图所示,点击红色框标记的选项



③点击后出现下图设定界面,两个设定项目分别是JRE的版本与安装的位置,可自行选定




④点击安装后,开始进入到下载流程,此时需全程联网进行




⑤安装完成后,点击LAUNCH启动eclipse,开始插件安装



1.2 Eclipse使用


打开eclipse软件,会弹出对话框让选择workspace,界面如下图所示:




Workspace由用户自己定义,用来存储相关文件。


ACM32系列MCU是ARM内核,所以需要下载一个支持编译ARM内核的编译器,示例选择了xpack模式的编译器,下载地址xpack-arm-none-eabi-gcc-11.2.1-1.2-win32-x64




编译时有清理或拷贝的操作,需要使用到xPack Windows Build Tools中的一些工具, 同编译工具链设定相似,软件包下载完成后解压到指定的目录下,依次点击Windows->Preferences->MCU->GlobalBuild Tool Path进入到设定中,指定构建工具的目录。



1.3 调试工具驱动安装


1.3.1 J-Link


①下载J-Link软件,访问https://www.segger.com/downloads/jlink#可选择不同版本J-Link驱动下载,本文中选取下载了J-Link V7.82版本



②安装完成后,依次点击eclipse的Windows->Preferences->MCU->GlobalSEGGER J-Link Path进入到设定中,指定JLink工具的目录,图示如下:



③ 进入到Debug Configurations配置页面



④双击GDB SEGGER J-Link Debugging创建J-Link调试的配置,修改相应的配置后即可使用J-Link进行调试





ACM32相关PACKS安装后,SVD文件可在相关文件夹内索引,索引地址为

C:\Users\用户名\AppData\Local\Arm\Packs\Aisinochip


配置完成后即可使用J-Link进行调试

1.3.2 CMSIS-DAP


DAP调试需要使用OpenOCD插件,目前网络上的版本是由于没有针对ACM32系列的eFlash操作做支持,是无法直接使用的,需要使用航芯提供的版本,相应的软件包名称为openocd-v0.11.0-i686-w64-mingw32。直接把该软件放入到指定的目录下,依次点击eclipse的Windows->Preferences->MCU->GlobalOpenOCD Path进入到设定中,指定OpenOCD工具的目录,图示如下:



然后进入到Debug Configurations配置页面中,双击GDB OpenOCD Debugging创建DAP调试的配置,修改相应的配置后即可使用DAP进行调试, 相应的配置项如图所示:



按照格式索引cmsis-dap.cfg与acm32f0x0.cfg两个文件