www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當前位置:首頁 > 廠商動態(tài) > 米爾電子
[導讀]近年來,隨著半導體產(chǎn)業(yè)的快速發(fā)展和技術的不斷迭代,物聯(lián)網(wǎng)設備種類繁多(如智能家居、工業(yè)傳感器),對算力、功耗、實時性要求差異大,單一架構無法滿足所有需求。因此米爾推出MYD-YT113i開發(fā)板(基于全志T113-i)來應對這一市場需求。

近年來,隨著半導體產(chǎn)業(yè)的快速發(fā)展和技術的不斷迭代,物聯(lián)網(wǎng)設備種類繁多(如智能家居、工業(yè)傳感器),對算力、功耗、實時性要求差異大,單一架構無法滿足所有需求。因此米爾推出MYD-YT113i開發(fā)板(基于全志T113-i)來應對這一市場需求。

米爾基于全志T113-i核心板及開發(fā)板

一、 T113-i芯片及OpenAMP簡介

o T113-i芯片簡介

T113-i由兩顆ARM A7 、一顆C906(RISC-V)和一顆DSP(HIFI 4)組成。

· C906(RISC-V核)特性:

1. 主頻最高1008MHz

2. 32KB I-cache+32 KB D-cache

3. 操作系統(tǒng)支持裸跑和FreeRTOS實時操作系統(tǒng)

4. 支持少量數(shù)據(jù)核間通訊(RPMsg)和大量核間數(shù)據(jù)(RPBuf)

· DSP(HIFI 4)特性:

1. 最高主頻600MHz

2. 32KB L1 I-cache+32 KB L1 D-cache 64KB I-ram+64KB D-ram

3. 操作系統(tǒng)支持裸跑和FreeRTOS實時操作系統(tǒng)

4. 支持少量數(shù)據(jù)核間通訊(RPMsg)和大量核間數(shù)據(jù)(RPBuf)

o OpenAMP系統(tǒng)原理

T113-i=2×ARM A7 + 1×C906(RISC-V) + 1×DSP(HIFI 4)組成,其中兩個A7核為主核心,C906(RISC-V核)和DSP為雙副核心。而其中的RISC-V屬于超高能效副核心,標配內存管理單元,可運行RTOS或裸機程序,T113的主核運行Linux進行人機界面的交互和應用流程,而RISC-V則是后臺可進行大數(shù)據(jù)數(shù)據(jù)采集,或者相關編碼器的控制等,降低主核被中斷的次數(shù),大大提供了主核的運行效率。每個處理器核心相互隔離,擁有屬于自己的內存,既可各自獨立運行不同的任務,又可多個核心之間進行核間通信,這些不同架構的核心以及他們上面所運行的軟件組合在一起,就成了 AMP 系統(tǒng)(Asymmetric Multiprocessing System 異構多處理系統(tǒng))即非對稱多處理架構。

、 AMP系統(tǒng)通信機制詳解

o AMP通信原理

由于兩個核心存在的目的是協(xié)同的處理,因此在異構多處理系統(tǒng)中往往會形成Master-Remote結構。主核心啟動后啟動從核心。當兩個核心上的系統(tǒng)都啟動完成后,他們之間就通過IPC(Inter Processor Communication)方式進行通信,而 RPMsg就是IPC中的一種。

在AMP系統(tǒng)中,兩個核心通過共享內存的方式進行通信。兩個核心通過AMP中斷來傳遞訊息。內存的管理由主核負責。

o 使用 RPMsg進行核間通信

RPMsg整體通訊框架

上面介紹了通訊原理,這里講解如何通訊,AMP使用RPMsg框架進行通訊,該框架用于AMP場景下處理器之間進行相互通信。OpenAMP內部實現(xiàn)了可用于RTOS或裸機系統(tǒng)中的RPMsg框架,與Linux內核的RPMsg框架兼容。

其通信鏈路建立流程如下:

1. RTOS 端調用 rpmsg_create_ept 創(chuàng)建指定 name 的端點。

