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

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

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





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