一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

C2000 CLA的使用與常見CLA內存問題的解決方案

星星科技指導員 ? 來源:TI ? 作者:Chen Yang, Benjamin Z ? 2023-03-21 10:15 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

CLA(Control Law Accelerator)控制率加速器是一個獨立可編程的32位浮點數(shù)字處理單元,為快速觸發(fā)響應及數(shù)學運算而設計。CLA獨立于C28x CPU工作,時鐘頻率與CPU相同,可執(zhí)行算法以及周期性的計算工作。通過增加平行的處理單元CLA,拓展了C28x CPU的性能。當前C2000系列產(chǎn)品共有3種類型的CLA, 不同的C2000型號對應不同的CLA類型, 各類型的差別及對應的C2000器件型號詳情如圖1所示。Type 2型的CLA可直接讀取ADC 結果寄存器,極大減小ADC采樣至輸出的延時,提高系統(tǒng)的響應并允許系統(tǒng)以更高的頻率運行;并且可直接操作所有的Epwm,HRPWM,eCAP,eQEP,CMPSS,DACSDFM,PGA,SPI,LIN,F(xiàn)SI,PMBUS,CLB和GPIO數(shù)據(jù)寄存器;CLA可獨立地響應外設中斷。利用CLA執(zhí)行一些周期性任務可以解放CPU,使其工作于其他系統(tǒng)任務。

poYBAGQZEx-ASkp1AAKgkoiS9Hk289.png

圖1 CLA類型及對應C2000器件

CLA的使用包括初始化設置和任務定義。初始化由CPU完成,包括程序內存和數(shù)據(jù)內存分配,任務的觸發(fā)配置;Type 2型CLA提供 8個獨立的任務(也可配置為7個獨立的任務和1個底層持續(xù)運行的任務),這些任務類似中斷服務函數(shù),由中斷觸發(fā)并運行至任務結束,并且可配置在任務完成時產(chǎn)生中斷, CLA 框圖如圖2所示。

pYYBAGQZEyCAeTwMAAE3JaNWpVc462.png

圖2 CLA框圖

CLA可訪問RAMLS0-LS7 區(qū)塊的內存,并且每個塊可以配置為CPU專用或CPU與CLA之間共享數(shù)據(jù)。這些內存塊復位時默認分配給CPU,需要由CPU初始化后才可用于與CLA共享數(shù)據(jù)。如果這些內存塊被配置為數(shù)據(jù)共享的,則可進一步配置為程序內存或數(shù)據(jù)內存,程序內存用于存放CLA的程序代碼,數(shù)據(jù)內存用于存放供CLA程序使用的變量和系數(shù),并且有專用的消息內存MSG RAMs用于在CPU和CLA之間傳遞數(shù)據(jù), CLA的Memory及寄存器操作方式描述如圖3所示。

poYBAGQZEyGAYcT_AAGbFg07xTo084.png

圖3 CLA Memory及寄存器操作

CLA的初始化是在軟件初始化期間由CPU執(zhí)行,主要包括6個步驟:

從Flash中復制CLA 任務代碼至CLA 程序內存中

分配CLA數(shù)據(jù)內存

配置CLA寄存器:包括使能CLA時鐘;分配CLA任務函數(shù)地址;選擇任務觸發(fā)源;根據(jù)需要使能軟件觸發(fā)任務;映射CLA程序內存和數(shù)據(jù)內存到CLA空間

PIE中配置CLA任務完成中斷的服務函數(shù)

在MIER寄存器中使能CLA任務觸發(fā)

初始化觸發(fā)源外設,使其能觸發(fā)CLA任務

在CLA開發(fā)過程中,工程師往往專注于代碼層面對CLA初始化,CLA_task的配置以及算法設計,忽略了更為底層的問題——CMD文件中CLA內存分配問題。不合理的內存分配可能會導致編譯報錯及內存溢出。

本博文將舉例使用TI的TMS320F280049進行CLA開發(fā)時,由于內存分配錯誤導致的具體報錯。

本例中在完成了CLA初始化,CLA_task的中斷函數(shù)配置后,點擊編譯CCS報43個“#17003-D” warnings,如圖4:

pYYBAGQZEyKAGc32AAQxuVQfGbw533.png

圖4 #17003-D Warning

Description Resource Path Location Type:

