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

正文內(nèi)容

實(shí)時(shí)數(shù)字信號(hào)處理技術(shù)c6000軟件開發(fā)3代碼產(chǎn)生工具和-資料下載頁(yè)

2025-09-20 09:21本頁(yè)面

【導(dǎo)讀】軟件開發(fā)流程和開發(fā)工具。C編譯器對(duì)符合ANSI標(biāo)準(zhǔn)的C代碼進(jìn)行編譯,包括針對(duì)C代碼的一般優(yōu)化和針對(duì)C6000的優(yōu)化:。重新安排語(yǔ)句和表達(dá)式。把變量分配給寄存器。具有四個(gè)優(yōu)化級(jí)別。C代碼產(chǎn)生器也可以完成一些優(yōu)化工作。C優(yōu)化器最重要的優(yōu)化處理-軟件流水。把一個(gè)程序所有的C文件合成一個(gè)模塊進(jìn)。編程過(guò)程不需考慮:。效率可達(dá)匯編語(yǔ)言代碼的95%~100%. 文檔管理器管理的宏庫(kù)內(nèi)的宏。目標(biāo)代碼是TI的COFF格式。匯編代碼內(nèi)除機(jī)器指令外,還有匯編偽指令。根據(jù)用戶說(shuō)明的程序和數(shù)據(jù)存放地址,交叉引用列表工具。仿真結(jié)果與系統(tǒng)實(shí)。C程序的基本結(jié)構(gòu)。若從EPROM中加載要運(yùn)行的程序。中斷“掛”接也很方便。針對(duì)C6000的外設(shè)預(yù)定義了大量的外設(shè)。在main()中調(diào)用intr_reset()函數(shù)。C6000編譯器把整個(gè)存儲(chǔ)區(qū)當(dāng)作單個(gè)線。目標(biāo)存儲(chǔ)器的是連接器,而非編譯器。詳細(xì)說(shuō)明存儲(chǔ)器的使用情況。編譯器生成的可重定位的代碼和數(shù)據(jù)塊。初始化的段和未初始化段:。包括變量初始值和常量值.果常量沒有同時(shí)被聲明為volatile).包含所有的可執(zhí)行代碼.

  

