資料介紹
在DSP的開發(fā)中,常用的算法都可以用C/C++代碼來高效實(shí)現(xiàn)。但是對(duì)一些特殊寄存器的讀寫,例如某些CPU寄存器的讀寫,因?yàn)镃/C++代碼無法直接對(duì)其訪問,仍然需要使用匯編代碼進(jìn)行操作。此外,在一些對(duì)代碼執(zhí)行時(shí)間要求很嚴(yán)格的算法,例如很多個(gè)點(diǎn)的FFT、IFFT中,匯編代碼的高效仍然是C/C++所不能替代的。這些就涉及到了C/C++代碼與匯編代碼的接口問題,在此我們就來了解一下它們是如何交互的。首先要遵循以下的九大原則:
1. 所有的函數(shù)(不管是C/C++的還是匯編的)都要遵循特定的寄存器約定
寄存器約定用來規(guī)定編譯器如何使用寄存器,主要指的CPU/FPU的寄存器(因?yàn)樗鼈冊(cè)诔绦蜻\(yùn)行中是反復(fù)使用的),并且在函數(shù)調(diào)用前后如何保存寄存器的值。保存寄存器值的方法分為在函數(shù)入口處保存和在調(diào)用時(shí)保存,前者是由被調(diào)用的函數(shù)來完成的,后者則是由調(diào)用別的函數(shù)的函數(shù)來完成的。在TMS320C28x編譯器中,使用如下的規(guī)則,如表1、表2所示。通過表1、2,我們還可以對(duì)CPU/FPU的寄存器有進(jìn)一步的理解,這樣以后再看到寄存器的名字時(shí)就不至于一頭霧水了。

表1 CPU寄存器使用和保留的約定