#17003-D relocation to symbol "CLAscratch_end" overflowed; the 6-bit relocated address 0xee is too large to encode in the 16-bit unsigned field (type = 'R_ABS16_OC' (107), file = "../xxxxxxx", offset = 0x00000312, section = "Cla1Prog")

警告顯示CLAscratch_end內存溢出,問題定位至CMD文件,檢查CMD中與scratch相關的內存分配, 如圖5。

poYBAGQZEyOASbx5AAEfIZZzGLE273.png

圖5 CMD文件scratchpad描述

發(fā)現(xiàn)僅有.scrathpad分配至RAMLS1,并未找到CLAscratch_end以及對CLA_SCRATCHPAD_SIZE的定義

于是,打開.map文件判斷是否分配了__cla_scratchpad_end/start,在.map文件中搜索scratchpad如圖6所示。

poYBAGQZEyOAQA6eAAIGG4QLcSE691.png

圖6 .map文件中cla_scratchpad_end描述

如圖6,在.map中僅僅找到__cla_scratchpad_end,可以判斷工程使用了scratchpad但是并沒有__cla_scratchpad_start的內存分配。

至此找到了問題原因,解決方案就是需要在CMD文件中對scratchpad進行相關配置, 如圖7所示。

參考配置如下:

①在CMD文件的頭部添加以下代碼,如圖所示

CLA_SCRATCHPAD_SIZE=0x100;

--undef_sym=__cla_scratchpad_end

--undef_sym=__cla_scratchpad_start

pYYBAGQZEySARZZsAALYjsdKzCc230.png

圖7 scratchpad配置

②在CMD文件的SECTIONS{}代碼部分的末尾添加以下代碼

CLAscratch:

{*.lib(CLAscratch)

.+=CLA_SCRATCHPAD_SIZE;

*.lib(CLAscratch_end)}>RAMLS1,

PAGE=1

再次編譯,#17003-D警告已經(jīng)消失,編譯通過,結果如圖8所示。

pYYBAGQZEyWAPHBKAAA8T9agdLE819.png

圖8 修改CMD后編譯結果

此時,再次查看.map文件,發(fā)現(xiàn)__cla_scratchpad_end/start以及CLA_SCRATCHPAD_SIZE已經(jīng)成功分配,如圖9所示。

poYBAGQZEyaALrsbAAECULiW2AA694.png

poYBAGQZEyaAYbYVAAD-vr_CApM233.png

poYBAGQZEyeAAuyqAADZtmQg0xc602.png

圖9 修改CMD文件編譯生成.map文件圖

以上就是關于“#17003-D warning”的解決方案,希望通過這個例子,讓廣大工程師在CLA開發(fā)時能夠注意到CMD對CLA內存正確配置的重要性,防止在實際開發(fā)時遇到問題,難以排查。

