0 引言
FCM32C0xx是深圳閃芯微電子(簡稱閃芯微)高性價比的32位微控制器產品,基于Cortex-M0內核,運行頻率最高達100MHz,提供豐富的連接功能(USART、SPI、I2C、I2S、USB、CAN、SPI)及模擬外設(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瀏覽量
634633 -
mcu
+關注
關注
146文章
17123瀏覽量
350982
原文標題:使用Embedded Studio開發與調試FCM32單片機
文章出處:【微信號:麥克泰技術,微信公眾號:麥克泰技術】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論