<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 采用非對稱(chēng)雙核 MCU 提高系統性能

采用非對稱(chēng)雙核 MCU 提高系統性能

作者: 時(shí)間:2013-12-30 來(lái)源:網(wǎng)絡(luò ) 收藏
采用非對稱(chēng)雙核 MCU 提高系統性能

Message RAM 僅僅作為 IPC 的數據緩存,IPC 還需借助于特定的控制邏輯電路來(lái)完成。如圖 6 所示,Master 子系統和 Control 子系統都是通過(guò) 5 個(gè)寄存器來(lái)實(shí)現 IPC 的邏輯流程控制:IPCACK、IPCSTS、IPCFLG、IPCCLR、IPCSET。這 5 個(gè)寄存器都是 32 位,每一個(gè) bit 對應于 IPC 的一個(gè)通道,因此最多可實(shí)現 32 個(gè)通道的握手通信。Bit0 到 Bit3 總共 4 個(gè)通道可以觸發(fā)消息接收方的 IPC 中斷,Bit4 到Bit31 共 28 個(gè)通道則需要消息接收方的軟件查詢(xún)來(lái)獲取 Message RAM 中是否收到數據。如果兩個(gè)內核之間僅僅傳遞狀態(tài)和控制信息(例如 RTOS 中的 Semaphore),僅通過(guò)以上寄存器便可以實(shí)現,而無(wú)需 Message RAM 的參與。

采用非對稱(chēng)雙核 MCU 提高系統性能

以下通過(guò)舉例 Master 子系統往 Control 子系統發(fā)送一幀數據,來(lái)簡(jiǎn)單介紹 IPC 模塊的操作流程。

1. Cortex-M3 先在 MTOC Message RAM 中寫(xiě)入一幀數據;

2. Cortex-M3 置位 MTOCIPCSET(CM3 映射存儲器區)的 Bit9,如圖 6 所示,此時(shí) MTOCIPCSTS(C28x 映射存儲器區)的 Bit9 也將置位;

3. C28x 輪詢(xún) MTOCIPCSTS 的 Bit9,查詢(xún)到 Bit9 已置位;(如果之前的操作是 Bit0 到 Bit3 其中之一, 則將觸發(fā) C28x 產(chǎn)生一個(gè) IPC 中斷)

4. C28x 讀 MTOC Message RAM 中的數據,此時(shí),Cortex-M3 成功將一幀數據發(fā)送至 C28x。

3.2 Shared RAM 內存區

大部分情況下,2K 字節的 IPC Message RAM 區能夠滿(mǎn)足 C28x 和 M3 子系統之間的數據通信,配合DMA,通信效率也可以進(jìn)一步提高。如果用戶(hù)希望一次性在兩個(gè)子系統傳遞更大塊的數據,另一種方法是通過(guò) Shared RAM 內存。

TMS320F28M35H52C 有一個(gè) 64K 字節大小的 Shared RAM 區,總共 8 塊 S0-S7,每塊 8K 字節大小,如圖 7 所示。Cortex-M3 可以設置讓任何一塊 Shared RAM 區由 C28x 或 M3 主控,比如,映射 S0 至C28x 側以后,C28x CPU 和 DMA 可以讀寫(xiě) S0,而 M3 和 uDMA 將只能讀 S0,不能寫(xiě)入和預取。

假如 Cortex-M3 需要一次性發(fā)送 6K 字節的數據到 C28x 側,它可以先將 Shared RAM 區 S0 映射到本地存儲器空間,接著(zhù)通過(guò) IPC 發(fā)送一個(gè)標志位給 C28x 來(lái)通知其可以將數據取走。

采用非對稱(chēng)雙核 MCU 提高系統性能

3.3 IPC 的軟件驅動(dòng)

controlSUITE 軟件開(kāi)發(fā)包中提供 2 種 IPC 的軟件驅動(dòng)庫,IPC Driver 和 IPC_Lite Driver。IPC_Lite Driver 僅使用 IPC 寄存器來(lái)實(shí)現通信,不需要額外的 RAM,但是用戶(hù)只能支持一個(gè) IPC 中斷服務(wù) ISR,且不支持以隊列形式來(lái)處理 IPC 請求。IPC_Lite Driver 使用方式如下:

采用非對稱(chēng)雙核 MCU 提高系統性能

采用非對稱(chēng)雙核 MCU 提高系統性能

1,主動(dòng)發(fā)起數據請求的內核會(huì )首先調用 IPC_Lite Driver 提供的名函數。在這個(gè)例子匯總,M3 是發(fā)送數據的內核并執行“IPCLiteMtoCDataRead” 函數。

? IPC_FLAG2 是 C28 中斷標志,指示 C28 內核一個(gè)消息到來(lái)。

? IPC_FLAG17 是響應標志,C28 用其指示 M3 核一個(gè)命令已經(jīng)被處理。

? 需要讀取數據的 C28 的地址也被作為一個(gè)參數傳遞給 C28 內核。

? 這個(gè)函數在 while 循環(huán)中被調用的原因是,它可能返回 STATUS_FAIL 并且不會(huì )發(fā)送信息給C28 直至 MtoC IPC 中斷 2 和標志 17 可用, 之后,該函數返回 STATUS_PASS.

2,被動(dòng)接收數據請求的內核會(huì )在 ISR 中解析其 IPCCOM寄存器的命令。這個(gè)例子中,C28 MtoCIPCINT2 ISR 知道標志置位,解析 MTOCIPCCOM寄存器的命令,識別出是讀數據命令。

3,被動(dòng)接收數據請求的內核會(huì )調用與主動(dòng)發(fā)起數據請求的內核相同的函數名。這個(gè)例子中,C28 執行 IPCLiteMtoCDataRead, IPC_FLAG2 作為中斷標志參數, IPC_FLAG17 作為狀態(tài)標志參數。

4,如果接收到命令有效,IPC_Lite 的驅動(dòng)函數會(huì )處理讀命令并確認(acknowledges)狀態(tài)和中斷標志。如果接收到的命令無(wú)效,則只有中斷標志被確認(acknowledged)用來(lái)釋放中斷給后續的命令,而狀態(tài)標志仍然置位。

IPC Driver 通過(guò)在 Message RAM 中建立環(huán)形緩沖區,使得多個(gè) IPC 通信命令可以以隊列的形式被緩沖,然后逐個(gè)處理,并且可以同時(shí)支持多個(gè) IPC 中斷服務(wù)程序 ISR,當然,IPC Driver 需要更多的RAM 來(lái)支持。和 IPC-Lite 不同,為了使用 IPC 驅動(dòng),需要在 M3 和 C28 的項目中增加一些設置。

第一步是在 M3 和 C28 的鏈接定位文件(.cmd)中添加 IPC 循環(huán)緩沖區和指針段到 CTOM和 MTOC message RAM。如下所示:

采用非對稱(chēng)雙核 MCU 提高系統性能

第二步,應用程序源碼中必須定義并且初始化至少一個(gè) volatile global tIpcController 變量 (為 C28 –M3 IPC 中斷使用),如下所示:

采用非對稱(chēng)雙核 MCU 提高系統性能

采用非對稱(chēng)雙核 MCU 提高系統性能

采用非對稱(chēng)雙核 MCU 提高系統性能



關(guān)鍵詞: MCU C2000 Concerto

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>