freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

dsp原理與應(yīng)用---第9章ccs(編輯修改稿)

2025-01-25 12:03 本頁面
 

【文章內(nèi)容簡介】 用規(guī)則 ? C編譯器如何使用 DSP的寄存器 ? 函數(shù)進入和返回前,寄存器的保護 ? 函數(shù)調(diào)用規(guī)則 ? 函數(shù)間的參數(shù)傳遞通過寄存器和系統(tǒng)堆棧進行 ? 調(diào)用函數(shù)與被調(diào)用函數(shù)必須對各自的寄存器進行保護 ? 從被調(diào)用函數(shù)返回前,被調(diào)用函數(shù)必須歸還所有已占用的堆??臻g ? C和 ASM混合編程 ? C和 ASM混合編程時,必須遵循寄存器使用規(guī)則和函數(shù)調(diào)用規(guī)則 ? 被 C調(diào)用的 ASM函數(shù),其函數(shù)名前應(yīng)加“ _” ? 中斷服務(wù)程序 ? ASM編寫的中斷服務(wù)程序必須對所有用到寄存器進行保護,以免破壞 C運行環(huán)境 ? C編寫的中斷服務(wù)程序應(yīng)用 interrupt關(guān)鍵字聲明 C運行環(huán)境 ? 系統(tǒng)初始化 ? 在運行 C程序前,必須建立 C運行環(huán)境,此任務(wù)由 C引導(dǎo)程序 _c_int00完成 ? _c_int00包含在庫函數(shù)中, build時自動將其鏈接進可執(zhí)行程序中,程序的入口地址必須設(shè)為 _c_int00起始地址 ? _c_int00的源程序存放在由 中,用戶可根據(jù)需要修改 ?設(shè)置堆棧指針 ?初試化全局變量:將 .cinit”段“中數(shù)據(jù)拷貝到 .bss”段“中 ?調(diào)用 C程序的主函數(shù) main() 軟件編譯流程 .CPP file .ASM file .C file .ASM file .ASM file .OBJ file Assembler .OBJ file .OBJ file .OUT file .HEX file Linker ? 目標(biāo)文件地址是浮動的,能被重定位 ? 鏈接器用 .cmd文件對鏈接目標(biāo),進行重定位 ? 列出目標(biāo)文件、庫文件和鏈接器選項 ? 用 MEMORY命令描述目標(biāo)系統(tǒng)存儲空間配置 ? 用 SECTIONS命令描述“段”如何定位 ? Hex轉(zhuǎn)換程序也使用 cmd文件,配置轉(zhuǎn)換選項 中斷向量表 .ref _timer0_isr .ref _exint4_isr .ref _exint6_isr .ref _c_int00 .global RESET_RST .sect vectors“ RESET_RST: mvkl .S2 _c_int00, B0 mvkh .S2 _c_int00, B0 B .S2 B0 NOP 5 NMI_RST: NOP 8 RESV1: NOP 8 RESV2: NOP 8 INT4: b _exint4_isr NOP 7 INT5: NOP 8 INT6: b _exint6_isr NOP 7 INT7: NOP 8 INT8: NOP 8 INT9: NOP 8 INT10: NOP 8 INT11: NOP 8 INT12: NOP 8 INT13: NOP 8 INT14: b _timer0_isr NOP 7 INT15: NOP 8 C 語言語法接近自然語言,其可讀性強、便于理解,在編制、修改、實現(xiàn)算法方面比用匯編語言開發(fā)容易。 匯編語言掌控系統(tǒng)硬件的能力強于 C 語言,設(shè)計出來的程序更加貼近硬件特性,能將硬件效能發(fā)揮到極致。 因此,一般情況下用 C 語言設(shè)計應(yīng)用程序的總體框架、解決人機接口和對速度效率要求不太高的復(fù)雜算法,用匯編語言設(shè)計強調(diào)速度的算法。 混合語言編程 C語言和匯編語言的混合編程有三種形式: 1. 在編寫 C語言代碼中插入?yún)R編語句,只需在匯編語句兩邊加上雙引號和括號,在括號前面加上標(biāo)識 asm,如: asm(“ NOP 5”); 2. 在編寫 C代碼的過程中調(diào)用直接映射為內(nèi)聯(lián)的 C6000指令的特殊函數(shù),內(nèi)聯(lián)函數(shù)用前下劃線表示,使用時同調(diào)用C語言的庫函數(shù)一樣調(diào)用它,如: m = _int_abs(n); 3. 用匯編代碼編寫?yīng)毩⒌暮瘮?shù),在 C代碼中直接調(diào)用 混合編程的方法 1. 采用 C語言和匯編語言混合編程時,定義了一套嚴(yán)格的寄存器規(guī)則,調(diào)用函數(shù)保護了寄存器 A0~A9和 B0~B9,但當(dāng)使用到寄存器 A10~A15或 B10~B15的時候,則必須自行對它們進行保護。在默認(rèn)情況下: A3用作返回結(jié)構(gòu)指針寄存器 B3用作被調(diào)用函數(shù)返回地址寄存器 A15用作幀指針寄存器 B14用作數(shù)據(jù)頁指針寄存器 B15用作堆棧指針寄存器 混合編程的接口規(guī)范 2. 調(diào)用函數(shù)將參數(shù)傳遞到被調(diào)用函數(shù)中,前十個參數(shù)將被從左到右依次放入寄存器 A B A B A B AB A12和 B12, 如果傳遞的參數(shù)是長型、雙精度型或者是長雙精度型,則將參數(shù)依次放入寄存器組 A5: A B5:B A7: A6等,并將剩下的變量按相反的順序放在堆棧里。注意,如果傳遞的參數(shù)是一個結(jié)構(gòu)類型的參數(shù),則傳遞的是該結(jié)構(gòu)類型的地址。 3. 如果在 C/C++調(diào)用函數(shù)中做了正確的函數(shù)返回聲明,則被調(diào)用的匯編函數(shù)可以返回有效值。如果返回值是整型或 32位的浮點型,則放在寄存器 A4中返回;如果返回值是雙精度或是長雙精度型,則放在 A5: A4中返回;如果返回值是一個結(jié)構(gòu)類型,則將其結(jié)構(gòu)的地址放在 A3中返回。 混合編程的接口規(guī)范 4. 對于只在匯編語言模塊中用到的變量的標(biāo)識符,不能從下劃線開始。 任何一個在匯編語言中聲明的對象都要使其在 C/C++中是可訪問的,那么在匯編語言中必須用 .def 或 .global將其聲明為外部變量。 同樣在匯編語言中要引用 C/C++函數(shù)或?qū)ο髸r,必須用 .ref或 .global將 C/C++對象聲明。 中斷子程序必須把該子程序?qū)⒁玫降乃屑拇嫫鬟M行入棧處理; 除了全局變量的初始化外,匯編語言的模塊不得因為任何目的而使用 .cinit段; 匯編代碼的結(jié)束需用指令 “ B B3” 將程序執(zhí)行從被調(diào)用函數(shù)返回到 C語言調(diào)用函數(shù)中。 混合編程的接口規(guī)范 打開工程 ,可以看到該工程包含如下文件: ?: C語言編寫的主程序文件,調(diào)用使用匯編語言編寫的延時程序 asm_delay()函數(shù)進行精確延時 ?:匯編語言編寫的延時函數(shù) 示例 0903 混合編程示例程序 芯片支持庫 CSL ? 為什么要設(shè)計 CSL ? DSP片上外設(shè)種類及其應(yīng)用日趨復(fù)雜 ?提供一組標(biāo)準(zhǔn)的方法用于訪問和控制片上外設(shè) ?免除用戶編寫配置和控制片上外設(shè)所必需的定義和代碼 ? 什么是 CSL: Chip Support Library ?用于配置、控制和管理 DSP片上外設(shè) ?已為 C6000和 C5000系列 DSP設(shè)計了各自的 CSL庫 ? CSL庫函數(shù)大多數(shù)是用 C語言編寫的,并已對代碼的大小和速度進行了優(yōu)化 ? CSL庫是可裁剪的:即只有被使用的 CSL模塊才會包含進應(yīng)用程序中 ? CSL庫是可擴展的:每個片上外設(shè)的 API相互獨立,增加新的 API,對其他片上外設(shè)沒有影響 CSL 的特點
點擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1