chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

電子發(fā)燒友App

硬聲App

掃碼添加小助手

加入工程師交流群

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

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>DSP>DSP編程技巧之建立main函數(shù)運行環(huán)境

DSP編程技巧之建立main函數(shù)運行環(huán)境

2017-10-20 | rar | 0.1 MB | 次下載 | 免費

資料介紹

  在一個C/C++程序能正常運行之前,相關(guān)的C/C++運行時(run-time)環(huán)境首先要正確建立。在CCS軟件編程的情況下,C/C++的實時運行庫RTS的源程序庫rts.src中包含了名為boot.c或者boot.asm的啟動程序(在一些TI的例子里,則使用了CodeStartBranch.asm來完成啟動工作,它會自動調(diào)用庫文件中的boot.asm),用于在系統(tǒng)啟動后調(diào)用c_int00函數(shù),并通過其中的操作來完成運行時環(huán)境的建立。通常情況下,c_int00函數(shù)位于rts2800.lib庫函數(shù)中的boot.obj(即TI官方編譯boot.c或者boot.asm生成的目標(biāo)文件)下,這也就是為什么我們在C28x編程的情況下通常要把rts2800.lib庫函數(shù)加入工程中的原因(其它器件則根據(jù)型號、系列添加對應(yīng)的庫文件;否則就會出現(xiàn)初學(xué)者經(jīng)常遇到的找不到boot.c之類的錯誤)。

  注:小型內(nèi)存模型含義是已初始化的段被鏈接至低 64Kw(字)可尋址空間內(nèi)的非易失性內(nèi)存,它使用rts2800.lib。對于定點器件,如果使用大內(nèi)存模型(超過64K字),則需要使用庫 rts2800_ml.lib;對于含有FPU的器件,用于標(biāo)準(zhǔn) C 語言代碼的為 rts2800_fpu32.lib,或者用于 C++ 代碼的 rts2800_fpu32_eh.lib(沒有針對浮點器件的較小內(nèi)存模型庫)。在 CCS v5/v6 中,有一個針對庫的“自動”設(shè)置,此設(shè)置可據(jù)項目的設(shè)置(例如,浮點支持和內(nèi)存模型選擇)讓 CCS 自動選擇正確的庫來使用。對于 DSP/BIOS 項目,DSP/BIOS 將負(fù)責(zé)將所需的庫包括在內(nèi),我們用戶不需要在項目中包含任何運行支持庫。

  如果在鏈接器選項中我們使用了--ram_model或者--rom_mode,則_c_int00函數(shù)自動被配置為整個程序執(zhí)行的入口點。此外,在CPU復(fù)位之后(相當(dāng)于一個軟件或者硬件的復(fù)位中斷),我們也可以把整個程序的入口點指向_c_int00,例如:

  .def _Reset

  .ref _c_int00

  _Reset: .vec _c_int00, USE_RETA

  則在執(zhí)行CPU復(fù)位操作之后,系統(tǒng)自動跳轉(zhuǎn)到_c_int00函數(shù)。

  在c_int00函數(shù)中完成的功能主要有:

  1. 設(shè)置/初始化CPU的狀態(tài)和配置寄存器。

  2. 為系統(tǒng)的棧定義一個.stack段,然后建立并初始化棧的指針。其中,棧需要被分配在單一的、連續(xù)的一段地址中,起始點為低地址,終點為高地址,棧指針SP的初始化值指向棧的頂端。

  3. 從初始化表中,把數(shù)據(jù)復(fù)制到.bss段中,從而初始化全局變量。如果使用了—ram_model選項在加載程序時就初始化變量,則在程序運行前,會首先運行一個加載程序來完成變量的初始化。如果使用了--rom_model選項,則使用.cinit中的運行時初始化表來完成變量的初始化。

  默認(rèn)情況下,鏈接器使用--rom_model選項,在程序運行時完成變量的自動初始化。在程序運行時,.cinit段和其它初始化的段會被一起加載到內(nèi)存中,從而使得C/C++的啟動程序可以自動把.cinit中的初始化表格復(fù)制到.bss段中,完成全局變量的自動初始化。這種方法的特點在于,初始化的表格可以被存放在更加便宜且大容量的ROM或者FLASH,而不是RAM中,并且可以在程序啟動時再自動加載到RAM中,這種方法在我們把程序燒寫到FLASH中再運行的時候是經(jīng)常使用的。關(guān)于Flash運行的更多信息,可以參考TI的的一個應(yīng)用報告:http://www.ti.com.cn/cn/lit/an/zhca550l/zhca550l.pdf,從 TMS320F28xxx 數(shù)字信號處理器 (DSP) 上的內(nèi)部閃存存儲器上運行一個應(yīng)用。

  如果使用—ram_model的鏈接器選項,則鏈接器會在.cinit段的開頭中配置STYP_COPY位(0010h),告訴加載器不要把.cinit段自動加載到內(nèi)存中,并且把cinit這個符號設(shè)置為-1(默認(rèn)情況下符號cinit指向初始化表格),從而向啟動程序表明,內(nèi)存中沒有初始化表格,在啟動時不需要執(zhí)行運行時的初始化工作。在這種情況下,需要我們自定義一個加載程序,從而在加載程序時就完成初始化,它的主要內(nèi)容包括:

  ü 在目標(biāo)文件中檢測.cinit段的存在;

  ü 在.cinit段的開頭配置STYP_COPY位,使得該段不會被自動復(fù)制到內(nèi)存中;

  ü 需要我們理解并正確遵循初始化表格的格式。

  這三個注意點貌似比較復(fù)雜,不過有讀者可能會問,我們在直接把程序通過JTAG下載到DSP的RAM中并運行的時候,貌似并沒有配置這么麻煩的步驟???那是因為CCS編程環(huán)境已經(jīng)幫我們承擔(dān)了這一重要任務(wù),在我們用仿真器來調(diào)試、運行的時候經(jīng)常會使用到這個方式。

  注意:在C/C++程序運行之前,一些全局變量必須被賦予初始值。在ANSI/ISO C中,未明確初始化的全局和靜態(tài)變量在程序執(zhí)行前都需要被初始化為0,C/C++的編譯器并不會對它們進行自動初始化。在把程序加載到RAM而不是ROM中的情況下,比較方便的方法是直接把.bss段初始化為0。

