芯昇科技CM32M433R-START開箱評(píng)測(cè)
CM32M433R-START開箱評(píng)測(cè)
1.概述
中國移動(dòng)芯昇科技發(fā)布CM32M4xxR,該芯片基于RISC-V內(nèi)核的MCU,性能主要對(duì)標(biāo)Cortex-M4。如今RISC-V架構(gòu)的通用MCU在市場(chǎng)上也并不少見,但是該芯片也有其自己的特點(diǎn),在探索應(yīng)用領(lǐng)域方面也有自己獨(dú)特的設(shè)計(jì)。
最開始拿到CM32M433R-START這個(gè)板子,板子設(shè)計(jì)簡(jiǎn)單,接口很多,但是板載資源比較少,與前幾年比較熱門的物聯(lián)網(wǎng)開發(fā)板不太一樣,從芯片CM32M4xxR的特點(diǎn)上來說,主頻是144MHz,待機(jī)功耗3uA,動(dòng)態(tài)功耗113uA/MHz。
資源方面,可以查看下面的圖表
特性 | 資源 |
---|---|
內(nèi)核 | 芯來科技N308內(nèi)核(RV32IMACFSPU) |
主頻 | 144MHz |
存儲(chǔ) | 內(nèi)置512KB Flash、144KB SRAM |
U(S)ART | 3 * USART、4*UART |
SPI | 3 |
QSPI | 1 |
I2C | 4 |
CAN | 2 |
XFMC | 1 |
ADC | 4 |
GPIO | 最多97 |
DMA | 2 |
WWDG | 1 |
IWDG | 1 |
定時(shí)器 | 2*高級(jí)定時(shí)器,4*通用定時(shí)器 |
從上面的表格來看,主要值得關(guān)注的是riscv擴(kuò)展架構(gòu),支持除了一般RISCV都會(huì)支持的RV32IMAC,另外還有F(單精度浮點(diǎn)),S(監(jiān)督模式Supervisor Mode),U(用戶模式User Mode),P(DSP)。支持了這些擴(kuò)展,賦予了該芯片特殊的用途。當(dāng)加入了S與U擴(kuò)展,可以做TEE,安全加密等用途,而P擴(kuò)展的加入,賦予了該MCU多媒體計(jì)算加速功能。在應(yīng)用領(lǐng)域方面。官方宣傳應(yīng)用領(lǐng)域主要是:智能門鎖、物聯(lián)網(wǎng)網(wǎng)關(guān)、交互面板、測(cè)控終端、學(xué)生教育、消費(fèi)電子相關(guān)領(lǐng)域。
2.上手體驗(yàn)
CM32M433R-START只需要接上Micro USB與電腦相連,即可實(shí)現(xiàn)板子程序下載與串口調(diào)試功能,不需要額外的串口模塊與額外的調(diào)試器。其實(shí)是CM32M433R-START板載了調(diào)試芯片,支持了調(diào)試功能。其原始接口支持4-wire JTAG與2-wire JTAG調(diào)試接口。支持J-Link硬件與RV-Link調(diào)試器。
芯片的編程IDE,采用的是NucleiStudio,其IDE底層設(shè)計(jì)也是屬于RISC-V MCU中常用的eclipse進(jìn)行的整體功能的支持。與兆易創(chuàng)新GD32VF103類似,在IDE的引導(dǎo)下,可以一步一步創(chuàng)建一個(gè)工程。
該IDE創(chuàng)建工程提供了很多的示例程序支持,這對(duì)于芯片的使用與功能的開發(fā)來說,也是非常的重要的。
該芯片例程配合NucleiStudio軟件包管理功能,使用起來還是比較方便的。從上手難度上來看,該芯片上手還是相對(duì)比較容易的,例程也比較多。與GD32VF103芯片的 RV-STAR總體上手難度差不多。例程豐富,底層庫基本上都是開源的。但是有一些加密算法庫似乎是通過庫函數(shù)的方式進(jìn)行提供,目前未看到源代碼實(shí)現(xiàn)。
底層驅(qū)動(dòng)庫,算法庫,以及DSP使用都有著豐富的例程。這些對(duì)于芯片使用者來說,還是可以做出一些上層應(yīng)用功能出來。與其他同類型RISC-V MCU類似,都是一種國產(chǎn)芯片的替代方案。
在ARM芯片替代上,可能最大的區(qū)別就是中斷管理,這部分CM32M433R-START采用了與兆易創(chuàng)新GD32VF103一樣的設(shè)計(jì)ECLIC,關(guān)于ECLIC的分析可以參考下面的文章:
淺析riscv中的plic與eclic
其他的編程方式應(yīng)該都差不多。做應(yīng)用開發(fā)應(yīng)該沒有太多難度。
3.DSP功能
這芯片相比之前的RISCV MCU,特色之一應(yīng)該就是DSP支持。但是這也需要硬件、工具鏈、庫三者配合才能使用的很好。
因?yàn)樽龅讓榆浖难芯,所以?duì)這部分我也做了一點(diǎn)研究,從庫和編譯器方面進(jìn)行簡(jiǎn)單的使用體驗(yàn)。
NucleiStudio自動(dòng)的編譯器是支持DSP擴(kuò)展的,也就是可以采用DSP指令進(jìn)行編程,庫方面,采用的是NMSIS庫提供上層函數(shù),直接支持利用頭文件提供的DSP函數(shù)功能進(jìn)行編程,這與ARM的CMSIS基本的使用方式上是一樣的。
因?yàn)橹苯邮謱慏SP匯編,對(duì)于上層應(yīng)用開發(fā)者來說還是比較復(fù)雜的。提供頭文件進(jìn)行編寫也是一種非常好的方式。
因?yàn)檠芯窟^一段時(shí)間的DSP自動(dòng)向量化,所以也想在該芯片上測(cè)試一下。
在優(yōu)化等級(jí)中選擇O3優(yōu)化后。
uint32_t example5(const uint8_t *restrict in, const uint8_t *restrict in2)
{
uint32_t sum = 0;
for (int i = 0; i < 32; i++)
{
sum += in[i] * in2[i]; /* => maddr32 */
}
return sum;
}
在函數(shù)中寫一段C語言測(cè)試代碼,通過編譯后的elf文件。
可以看到和加運(yùn)算確實(shí)會(huì)被dsp自動(dòng)向量化,關(guān)于dsp自動(dòng)向量化功能,只能從一定程度上生成對(duì)應(yīng)的DSP指令,很多智能化的操作還需要riscv編譯器的不斷支持和完善,這也是編譯工具鏈不斷智能化的一個(gè)重要的推進(jìn)方向。如果需要人為的去操作DSP指令,則借助NMSIS庫也是非常好方式。
4.與其他RISCV MCU比較
之前接觸過類似于兆易創(chuàng)新的GD32VF103,沁恒CH32V103,中科藍(lán)訊AB32VG1,樂鑫的ESP32C3等等。
國產(chǎn)RISCV MCU 沁恒CH32V103上手體驗(yàn)
GD32VF103 RISCV開發(fā)板試用體驗(yàn)
在資源上CM32M4xxR確實(shí)有著一定的優(yōu)勢(shì)和競(jìng)爭(zhēng)力,有著內(nèi)置512KB Flash、144KB SRAM,特別是加入了tee以及DSP擴(kuò)展,使得其應(yīng)用的領(lǐng)域可以更加廣一些。MCU比起來確實(shí)有著一定的進(jìn)步。但是我覺得還不夠好,既然已經(jīng)有了DSP以及單精度浮點(diǎn)的支持,完全可以在音視頻方面提升一些特點(diǎn)出來。特別是語音編解碼,圖像編解碼以及語音攝像頭采集圖像方面做出一定的設(shè)計(jì)。
總體上來說,CM32M4xxR作為通用的MCU,其功能完全可以說是riscv mcu中性能較好的芯片,由于目前還沒有進(jìn)行coremark的跑分測(cè)試數(shù)據(jù),其評(píng)測(cè)標(biāo)準(zhǔn)無法量化,但是從資源的豐富程度上來說也是優(yōu)秀的芯片了。
5.總結(jié)
對(duì)于CM32M4xxR的芯片,外設(shè)資源以及指令支持都還是不錯(cuò)的,只是作為一款通用的MCU來說,可以更加突出應(yīng)用特點(diǎn)也許會(huì)更好。市面上的RISCV MCU越來越多,其易用性,價(jià)格,穩(wěn)定性,出貨等等都是重要的評(píng)判標(biāo)準(zhǔn)。中國移動(dòng)芯昇科技是中國移動(dòng)旗下的子公司,其研發(fā)能力和市場(chǎng)資源還是很不錯(cuò)的。只是期待CM32M4xxR能夠做出更多的市場(chǎng)應(yīng)用,為推動(dòng)RISCV MCU生態(tài)發(fā)揮出重要的作用。
如需要了解更多中移物聯(lián)MCU產(chǎn)品,請(qǐng)聯(lián)系中移物聯(lián)核心代理商,穎特新科技,或者掃碼聯(lián)系我們!
編輯:admin 最后修改時(shí)間:2022-05-08