0 引言
FCM32C0xx是深圳閃芯微電子(簡(jiǎn)稱閃芯微)高性價(jià)比的32位微控制器產(chǎn)品,基于Cortex-M0內(nèi)核,運(yùn)行頻率最高達(dá)100MHz,提供豐富的連接功能(USART、SPI、I2C、I2S、USB、CAN、SPI)及模擬外設(shè)(ADC、DAC、COMP),同時(shí)提供CRC、AES、PLib、讀保護(hù)等多種安全措施。
FCM32R0xx系列是閃芯微設(shè)計(jì)的基于NUCLEI(芯來)N305內(nèi)核的控制器,R0xx系列MCU將內(nèi)核從Cortex-M更換為RISC-V。和C0xx相比,模擬外設(shè)、數(shù)字外設(shè)、電氣參數(shù)、MCU引腳分配等全部一致,用戶不需要重新學(xué)習(xí)MCU各個(gè)外設(shè)的使用,可以簡(jiǎn)單方便的將應(yīng)用從Cortex-M切換到RISC-V內(nèi)核上。
閃芯微設(shè)計(jì)的理念是R0xx與C0xx系列只有內(nèi)核不同,其它全部一樣,因此采用統(tǒng)一的SDK開發(fā)包(驅(qū)動(dòng)與例程),可方便切換不同系列MCU,用戶不需要關(guān)心內(nèi)核的區(qū)別,只需專注于應(yīng)用層的開發(fā)。
一般情況不同架構(gòu)的MCU開發(fā),需要對(duì)應(yīng)的開發(fā)工具,比如ARM Keil能支持ARM Cortex-M系列MCU開發(fā)。SEGGER Embedded Studio(簡(jiǎn)稱SES)作為單一IDE同時(shí)支持Cortex-M和RISC-V內(nèi)核應(yīng)用開發(fā),這具備特別的優(yōu)勢(shì)。使用SES可以同時(shí)支持閃芯微FCM32C0xx和FCM32R0xx系列MCU開發(fā)調(diào)試,原生支持J-Link,提供高效的調(diào)試特性,SES針對(duì)非商業(yè)用戶免費(fèi),這讓初學(xué)者可以方便上手學(xué)習(xí)。
FCM32C0/R0系列處理器,作為高度集成的32位MCU,適用于多種應(yīng)用。閃芯微提供了FCM32 Nucleo-64開發(fā)板,供用戶試用/評(píng)估FCM32系列LQFP64封裝的微控制器。開發(fā)板將所有IO引出,提供按鍵、LED,板載DAPLINK在線調(diào)試器。我們基于FCM32 Nucleo-64學(xué)習(xí)板,了解如何使用SES開發(fā)、調(diào)試FCM32應(yīng)用。
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,啟動(dòng)SEGGER Embedded Studio,通過Tools->Manually Install Packages…安裝支持包。

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

在安裝的支持包中,選擇FCM32C0xx Samples Solution,
在Project‘Blinky’上雙擊,將Blinky設(shè)置為當(dāng)前工程,點(diǎn)擊工具欄按鈕Build或按F7,構(gòu)建工程。

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

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

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

2. 指定MCU型號(hào),以及燒寫文件的格式。

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

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

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

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

1. 參考第4節(jié)創(chuàng)建用戶例程,創(chuàng)建GPIO_IOToggle工程,MCU設(shè)置為FCM32R072RB。

2. 將F0示例工程目錄下的Src和Inc文件夾,拷貝至GPIO_Toggle工程目錄。

3. 在SES工程中,添加相應(yīng)的源文件,
新建BSP Files文件夾,添加FCM32DriversBSPFCM-Nucleofcm32x0xx_nucleo.c。
新建Driver Files文件夾,添加FCM32DriversFCM32x0xx_HAL_DriverSrc下相應(yīng)的時(shí)鐘、中斷及IO驅(qū)動(dòng)。
移除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. 構(gòu)建工程,使用J-Link連接開發(fā)板,進(jìn)入調(diào)試模式,運(yùn)行程序,翻轉(zhuǎn)LED狀態(tài)。

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

使用Embedded Studio開發(fā)與調(diào)試FCM32單片機(jī)
評(píng)論