【正文】 d, sum [count] SUB count, 1, count B loop .return sum .endproc .cproc 表示代碼開始 .return 給出返回值 NO NOPs required NO parallel instructions required NO functional units specified NO registers required .endproc 表示代碼結(jié)束 函數(shù)調(diào)用的參數(shù)傳遞和返回 ? “ pm” and “pn” 是 C代碼中定義的兩個(gè)指針,可用來(lái)完成對(duì)線性匯編代碼的調(diào)用 . ? C代碼中調(diào)用線性匯編編寫的點(diǎn)積程序 : int y = dotp (short* a, short* x, int count) ? 線性匯編代碼利用 .cproc來(lái)接收傳來(lái)參數(shù) : _dotp .cproc pm, pn, count ... .return y .endproc 變量聲明 ? 除了傳入的參數(shù),其它的變量可以如下進(jìn)行聲明 : .reg pm, pn, m, n, prod, sum ? 匯編優(yōu)化器完成將這些值分配給寄存器的工作 . 一個(gè)完整的線性匯編代碼舉例 ? Note: 線性匯編代碼會(huì)自動(dòng)返回,不需要跳轉(zhuǎn)指令 _dotp .cproc pm, pn, count .reg m, n, prod, sum ZERO sum loop LDH *pm++, m LDH *pn++, n MPY m, n, prod ADD sum, prod, sum [count] SUB count, 1, count B loop .return sum .endproc C程序和匯編語(yǔ)言接口 ? 使用獨(dú)立的匯編代碼模塊,并將其與編譯完的 C/C++模塊連接在一起 ? 在 C/C++源程序中內(nèi)聯(lián)函數(shù) (intrinsics),直接地調(diào)用匯編語(yǔ)句 ? 使用內(nèi)聯(lián)( inline) 匯編語(yǔ)言直接嵌入C/C++源程序 ? 在 C/C++源程序中使用匯編程序變量和常量 C代碼中調(diào)用匯編函數(shù) ? C and assembly functions 使用同樣的資源 (. registers). ? C and assembly functions 可以交換數(shù)據(jù) . ? 所以,關(guān)于數(shù)據(jù)和控制信息的交換及寄存器的共享有著相應(yīng)的規(guī)則 . main () { y = asmFunction (a, b)。 } _asmFunction b b3 C代碼中調(diào)用匯編函數(shù) ? 匯編代碼中使用 “ _” 來(lái)標(biāo)識(shí)在 C中聲明的變量和函數(shù) . ? Labels 需要聲明為global. int asm_Function (short, short)。 short x = 0x4000, y = 0x2020。 int z。 void main (void) { z = asm_Function (x, y)。 } int asm_Function (short a, short b) { int y。 y = (a * b) 1。 return y。 } .global _asm_Function C程序和匯編程序中的參數(shù)傳遞 ? C程序中調(diào)用匯編函數(shù)需要用到這些寄存器以傳遞參數(shù)和返回結(jié)果 . A B arg1/r_val arg3 arg5 arg7 arg9 ret addr arg2 arg4 arg6 arg8 arg10 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 0 C程序和匯編程序中的參數(shù)傳遞 ? 調(diào)用之前 . 0x4000 0x2020 4 5 6 7 8 A B 0x8000 0x2020 4 5 6 7 8 ? 調(diào)用之后 . C程序和匯編程序中的參數(shù)傳遞 問題 : ? C 程序會(huì)用到部分或者全部寄存器 . ? 匯編函數(shù)也可能用到部分或者全部寄存器 . ? 如果調(diào)用過(guò)程中不作相應(yīng)處理, C程序中的一些數(shù)據(jù)會(huì)在匯編函數(shù)調(diào)用中被破壞 . C程序和匯編程序中的參數(shù)傳遞 解決辦法 : ? 無(wú)論 C還是匯編程序,都需要對(duì)它們用到的寄存器原值進(jìn)行保存 . 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 0 A B C code automatically saves these registers Assembly code must save these registers responsibility of the programmer 內(nèi)聯(lián)函數(shù)( intrinsics) ? C6000編譯器可以識(shí)別若干內(nèi)聯(lián)函數(shù)。內(nèi)聯(lián)函數(shù)直接調(diào)用某些匯編語(yǔ)句,這些匯編語(yǔ)句在 C/C++中實(shí)現(xiàn)起來(lái)是很繁復(fù)或難以表達(dá)的。 內(nèi)聯(lián)( inline) 匯編語(yǔ)言 要很小心不要破壞 C/C++環(huán)境。對(duì)插入的匯編指令,編譯器不做任何檢查或者分析。 C/C++源程序使用匯編程序變量和常量 ? 訪問匯編語(yǔ)言中的全局變量 ? 訪問匯編語(yǔ)言中的常量 訪問匯編語(yǔ)言中的全局變量 ? 利用 .bss或者 .usect偽指令定義變量 ? .usect段中定義的變量,在 C中需要聲明為 far ? 利用 .def或者 .global偽指令使得變量可被外部訪問 ? 匯編語(yǔ)言中的變量前要加下劃線 ? C/C++中相應(yīng)變量要聲明為 extern,即可進(jìn)行訪問 訪問匯編語(yǔ)言中的常量 ? 利用偽指令 .set, .def 和 .global在匯編語(yǔ)言中定義一個(gè)常量 ? 正常變量在符號(hào)表中包含有其 地址 ? 匯編常量在符號(hào)表中包含的是其 數(shù)值 ? 編譯器不能區(qū)分那些是地址,那些是數(shù)值 ? 解決辦法: ? amp。 操作符
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1