表2 FPU寄存器使用和保留的約定
編譯器對(duì)CPU的狀態(tài)寄存器ST中的某些位也有一定的約定,如表3、表4所示;沒有列在表中的狀態(tài)寄存器的位則不受編譯器的影響。對(duì)其中的某些位,編譯器會(huì)假設(shè)它們?cè)诤瘮?shù)調(diào)用或者返回時(shí)具有特定的假想值;在系統(tǒng)初始化建立C語言的實(shí)時(shí)運(yùn)行環(huán)境時(shí),這些位也會(huì)被初始化為特定的假象值。
掃碼添加小助手
加入工程師交流群
- TMS320LF240x DSP的C語言和匯編代碼快速入門
- C++ Socket網(wǎng)絡(luò)編程大全源代碼下載 27次下載
- DSP載波移相控制C語言源代碼下載 58次下載
- C5000 DSP系列器件的多通道匯編代碼處理的詳細(xì)資料概述 7次下載
- 如何從TMS320C54X到TMS320C55X的代碼遷移詳細(xì)英文資料概述 10次下載
- TMS320C54x匯編語言工具C/C++編譯器的功能優(yōu)化詳細(xì)概述 10次下載
- 匯編語言與C語言整合至DSP的方法 5次下載
- 淺談關(guān)于DSP6000中C/C++語言和匯編語言的混合編程的方法 1次下載
- 從匯編代碼訪問C全局變量 0次下載
- DSP編程技巧之五大使用代碼優(yōu)化的問題解析 3次下載
- C標(biāo)準(zhǔn)庫源代碼 21次下載
- DSP匯編語言編程基礎(chǔ)
- 報(bào)警產(chǎn)生器小程序 (C語言+匯編程序源代碼)
- C代碼在TMS320C54X上的手工匯編優(yōu)化
- TMS320C6000 系列DSP 的C 代碼優(yōu)化方法
- C語言代碼的常用技巧 1.2k次閱讀
- armasm編譯匯編代碼鏈接失敗的問題分析 2k次閱讀
- C語言代碼規(guī)范 1.9k次閱讀
- C與C++混合編程是什么 2.9k次閱讀
- 如何寫要被C調(diào)用的匯編函數(shù) 2k次閱讀
- 基于LabVIEW和單片機(jī)實(shí)現(xiàn)DSP應(yīng)用程序代碼的自舉模塊設(shè)計(jì) 2.5k次閱讀
- C和匯編代碼結(jié)合 是實(shí)現(xiàn)DSP軟件設(shè)計(jì)的最好方式 4k次閱讀
- 嵌入式C代碼編碼習(xí)慣要遵循哪些規(guī)則 3.9k次閱讀
- C語言程序內(nèi)存布局該關(guān)注哪些內(nèi)容 1.2k次閱讀
- 了解“預(yù)編譯、編譯、匯編、鏈接”這四個(gè)過程對(duì)你有很大幫助 3.6w次閱讀
- 學(xué)習(xí)開發(fā)環(huán)境和編程語言:匯編語言和C語言的比較 9.7k次閱讀
- C51讀寫AT24C04源代碼及AT24C04測試程序 2.8w次閱讀
- 學(xué)嵌入式能不能只用C寫程序? 6.5k次閱讀
- STC12C5A60S2可編程時(shí)鐘模塊及系統(tǒng)省電模塊代碼 1.3w次閱讀
- 快速傅里葉變換FFT的C程序代碼實(shí)現(xiàn) 6.3w次閱讀
下載排行
本周
- 1MDD品牌三極管BC807數(shù)據(jù)手冊(cè)
- 3.00 MB | 次下載 | 免費(fèi)
- 2MDD品牌三極管BC817數(shù)據(jù)手冊(cè)
- 2.51 MB | 次下載 | 免費(fèi)
- 3MDD品牌三極管D882數(shù)據(jù)手冊(cè)
- 3.49 MB | 次下載 | 免費(fèi)
- 4MDD品牌三極管MMBT2222A數(shù)據(jù)手冊(cè)
- 3.26 MB | 次下載 | 免費(fèi)
- 5MDD品牌三極管MMBTA56數(shù)據(jù)手冊(cè)
- 3.09 MB | 次下載 | 免費(fèi)
- 6MDD品牌三極管MMBTA92數(shù)據(jù)手冊(cè)
- 2.32 MB | 次下載 | 免費(fèi)
- 7STM32G474 HRTIME PWM 丟波問題分析與解決
- 1.00 MB | 次下載 | 3 積分
- 8新能源電動(dòng)汽車高壓線束的銅鋁連接解決方案
- 2.71 MB | 次下載 | 2 積分
本月
- 1愛華AIWA HS-J202維修手冊(cè)
- 3.34 MB | 37次下載 | 免費(fèi)
- 2NB-IoT芯片廠商的資料說明
- 0.31 MB | 22次下載 | 1 積分
- 3PC5502負(fù)載均流控制電路數(shù)據(jù)手冊(cè)
- 1.63 MB | 22次下載 | 免費(fèi)
- 4H110主板CPU PWM芯片ISL95858HRZ-T核心供電電路圖資料
- 0.63 MB | 6次下載 | 1 積分
- 5UWB653Pro USB口測距通信定位模塊規(guī)格書
- 838.47 KB | 5次下載 | 免費(fèi)
- 6技嘉H110主板IT8628E_BX IO電路圖資料
- 2.61 MB | 4次下載 | 1 積分
- 7蘇泊爾DCL6907(即CHK-S007)單芯片電磁爐原理圖資料
- 0.04 MB | 4次下載 | 1 積分
- 8蘇泊爾DCL6909(即CHK-S009)單芯片電磁爐原理圖資料
- 0.08 MB | 2次下載 | 1 積分
總榜
- 1matlab軟件下載入口
- 未知 | 935137次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計(jì)
- 1.48MB | 420064次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233089次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191439次下載 | 10 積分
- 5十天學(xué)會(huì)AVR單片機(jī)與C語言視頻教程 下載
- 158M | 183353次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81602次下載 | 10 積分
- 7Keil工具M(jìn)DK-Arm免費(fèi)下載
- 0.02 MB | 73822次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65991次下載 | 10 積分
電子發(fā)燒友App





創(chuàng)作
發(fā)文章
發(fā)帖
提問
發(fā)資料
發(fā)視頻
上傳資料賺積分
評(píng)論