隨著市場對嵌入式設(shè)備的功能需求越來越高,集成了嵌入式處理器和實時處理器的主控方案日益增多,以便更好地平衡性能與效率——實時核負責(zé)高實時性任務(wù),A核處理復(fù)雜任務(wù),兩核間需實時交換數(shù)據(jù)。然而在數(shù)據(jù)傳輸方面,傳統(tǒng)串行接口盡管成本較低,但其傳輸速率相對較慢;反之,并行接口雖然傳輸速度快,但成本卻比較高。因此,單芯片多核異構(gòu)處理器就成為能夠滿足需求的理想選擇。RISC-V作為一種開源指令集架構(gòu),以其簡潔性、一致性、可擴展性以及高編譯效率,為實時性處理場景提供了強大的支持。將A核與RISC-V核結(jié)合作為單芯多核異構(gòu)方案,可以有效利用RISC-V的這些優(yōu)勢,實現(xiàn)高性能與高實時性的有效結(jié)合。
![]()
本文將以飛凌嵌入式OK113i-S開發(fā)板為例,為大家介紹RISC-V核的資源和應(yīng)用案例。 1、T113i開發(fā)板的RISC-V核 飛凌嵌入式OK113i-S開發(fā)板是一款基于全志T113-i工業(yè)級處理器開發(fā)的高性價比開發(fā)板,集成了雙核Cortex-A7 CPU、64位玄鐵C906 RISC-V和DSP,能夠提供高效的計算能力和性價比。尤為值得一提的是,其內(nèi)置的RISC-V核心作為一款超高能效的實時處理器,主頻峰值可達1008MHz,并標準配備了內(nèi)存管理單元,能夠流暢運行RTOS系統(tǒng)或裸機程序,進一步提升了應(yīng)用靈活性。 1.1 RISC-V核的特性 (1) 最高主頻可達1008MHz; (2) 32KB指令緩存; (3) 32KB數(shù)據(jù)緩存; (4) 可運行于超大容量的DDR ... ...
1.2 T113-i 核心板RISC-V核的接口資源
![]()
2、應(yīng)用實例 2.1 SPI數(shù)據(jù)收發(fā) 本案例的硬件平臺采用飛凌嵌入式的T113i開發(fā)板,主要進行SPI回環(huán)測試。通過將SPI接口的MOSI(主設(shè)備數(shù)據(jù)輸出)和MISO(主設(shè)備數(shù)據(jù)輸入)兩個引腳進行短接,從而驗證SPI接口在數(shù)據(jù)發(fā)送與接收過程中的功能完整性和數(shù)據(jù)一致性。以下是對SPI回環(huán)測試的詳細解析: (1) 功能介紹
![]()
(2) 效果實現(xiàn) SPI發(fā)送和接收的FIFO均為64個,在底層hal庫程序中,當數(shù)據(jù)長度小于64字節(jié)時,采用中斷方式,當FIFO大于等于64字節(jié)時,采用DMA模式。 中斷方式傳輸效果:
![]()
DMA方式傳輸效果:
![]()
在DMA傳輸方式下,SPI速率默認為5Mbit/s,案例中平均傳輸速率為580.43KB/s,即4.6Mbit/s,接近理論值。 2.2 核間通信RPbuf RPbuf是全志基于RPMsg所實現(xiàn)一套高帶寬數(shù)據(jù)傳輸?shù)目蚣堋PMsg是基于共享內(nèi)存和Msgbox中斷實現(xiàn)的一套核間通信機制,RPMsg除去頭部的16字節(jié)數(shù)據(jù)外,單次最多可發(fā)送496字節(jié)有效數(shù)據(jù)。因此,全志基于RPMsg實現(xiàn)了一套大數(shù)據(jù)量傳輸機制RPbuf,實現(xiàn)原理是在DDR中放置傳輸?shù)臄?shù)據(jù),通過RPMsg傳輸DDR的地址和大小。我們以單次32KB數(shù)據(jù)傳輸為例進行展示。 (1) 功能介紹
![]()
• VirtIO:一套虛擬化數(shù)據(jù)傳輸框架,用于管理共享內(nèi)存VRING; • VRING:由VirtIO管理的一個環(huán)形共享內(nèi)存; • Msgbox:全志提供的一套消息中斷機制,已與linux內(nèi)核中原生的mailbox框架適配; • MSGBOX_IRQ:Msgbox中斷; • RPMsg:基于VirtIO管理的共享內(nèi)存所實現(xiàn)一套少量數(shù)據(jù)傳輸?shù)目蚣埽?• RPbuf:全志基于RPMsg所實現(xiàn)一套大量數(shù)據(jù)傳輸?shù)目蚣堋?/font>
由上圖可知(以RISC-V核向A核發(fā)送數(shù)據(jù)為例),RPbuf首先將數(shù)據(jù)放置在DDR中,再將緩沖區(qū)首地址和大小通過RPMsg發(fā)送至A核(RPMsg將緩沖區(qū)首地址和大小放入VRING,然后請求Msgbox中斷,A核收到這個中斷后,在回調(diào)函數(shù)中使用RPMsg接口函數(shù)來從VRING中取出cmd)。 隨后A核從cmd handler中獲取緩沖區(qū)內(nèi)的地址和長度,最后在應(yīng)用層讀取數(shù)據(jù),從而完成雙核間的數(shù)據(jù)傳輸。 (2) 效果展示
![]()
由上圖測試效果可以看到,帶寬大約為27~30Mbps。 以上就是飛凌嵌入式T113i開發(fā)板RISC-V核部分外設(shè)的使用方法,是不是感覺和單片機的開發(fā)一樣簡單方便呢?點擊下左側(cè)在線客服,索取OK113i-S開發(fā)板的SDK及RISC-V核的資料。
|