ZHCUCF7
October
2024
TMS320C28341 , TMS320C28342 , TMS320C28343 , TMS320C28343-Q1 , TMS320C28344 , TMS320C28345 , TMS320C28346 , TMS320C28346-Q1
-
1
-
摘要
-
商標(biāo)
-
1簡介
-
2C28 到 C29 的 CPU 遷移
- 2.1
用例
- 2.2
主要差異
- 2.3
源代碼遷移
- 2.3.1
C/C++ 源代碼
- 2.3.1.1
pragma 和屬性
- 2.3.1.2
宏
- 2.3.1.3
內(nèi)聯(lián)函數(shù)
- 2.3.1.4
內(nèi)聯(lián)匯編
- 2.3.1.5
關(guān)鍵字
- 2.3.1.6
數(shù)據(jù)類型差異
- 2.3.1.7
遷移工具支持
- 2.3.2
匯編語言源代碼
- 2.4
工具鏈遷移
- 2.4.1
編譯器
- 2.4.2
鏈接器
- 2.4.3
CCS 工程遷移
-
3CLA 到 C29 的 CPU 遷移
- 3.1
用例
- 3.2
主要差異
- 3.3
源代碼遷移
- 3.3.1
C/C++ 源代碼
- 3.3.1.1
數(shù)據(jù)類型差異
- 3.3.1.2
遷移 CLAmath.h 函數(shù)和內(nèi)聯(lián)函數(shù)
- 3.3.1.3
將 C28 和 CLA 遷移到相同的 C29 CPU
- 3.3.1.4
將 C28 和 CLA 遷移到不同的 C29 CPU
- 3.3.2
匯編語言源代碼
- 3.4
工具鏈遷移
-
4參考資料
3.3.1.4 將 C28 和 CLA 遷移到不同的 C29 CPU
- 需要不同的 CCS 工程。
- 在 C28+CLA 實現(xiàn)中,CLA 任務(wù)可由硬件或軟件觸發(fā),并且在任務(wù)完成時,系統(tǒng)可能會向 C28 發(fā)送中斷。
- 要在這種情況下實現(xiàn)此目的,您需要在兩個 C29 CPU 之間使用 IPC。不過,IPC 在任一方向上最多有四個中斷,而我們可能有八個 CLA 任務(wù)。因此,可在任一方向上使用一個 IPC 中斷,并使用命令說明符來指示需要運行的任務(wù)或已完成的任務(wù)。這需要額外的代碼來解析 IPC 中斷并觸發(fā) ISR。
- 因此,對于軟件任務(wù)觸發(fā)器,您要將它們映射到 IPC 中斷,然后接收 C29 CPU 將運行 IPC ISR,并通過其 PIPE 觸發(fā)軟件中斷(通過寫入 PIPE 寄存器)來運行所需的 ISR。
- 對于硬件任務(wù)觸發(fā)器,將設(shè)置 C29 CPU 的 PIPE 以從所需的外設(shè)進(jìn)行觸發(fā)。
- 對于任務(wù)完成中斷,您需要將其映射到 IPC 中斷,然后接收 C29 CPU 將運行 IPC ISR,并通過其 PIPE 觸發(fā)軟件中斷來運行所需的 ISR。
- 如果 C28+CLA 實現(xiàn)中存在后臺任務(wù),則該任務(wù)可在 C29 CPU 中作為后臺循環(huán)(空閑循環(huán))輕松實現(xiàn)。
- CLA 寄存器為用戶提供了許多功能,例如能夠知道正在運行哪個任務(wù),以及能夠通過寫入寄存器中的特定位來停止一個任務(wù)。遷移時,由于缺少這些寄存器和對應(yīng)的功能,可能需要進(jìn)行適當(dāng)?shù)脑创a更新。