審核編輯:郭婷

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 寄存器
    +關注

    關注

    31

    文章

    5433

    瀏覽量

    124395
  • cpu
    cpu
    +關注

    關注

    68

    文章

    11075

    瀏覽量

    216975
  • adc
    adc
    +關注

    關注

    99

    文章

    6689

    瀏覽量

    549138
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    CLA系列

    Cla
    銀河電氣
    發(fā)布于 :2025年07月11日 15:49:07

    請問有什么辦法可以改變28035CLA內存嗎?使得內存中可以放置更多的數(shù)組?

    本帖最后由 一只耳朵怪 于 2018-6-14 11:47 編輯 在28035CLA中定義了一個數(shù)組,發(fā)現(xiàn)數(shù)組過大時,CLA無法進入中斷,但是查看.map文件內存尚有剩余,把數(shù)組減小,C
    發(fā)表于 06-14 07:18

    關于CLA使用時編譯出現(xiàn)的unresolved symbol的錯誤及因此產(chǎn)生的警告

    specification的時候,你需要修改以下鏈接器的配置:打開CCS,按下述步驟操作:Project Properties -> C2000 Linker -> Advanced Options -> Command File Preprocessing -> --define附圖如下:
    發(fā)表于 03-11 17:49

    C2000浮點運算CPU和CLA計算差異的解決

    double類型數(shù)執(zhí)行一次加法耗時33個cycle。三、結論1. C2000的CPU和CLA默認的舍入模式不同,在計算浮點數(shù)時可能會得到不同的結果,但是我們可以通過代碼改變其舍入模式得到相同的結果。2.
    發(fā)表于 03-26 06:45

    28069芯片的CLA工作不正常怎么辦

    /question_answer/microcontrollers/c2000/f/56/t/76270.aspx 中介紹的方法,但是CLA看起來一直沒有正常工作。在連接CLA,載入symbols之后,運行CPU
    發(fā)表于 05-20 14:46

    28035的CLA在CCS3.3上調試的插件哪里有

    試的CCS插件?另外,咨詢一下,C2000系列的DSP內部是否包含有自身信息? 比如,一片28035的芯片,內部是否存有28035這一型號代碼、還有生產(chǎn)批次之類的信息? 如何讀取出來?我們項目使用到不同型號的DSP,希望自己制作的下載器能夠自動識別芯片型號,而不至于下載到錯誤的目標板。
    發(fā)表于 06-10 08:25

    關于“#17003-D warning”的解決方案

    ,可執(zhí)行算法以及周期性的計算工作。通過增加平行的處理單元CLA,拓展了C28x CPU的性能。當前C2000系列產(chǎn)品共有3種類型的CLA, 不同的C
    發(fā)表于 11-07 07:35

    TI官方推出的產(chǎn)品FAQ系列文檔,該系列為在CCS上調試C2000 CLA 常見問題解答(FAQ)集錦

    TI官方推出的產(chǎn)品FAQ系列文檔,該系列為在CCS上調試C2000 CLA 常見問題解答(FAQ)集錦
    發(fā)表于 09-20 13:53 ?11次下載
    TI官方推出的產(chǎn)品FAQ系列文檔,該系列為在CCS上調試<b class='flag-5'>C2000</b> <b class='flag-5'>CLA</b> <b class='flag-5'>常見</b>問題解答(FAQ)集錦

    TI C2000 CLA 常見問題解答(FAQ)集錦

    TI C2000 CLA 常見問題解答(FAQ)集錦
    發(fā)表于 09-20 13:58 ?15次下載
    TI <b class='flag-5'>C2000</b> <b class='flag-5'>CLA</b> <b class='flag-5'>常見</b>問題解答(FAQ)集錦

    如何在CCS上調試C2000 CLA FAQ

    CLA調試從CCS 4.02上開始提供。 如果你有一個較早的版本,那么請下載最新版或者檢查軟件更新。
    發(fā)表于 04-04 09:16 ?6次下載
    如何在CCS上調試<b class='flag-5'>C2000</b> <b class='flag-5'>CLA</b> FAQ

    C2000系列有關CLA常見問題專業(yè)解答

    1. CLA 是什么? CLA 是一款與主 CPU 并行運行的 32 位浮點數(shù)學加速器。 2. CLA 獨立于主 CPU 之外嗎?是的。 一旦 CLA 被主 CPU 配置,它可以獨立于
    發(fā)表于 03-11 08:00 ?13次下載

    C2000 CLA的使用與常見CLA內存問題及解決方案

    的計算工作。通過增加平行的處理單元CLA,拓展了C28x CPU的性能。當前C2000系列產(chǎn)品共有3種類型的CLA, 不同的C2000型號對
    的頭像 發(fā)表于 01-12 17:25 ?6527次閱讀
    <b class='flag-5'>C2000</b> <b class='flag-5'>CLA</b>的使用與<b class='flag-5'>常見</b><b class='flag-5'>CLA</b><b class='flag-5'>內存</b>問題及<b class='flag-5'>解決方案</b>

    C2000 CLA的使用與常見CLA內存問題的解決方案

    C2000 CLA的使用與常見CLA內存問題的解決方案
    發(fā)表于 10-28 12:00 ?4次下載
    <b class='flag-5'>C2000</b> <b class='flag-5'>CLA</b>的使用與<b class='flag-5'>常見</b><b class='flag-5'>CLA</b><b class='flag-5'>內存</b>問題的<b class='flag-5'>解決方案</b>

    AN013 CLA方波濾波器設計方案

    AN013 CLA方波濾波器設計方案
    發(fā)表于 02-23 19:07 ?0次下載
    AN013 <b class='flag-5'>CLA</b>方波濾波器設計<b class='flag-5'>方案</b>

    展示TIC2000? CLA的獨特功能的軟件示例

    電子發(fā)燒友網(wǎng)站提供《展示TIC2000? CLA的獨特功能的軟件示例.pdf》資料免費下載
    發(fā)表于 09-02 09:54 ?0次下載
    展示TIC<b class='flag-5'>2000</b>? <b class='flag-5'>CLA</b>的獨特功能的軟件示例