dsp
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1MDD品牌三極管BC807數(shù)據(jù)手冊
  2. 3.00 MB   |  次下載  |  免費
  3. 2MDD品牌三極管BC817數(shù)據(jù)手冊
  4. 2.51 MB   |  次下載  |  免費
  5. 3MDD品牌三極管D882數(shù)據(jù)手冊
  6. 3.49 MB  |  次下載  |  免費
  7. 4MDD品牌三極管MMBT2222A數(shù)據(jù)手冊
  8. 3.26 MB  |  次下載  |  免費
  9. 5MDD品牌三極管MMBTA56數(shù)據(jù)手冊
  10. 3.09 MB  |  次下載  |  免費
  11. 6MDD品牌三極管MMBTA92數(shù)據(jù)手冊
  12. 2.32 MB  |  次下載  |  免費
  13. 7STM32G474 HRTIME PWM 丟波問題分析與解決
  14. 1.00 MB   |  次下載  |  3 積分
  15. 8新能源電動汽車高壓線束的銅鋁連接解決方案
  16. 2.71 MB   |  次下載  |  2 積分

本月

  1. 1愛華AIWA HS-J202維修手冊
  2. 3.34 MB   |  37次下載  |  免費
  3. 2NB-IoT芯片廠商的資料說明
  4. 0.31 MB   |  22次下載  |  1 積分
  5. 3PC5502負(fù)載均流控制電路數(shù)據(jù)手冊
  6. 1.63 MB   |  22次下載  |  免費
  7. 4H110主板CPU PWM芯片ISL95858HRZ-T核心供電電路圖資料
  8. 0.63 MB   |  6次下載  |  1 積分
  9. 5UWB653Pro USB口測距通信定位模塊規(guī)格書
  10. 838.47 KB  |  5次下載  |  免費
  11. 6技嘉H110主板IT8628E_BX IO電路圖資料
  12. 2.61 MB   |  4次下載  |  1 積分
  13. 7蘇泊爾DCL6907(即CHK-S007)單芯片電磁爐原理圖資料
  14. 0.04 MB   |  4次下載  |  1 積分
  15. 8蘇泊爾DCL6909(即CHK-S009)單芯片電磁爐原理圖資料
  16. 0.08 MB   |  2次下載  |  1 積分

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935137次下載  |  10 積分
  3. 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計
  4. 1.48MB  |  420064次下載  |  10 積分
  5. 3Altium DXP2002下載入口
  6. 未知  |  233089次下載  |  10 積分
  7. 4電路仿真軟件multisim 10.0免費下載
  8. 340992  |  191439次下載  |  10 積分
  9. 5十天學(xué)會AVR單片機與C語言視頻教程 下載
  10. 158M  |  183353次下載  |  10 積分
  11. 6labview8.5下載
  12. 未知  |  81602次下載  |  10 積分
  13. 7Keil工具MDK-Arm免費下載
  14. 0.02 MB  |  73822次下載  |  10 積分
  15. 8LabVIEW 8.6下載
  16. 未知  |  65991次下載  |  10 積分