0 引言
FCM32C0xx是深圳閃芯微電子(簡稱閃芯微)高性價比的32位微控制器產(chǎn)品,基于Cortex-M0內(nèi)核,運行頻率最高達100MHz,提供豐富的連接功能(USART、SPI、I2C、I2S、USB、CAN、SPI)及模擬外設(ADC、DAC、COMP),同時提供CRC、AES、PLib、讀保護等多種安全措施。
FCM32R0xx系列是閃芯微設計的基于NUCLEI(芯來)N305內(nèi)核的控制器,R0xx系列MCU將內(nèi)核從Cortex-M更換為RISC-V。和C0xx相比,模擬外設、數(shù)字外設、電氣參數(shù)、MCU引腳分配等全部一致,用戶不需要重新學習MCU各個外設的使用,可以簡單方便的將應用從Cortex-M切換到RISC-V內(nèi)核上。
閃芯微設計的理念是R0xx與C0xx系列只有內(nèi)核不同,其它全部一樣,因此采用統(tǒng)一的SDK開發(fā)包(驅動與例程),可方便切換不同系列MCU,用戶不需要關心內(nèi)核的區(qū)別,只需專注于應用層的開發(fā)。
一般情況不同架構的MCU開發(fā),需要對應的開發(fā)工具,比如ARM Keil能支持ARM Cortex-M系列MCU開發(fā)。SEGGER Embedded Studio(簡稱SES)作為單一IDE同時支持Cortex-M和RISC-V內(nèi)核應用開發(fā),這具備特別的優(yōu)勢。使用SES可以同時支持閃芯微FCM32C0xx和FCM32R0xx系列MCU開發(fā)調(diào)試,原生支持J-Link,提供高效的調(diào)試特性,SES針對非商業(yè)用戶免費,這讓初學者可以方便上手學習。
FCM32C0/R0系列處理器,作為高度集成的32位MCU,適用于多種應用。閃芯微提供了FCM32 Nucleo-64開發(fā)板,供用戶試用/評估FCM32系列LQFP64封裝的微控制器。開發(fā)板將所有IO引出,提供按鍵、LED,板載DAPLINK在線調(diào)試器。我們基于FCM32 Nucleo-64學習板,了解如何使用SES開發(fā)、調(diào)試FCM32應用。
1. 環(huán)境搭建
安裝開發(fā)環(huán)境和SDK
訪問SEGGER官網(wǎng),https://www.segger.com/downloads/embedded-studio/?utm_medium=top_menu&utm_source=www,下載SES并安裝。
訪問http://www.flashchip.com.cn/support.html,聯(lián)系閃芯微獲得軟件包。

Pack文件夾中包含SES支持包文件FCM32.emPackage,啟動SEGGER Embedded Studio,通過Tools->Manually Install Packages…安裝支持包。

將fcm32c0xx_r0xxJ-LinkJLinkDevices目錄拷貝至C:UsersXXXXXAppDataRoamingSEGGER(XXXXX為電腦的用戶名), 在SES中添加FCM處理器支持。
2. 構建示例工程
安裝FCM32支持包后,SES中將包含F(xiàn)CM32C0xx Samples Solution和FCM32R0xx Samples Solution。

在安裝的支持包中,選擇FCM32C0xx Samples Solution,
在Project‘Blinky’上雙擊,將Blinky設置為當前工程,點擊工具欄按鈕Build或按F7,構建工程。

通過Output窗口,可以看到工程的構建時間,生成的可執(zhí)行文件的資源占用情況。
3. 使用J-Link調(diào)試應用
FCM32 Demo Board開發(fā)板沒有提供外擴SWD調(diào)試接口,需通過引出的IO口,連接J-Link調(diào)試接口,注意使用外部調(diào)試器時,需將SB3/SB4/SB5移除。

通過Debug->go,進入調(diào)試界面,

即可開始源代碼的跟蹤調(diào)試。
4. 創(chuàng)建用戶例程
安裝FCM32的支持包后,用戶可以基于支持包新建工程。新建工程的步驟如下:
1. 選擇File->New Project…新建工程,在彈出的窗口中選擇FCM32R0xx工程模板,指定工程位置和名字后,點擊Next。

2. 指定MCU型號,以及燒寫文件的格式。

3. 選擇需要加載的文件。

4. 工程創(chuàng)建完成后,編譯。

5. 使用J-Link連接開發(fā)板,點擊工具欄的Start Debugging,進入調(diào)試模式,程序運行至main。

用戶可以基于該例程,開發(fā)自己的應用。
5. 遷移STM32F0項目
FCM32C0xx/R0xx兩個系列控制器,與STM32F0xx系列使用相同的內(nèi)存映射,時序兼容。開發(fā)者已經(jīng)熟悉的基于STM32F0系列的程序,通過簡單的幾個步驟,即可遷移到FCM32C0xx/R0xx MCU上運行,這一點對于RISC-V MCU開發(fā)初學者很有幫助。以GPIO_IOToggle工程為例,了解如何將例程遷移到RISC-V內(nèi)核的FCM32R0處理器上。

1. 參考第4節(jié)創(chuàng)建用戶例程,創(chuàng)建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. 修改頭文件調(diào)用。
在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連接開發(fā)板,進入調(diào)試模式,運行程序,翻轉LED狀態(tài)。

6. 小結
ARM Cortex-M MCU已經(jīng)有廣泛的教育和應用的基礎,開發(fā)者熟悉這種處理器架構和開發(fā)方法,許多基于ARM Cortex-M MCU芯片是物聯(lián)網(wǎng)和嵌入式系統(tǒng)開發(fā)的首選平臺。RISC-V指令集架構是計算技術中冉冉上升的新星,RISC-V單片機也頻頻亮相,單片機芯片的應用越來越多。本文介紹基于FCM32C0/R0系列單片機開發(fā)板、SDK軟件包和SEGGER Embedded Studio,學習從ARM MCU遷移到RISC-V MCU的一種路徑,希望本文對RISC-V嵌入式開發(fā)的初學者有幫助。
參考資料
1.閃芯微 FCM32 Nucleo-64使用說明
2.閃芯微 Sxx32f0至FCM32x0快速替換指南
3.林金龍 移植Cortex-M程序到RV32中的問題https://www.hanspub.org/journal/paperinformation?paperid=93109
4.林金龍 何小慶 深入理解RISC-V程序開發(fā) 北京航空航天大學出版社 2021年9月
-
單片機
+關注
關注
6078文章
45596瀏覽量
674075 -
mcu
+關注
關注
147文章
19164瀏覽量
404856
原文標題:使用Embedded Studio開發(fā)與調(diào)試FCM32單片機
文章出處:【微信號:麥克泰技術,微信公眾號:麥克泰技術】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
請問如何使用embedded studio調(diào)試 6750evk 的雙核例程?
AVR高速嵌入式單片機原理與應用(修訂版)
AVR單片機反匯編器 (AVR單片機開發(fā)調(diào)試工具)
單片機開發(fā)調(diào)試應注意的問題
單片機開發(fā)過程中硬件調(diào)試技巧
CrossCore Embedded Studio集成開發(fā)環(huán)境的介紹
OBG調(diào)試接口在單片機中的應用解析
單片機最小系統(tǒng)的調(diào)試方法_單片機最小系統(tǒng)設計制作及開發(fā)流程
在Visual Studio Code上開發(fā)單片機程序(基于IAR msp430)
單片機開發(fā)調(diào)試工具有哪些?
應用單片機開發(fā)的ST LINK調(diào)試器設計制作
使用Embedded Studio開發(fā)與調(diào)試FCM32單片機
評論