2. Linux 端 rpmsg core 層收到端點創(chuàng)建消息,調用 rpmsg_register_device 將其作為一個設備注冊到 rpmsg bus。

3. Linux 端 rpmsg bus 匹配到相應的驅動,觸發(fā)其 probe 函數(shù)。

4. Linux 端驅動 probe 函數(shù)完成一些資源的分配以及文件節(jié)點的生成。

5. Linux 端驅動的 probe 函數(shù)調用完后,rpmsg bus 會回復一個 ACK。

6. RTOS 端收到 ACK 后設置端點的狀態(tài),此時使用 is_rpmsg_ept_ready 函數(shù)會返回 true。

RPMsg數(shù)據(jù)傳輸流程如下:

下面展示一次RPMsg數(shù)據(jù)傳輸?shù)耐ㄐ胚^程,下面詳細說明:

1. arm端把數(shù)據(jù)拷貝到buffer中,在初始化時已經(jīng)將buffer和payload memory地址綁定,因此數(shù)據(jù)拷貝后相當于存放到了payloadmemory中。

2. 在消息傳輸命令后加上數(shù)據(jù)在payload memory中的起始地址和長度,組成數(shù)據(jù)包,調用RPMsg接口發(fā)送。

RPBuf:基于共享內存和RPMsg消息通知,實現(xiàn)傳輸大數(shù)據(jù)傳輸?shù)目蚣堋?

RPMsg:基于VirtIO管理的共享內存,實現(xiàn)數(shù)據(jù)傳輸?shù)目蚣堋?

VirtIO:原本是一套用在虛擬化環(huán)境中傳輸數(shù)據(jù)的框架,這里用作共享內存(VRING)的管理。

OpenAMP:OpenAMP框架為RTOS、裸機和Linux用戶空間提供了RPMsg、VirtIO、re-moteproc(未列出)的實現(xiàn),并且與Linux內核兼容。

Msgbox:是全志平臺提供的一套消息中斷機制,已通過linux內核中原生的mailbox框架作適配。

MSGBOX_IRO_REG:Msgbox的中斷相關寄存器。

buffer:表示申請到的共享內存。用戶通過操作buffer對象,可直接訪問對應的共享內存。payload memory:用來存放實際傳輸數(shù)據(jù)的共享內存,因此稱為payload(有效負載)。VRING:由Virtl0管理的一個環(huán)形共享內存。

三、 案例與性能測試

o A核與RISC-V核通訊流程

A核與RISC-V核通訊流程如下:

1. 首先監(jiān)聽端點

2. 創(chuàng)建端點

3. 節(jié)點通訊

linux向riscv發(fā)送

4. riscv接收數(shù)據(jù)

o A核與RISC-V核數(shù)據(jù)傳輸性能測試

A核與RISC-V核數(shù)據(jù)傳輸性能測試,使用rpmsg_test命令對rpmsg進行性能測試,測試發(fā)送方向和接收方向各自的耗時以及速率。

1. 主核測試結果:

2. 從核測試結果:

3. 通過輸出的結果可以得到:

[rpmsg1] send: 496.000000Kb 20.000000ms 24.799999M/s

[rpmsg1] receive : 496.000000Kb 9980.000000ms 0.049699Mb/s

發(fā)送496KB數(shù)據(jù)耗時20ms發(fā)送速率為24.79Mb/s

接收496KB數(shù)據(jù)耗時9980ms發(fā)送速率為0.049699Mb/s

o DSP GPADC采集測試

采集流程如下:

1. 開啟DSP

2. DSP核打印

3. 開啟DSP后,把GPADC0引腳接入1.8V電源,此時用戶可以執(zhí)行A核應用程序與DSP進行通訊,使DSP進行GPADC采集并返回數(shù)據(jù)

可以看到GPADC0收的電壓數(shù)據(jù)為1792,轉換為電壓值為:1792/1000=1.792V。

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯(lián)系該專欄作者,如若文章內容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀
關閉