考慮以下事項有助于更好地理解一些關(guān)鍵問題
- 現(xiàn)有的 C28+CLA 開發(fā),以及如何開發(fā)系統(tǒng)代碼以在 C28 CPU 和 CLA 上運行。
- 是與 C28 代碼遷移到同一 C29 CPU,還是遷移到不同的 C29 CPU。兩種方案各有優(yōu)勢和挑戰(zhàn)。
- 從 CLA 遷移到 C29 時:
- 需要將 .cla 文件轉(zhuǎn)換為 .c 文件
- CLA 任務(wù)需要映射到 C29 CPU 上的中斷。
- 如果可能,請使用 RTINT 而不是 INT 來保存硬件上下文并實現(xiàn)出色的性能
- 由于 CLA 任務(wù)會運行至完成,而不會被搶占,因此為了實現(xiàn)類似的功能,可將中斷分配到一個組中。給定組內(nèi)的中斷不會搶占或嵌套進(jìn)該組內(nèi)的其他中斷。有關(guān)更多詳細(xì)信息,請參閱 F29x 器件特定技術(shù)參考手冊中的 PIPE 一章。
- CLA 后臺任務(wù)是可中斷的,所以如果該任務(wù)已啟用,它應(yīng)位于比其余 CLA 任務(wù)相對應(yīng)的組更低的嵌套組中。用戶可以考慮的另一個選項是將后臺任務(wù)功能移至 main() 中的空閑循環(huán)。
- 將消除 LSRAM 中的代碼和數(shù)據(jù)放置約束。對于 CLA,代碼和數(shù)據(jù)都必須駐留在 LSRAM 中。在 C29 器件上,可以遷移 CLA 代碼以在 LPAx RAM 上運行,并且數(shù)據(jù)可以駐留在 LDAx RAM 中。
- CLA 編譯器具有 C 語言的標(biāo)準(zhǔn)限制。TMS320C28x 優(yōu)化 C/C++ 編譯器 v22.6.0.LTS 用戶指南 的編譯器說明中提到了這些限制。例如,不支持定義和初始化全局/靜態(tài)數(shù)據(jù)。不支持使用函數(shù)指針。當(dāng)移至 C29 時,將會解除這些限制。
- CLA 編譯器支持 C28 pragma 和屬性的子集。從 CLA 移植到 C29 時,需要解決這些問題。
- 關(guān)鍵字 - 除了 C28 編譯器支持的 2 個關(guān)鍵字(far 和 ioport)之外,CLA 編譯器支持其他所有關(guān)鍵字。
- 有關(guān)更多信息,請參閱編譯器指南中討論遷移 CLA 源代碼的部分。