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