0 引言
FCM32C0xx是深圳闪芯微电子(简称闪芯微)高性价比的32位微控制器产品,基于Cortex-M0内核,运行频率最高达100MHz,提供丰富的连接功能(USART、SPI、I2C、I2S、USB、CAN、SPI)及interwetten与威廉的赔率体系 外设(ADC、DAC、COMP),同时提供CRC、AES、PLib、读保护等多种安全措施。
FCM32R0xx系列是闪芯微设计的基于NUCLEI(芯来)N305内核的控制器,R0xx系列MCU将内核从Cortex-M更换为RISC-V。和C0xx相比,模拟外设、数字外设、电气参数、MCU引脚分配等全部一致,用户不需要重新学习MCU各个外设的使用,可以简单方便的将应用从Cortex-M切换到RISC-V内核上。
闪芯微设计的理念是R0xx与C0xx系列只有内核不同,其它全部一样,因此采用统一的SDK开发包(驱动与例程),可方便切换不同系列MCU,用户不需要关心内核的区别,只需专注于应用层的开发。
一般情况不同架构的MCU开发,需要对应的开发工具,比如ARM Keil能支持ARM Cortex-M系列MCU开发。SEGGER Embedded Studio(简称SES)作为单一IDE同时支持Cortex-M和RISC-V内核应用开发,这具备特别的优势。使用SES可以同时支持闪芯微FCM32C0xx和FCM32R0xx系列MCU开发调试,原生支持J-Link,提供高效的调试特性,SES针对非商业用户免费,这让初学者可以方便上手学习。
FCM32C0/R0系列处理器,作为高度集成的32位MCU,适用于多种应用。闪芯微提供了FCM32 Nucleo-64开发板,供用户试用/评估FCM32系列LQFP64封装的微控制器。开发板将所有IO引出,提供按键、LED,板载DAPLINK在线调试器。我们基于FCM32 Nucleo-64学习板,了解如何使用SES开发、调试FCM32应用。
1. 环境搭建
安装开发环境和SDK
访问SEGGER官网,https://www.segger.com/downloads/embedded-studio/?utm_medium=top_menu&utm_source=www,下载SES并安装。
访问http://www.flashchip.com.cn/support.html,联系闪芯微获得软件包。
Pack文件夹中包含SES支持包文件FCM32.emPackage,启动SEGGER Embedded Studio,通过Tools->Manually Install Packages…安装支持包。
将fcm32c0xx_r0xxJ-LinkJLinkDevices目录拷贝至C:UsersXXXXXAppDataRoamingSEGGER(XXXXX为电脑的用户名), 在SES中添加FCM处理器支持。
2. 构建示例工程
安装FCM32支持包后,SES中将包含FCM32C0xx Samples Solution和FCM32R0xx Samples Solution。
在安装的支持包中,选择FCM32C0xx Samples Solution,
在Project‘Blinky’上双击,将Blinky设置为当前工程,点击工具栏按钮Build或按F7,构建工程。
通过Output窗口,可以看到工程的构建时间,生成的可执行文件的资源占用情况。
3. 使用J-Link调试应用
FCM32 Demo Board开发板没有提供外扩SWD调试接口,需通过引出的IO口,连接J-Link调试接口,注意使用外部调试器时,需将SB3/SB4/SB5移除。
通过Debug->go,进入调试界面,
即可开始源代码的跟踪调试。
4. 创建用户例程
安装FCM32的支持包后,用户可以基于支持包新建工程。新建工程的步骤如下:
1. 选择File->New Project…新建工程,在弹出的窗口中选择FCM32R0xx工程模板,指定工程位置和名字后,点击Next。
2. 指定MCU型号,以及烧写文件的格式。
3. 选择需要加载的文件。
4. 工程创建完成后,编译。
5. 使用J-Link连接开发板,点击工具栏的Start Debugging,进入调试模式,程序运行至main。
用户可以基于该例程,开发自己的应用。
5. 迁移STM32F0项目
FCM32C0xx/R0xx两个系列控制器,与STM32F0xx系列使用相同的内存映射,时序兼容。开发者已经熟悉的基于STM32F0系列的程序,通过简单的几个步骤,即可迁移到FCM32C0xx/R0xx MCU上运行,这一点对于RISC-V MCU开发初学者很有帮助。以GPIO_IOToggle工程为例,了解如何将例程迁移到RISC-V内核的FCM32R0处理器上。
1. 参考第4节创建用户例程,创建GPIO_IOToggle工程,MCU设置为FCM32R072RB。
2. 将F0示例工程目录下的Src和Inc文件夹,拷贝至GPIO_Toggle工程目录。
3. 在SES工程中,添加相应的源文件,
新建BSP Files文件夹,添加FCM32DriversBSPFCM-Nucleofcm32x0xx_nucleo.c。
新建Driver Files文件夹,添加FCM32DriversFCM32x0xx_HAL_DriverSrc下相应的时钟、中断及IO驱动。
移除Source Files目录下的main.c文件,添加Srcmain.c和stm32f0xx_it.c。
操作完成后,工程视图如下。
4. 修改头文件调用。
在main.h中,将
#include "stm32f0xx_hal.h" #include "stm32f0xx_nucleo.h"
替换为
#include "fcm32x0xx_hal.h" #include "fcm32x0xx_nucleo.h"
将Incstm32f0xx_hal_conf.h重命名为fcm32x0xx_hal_conf.h。
将fcm32x0xx_hal.h文件中的
#include "stm32f0xx_hal_***.h"
替换为
#include "fcm32x0xx_hal_***.h"
5. 构建工程,使用J-Link连接开发板,进入调试模式,运行程序,翻转LED状态。
6. 小结
ARM Cortex-M MCU已经有广泛的教育和应用的基础,开发者熟悉这种处理器架构和开发方法,许多基于ARM Cortex-M MCU芯片是物联网和嵌入式系统开发的首选平台。RISC-V指令集架构是计算威廉希尔官方网站 中冉冉上升的新星,RISC-V单片机也频频亮相,单片机芯片的应用越来越多。本文介绍基于FCM32C0/R0系列单片机开发板、SDK软件包和SEGGER Embedded Studio,学习从ARM MCU迁移到RISC-V MCU的一种路径,希望本文对RISC-V嵌入式开发的初学者有帮助。
1.闪芯微 FCM32 Nucleo-64使用说明
2.闪芯微 Sxx32f0至FCM32x0快速替换指南
3.林金龙 移植Cortex-M程序到RV32中的问题https://www.hanspub.org/journal/paperinformation?paperid=93109
4.林金龙 何小庆 深入理解RISC-V程序开发 北京航空航天大学出版社 2021年9月
-
单片机
+关注
关注
6035文章
44554浏览量
634685 -
mcu
+关注
关注
146文章
17128浏览量
350998
原文标题:使用Embedded Studio开发与调试FCM32单片机
文章出处:【微信号:麦克泰威廉希尔官方网站 ,微信公众号:麦克泰威廉希尔官方网站 】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
评论