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

正文內(nèi)容

接口技術(shù)_3嵌入式程序設(shè)計(jì)語(yǔ)言-全文預(yù)覽

  

【正文】 *((unsigned char *)0xF000FF00) = 11。 65 基于 ARM的嵌入式系統(tǒng)接口技術(shù) 數(shù)據(jù)指針 在嵌入式系統(tǒng)的實(shí)際調(diào)試中,多借助 C語(yǔ)言指針?biāo)哂械膶?duì)絕對(duì)地址單元內(nèi)容的讀寫(xiě)能力,用指針直接操作內(nèi)存。如: const int x = 1。 ifndef 標(biāo)識(shí)符 程序段 1 else 程序段 2 endif 在嵌入式系統(tǒng)軟件開(kāi)發(fā)中,經(jīng)常會(huì)包含多個(gè)頭文件,而這些頭文件中可能又還有包含的頭文件,這樣可能會(huì)造成重復(fù)定義。 6) 還有一些常量的定義,如 define TRUE 1,把 1用 TRUE表示,使程序讀起來(lái)更加直觀。也有些寄存器是存放 8位的字節(jié)數(shù)據(jù)的,則定義的時(shí)候使用 unsigned char;如實(shí)時(shí)時(shí)鐘 RTC的存放時(shí)間的寄存器: define rBCDMIN (*(volatile unsigned char *)0x57000074) //分鐘寄存器 例題中的語(yǔ)句②定義的存儲(chǔ)器地址,因?yàn)橹挥糜诖鎯?chǔ)一個(gè)字節(jié),因此定義的時(shí)候也使用 U8 (unsigned char)。如本節(jié)例題中的語(yǔ)句②③④。例如: include 。標(biāo)準(zhǔn)頭文件就是按 dos系統(tǒng)的環(huán)境變量所指定的目錄順序搜索頭文件,也就是我們通常說(shuō)的到系統(tǒng)指定的目錄去搜索頭文件,即按標(biāo)準(zhǔn)方式檢索。i)。i)。 for(。子程序代碼 MOV R15,R14 。 …… BL func 。子程序調(diào)用完返回后執(zhí)行的語(yǔ)句 , 返回地址 …… func 。 BL asse_add 。ARM匯編中不加 “ :”, GNU ARM匯編中用 “ :” ADD r0, r0, r1 。 數(shù)字變量前面有一個(gè)代換操作符 “ $”,編譯器會(huì)將該數(shù)字變量的值轉(zhuǎn)換為十六進(jìn)制的字符串,并用該十六進(jìn)制的字符串代換 “ $”后的數(shù)字變量。 例如: IF {ARCHITECTURE} = “4T” 匯編語(yǔ)言程序的變量 45 基于 ARM的嵌入式系統(tǒng)接口技術(shù) 變量 含義 {PC}或 . 當(dāng)前指令的地址 {VAR}或 存儲(chǔ)區(qū)位置計(jì)數(shù)器的當(dāng)前值 {TRUE} 邏輯常量真 {FALSE} 邏輯常量假 {OPT} 當(dāng)前設(shè)置列表選項(xiàng)值 , OPT用來(lái)保存當(dāng)前列表選項(xiàng) ,改變選項(xiàng)值 , 恢復(fù)它的原始值 {CONFIG} 如果匯編器匯編 ARM代碼 , 則值為 32;如果匯編器匯編 Thumb代碼 , 則值為 16 {ENDIAN} 如果匯編器在大端模式下 , 則值為 big;如果匯編器在小端模式下 , 則值為 little 匯編語(yǔ)言程序的變量 內(nèi)置變量 46 基于 ARM的嵌入式系統(tǒng)接口技術(shù) {CODESIZE} 如果匯編器匯編 ARM代碼 , 則值為 32;如果匯編器匯編 Thumb代碼 , 則值為 16, 與 {CONFIG}同義 {CPU} 選定的 CPU名 , 缺省時(shí)為 ARM7TDMI {FPU} 選定的 FPU名 , 缺省時(shí)為 SoftVFP {ARCHITECTURE} 選定的 ARM體系結(jié)構(gòu)的值; 3, 3M, 4, 4T和 4TxM {PCSTOREOFFSET} STR pc, [… ]或 STM Rb, [… PC]指令的地址和 PC存儲(chǔ)值之間的偏移量 {ARMASM_VERSION} 或 | ads $ version | ARM匯編器的版本號(hào) , 為整數(shù) 匯編語(yǔ)言程序的變量 內(nèi)置變量(續(xù)) 47 基于 ARM的嵌入式系統(tǒng)接口技術(shù) 3. 常量 十進(jìn)制,如: 123, 1, 0 十六進(jìn)制,如: 0x123,0xab,0x7b n_XXX, n表示 n進(jìn)制,從 2~ 9: XXX是具體的數(shù) 字符常量:由單引號(hào)及中間的字符組成,包括 C語(yǔ)言中的轉(zhuǎn)義字符,如 ’ a’,’\n’ 字符串:由一對(duì)雙引號(hào)及雙引號(hào)之間字符串組成,并包含 C中的轉(zhuǎn)義字符。 匯編語(yǔ)言程序的編程規(guī)則 42 基于 ARM的嵌入式系統(tǒng)接口技術(shù) 1. 預(yù)定義變量 ARM匯編器對(duì) ARM的寄存器進(jìn)行了預(yù)定義 , 所有的寄存器和協(xié)處理器名都是大小寫(xiě)敏感的 。 注釋從“ 。一般以字母開(kāi)頭,由字母、數(shù)字、下劃線(xiàn)組成。 在 ARM匯編語(yǔ)言源程序中,除了標(biāo)號(hào)和注釋外,指令、偽指令和指示符都必須有前導(dǎo)空格,而不能頂格書(shū)寫(xiě)。ARM源程序文件(簡(jiǎn)稱(chēng)為源文件)可以由任意一種文本編輯器來(lái)編寫(xiě)程序代碼,它一般為文本格式。arg為宏參數(shù) 36 基于 ARM的嵌入式系統(tǒng)接口技術(shù) 常用偽操作的用法 14. 文件包含偽操作 文件包含偽操作,將一個(gè)源文件包含到當(dāng)前源文件中,并將被包含的文件在其當(dāng)前位置進(jìn)行匯編處理;也有一類(lèi)文件包含偽操作,被包含文件不進(jìn)行匯編處理。標(biāo)號(hào)可選 例如: DataS SPACE 100 。字?jǐn)?shù)據(jù) dst DCD 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 LDR R0,=src …… .lt 定義數(shù)據(jù)緩沖池 , 存放在 src開(kāi)始的地址處 src: .LONG 1,2,3,4,5,6,7,8,1,2,3,4,5,6,7,8,1,2,3,4 dst: .LONG 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 32 基于 ARM的嵌入式系統(tǒng)接口技術(shù) 常用偽操作的用法 10. 數(shù)據(jù)定義偽操作 數(shù)據(jù)定義偽操作,用于特定的數(shù)據(jù)分配存儲(chǔ)單元 ,也可以完成已分配存儲(chǔ)單元的初始化。 聲明全局標(biāo)號(hào),用于在程序中聲明一個(gè)全局的標(biāo)號(hào),該標(biāo)號(hào)可在其他的文件中引用,標(biāo)號(hào)在程序中區(qū)分大小寫(xiě)。 28 基于 ARM的嵌入式系統(tǒng)接口技術(shù) 常用偽操作的用法 6. 對(duì)齊方式設(shè)置偽操作 對(duì)齊方式設(shè)置,通過(guò)添加填充字節(jié)的方式,使當(dāng)前位置滿(mǎn)足一定的對(duì)齊方式。 ARM: END 語(yǔ)法格式: END GNU: .end 語(yǔ)法格式: .end 常常省略不用 END 。第一段代碼中 , ARM匯編定義段屬性 .section .text, x 第二段代碼中 , GNU匯編定義段屬性 24 基于 ARM的嵌入式系統(tǒng)接口技術(shù) 常用偽操作的用法 GNU: .section 語(yǔ)法格式: .section .段名 {,”標(biāo)志 ” } 標(biāo)志:各段有缺省標(biāo)志, ELF格式允許的段標(biāo)志如表 31所示: 表 31 ELF格式允許的段標(biāo)志 GNU匯編中,有些段名是匯編系統(tǒng)預(yù)定義的,如: .text, 代碼段; .data, 初始化數(shù)據(jù)段; .bss, 未初始化數(shù)據(jù)段等,每個(gè)段以段名開(kāi)始,以下一個(gè)段名或者文件結(jié)尾為結(jié)束。 例如在 ① 。 ARM: EQU、 SETA 語(yǔ)法格式:標(biāo)號(hào)名稱(chēng) EQU/SETA expr(,type) expr可以是 32位整形常量、基于寄存器的地址值、程序相對(duì)的地址、絕對(duì)地址。 ( 10) GET(或 INCLUDE)用于將一個(gè)文件包含到當(dāng)前源文件。 ( 6) EXPORT(或 GLOBAL)用于聲明符號(hào)可以被其他文件引用。 ( 2) ALIGN用于使程序當(dāng)前位置滿(mǎn)足一定的對(duì)齊方式。 ( 1) ARM或 CODE32指示編譯器將要處理的是32位的 ARM指令。 ( 2)診斷信息報(bào)告?zhèn)尾僮?INFO。 ( 4) MEXIT用來(lái)在宏結(jié)束前退出宏定義。常用的匯編控制偽操作包括如下 4種。 ( 7) SPACE用于分配一片連續(xù)的存儲(chǔ)單元。 ( 3) DCD( DCDU)用于分配一片連續(xù)的字存儲(chǔ)單元并用指定的數(shù)據(jù)初始化。 17 基于 ARM的嵌入式系統(tǒng)接口技術(shù) 常用偽操作的分類(lèi) 2. 數(shù)據(jù)定義偽操作 數(shù)據(jù)定義偽操作用于為特定的數(shù)據(jù)分配存儲(chǔ)單元,同時(shí)可完成已分配存儲(chǔ)單元的初始化。 ( 1)用于定義全局變量的 GBLA、 GBLL和 GBLS。第一段代碼是 ARM匯編集成開(kāi)發(fā)環(huán)境所支持的偽操作,第二段代碼是GNUARM匯編集成開(kāi)發(fā)環(huán)境所支持的偽操作。 另一種是集成了 GNU開(kāi)發(fā)工具的 IDE集成開(kāi)發(fā)環(huán)境( GNU ARM ASM),它由 GNU的匯編器 as、交叉編譯器 gcc、和鏈接器 ld等組成,與 ARMASM略有不同。 編寫(xiě) C語(yǔ)言程序,用掃描顯示的方法,在六只數(shù)碼管上顯示出 0,1, 2, 3, 4, 5。 嵌入式 C語(yǔ)言 的基本知識(shí)。 5. ARM9微處理器的 尋址方式 ?;?ARM的 嵌入式系統(tǒng)接口技術(shù) 廣東省嶺南職業(yè)技術(shù)學(xué)院 電子信息工程學(xué)院 主講:陳衛(wèi)東 第三章 嵌入式程序設(shè)計(jì)語(yǔ)言 3 基于 ARM的嵌入式系統(tǒng)接口技術(shù) 回顧 1. 處理器內(nèi)核 和 處理器核 的概念。 4. ARM9存儲(chǔ)相關(guān)的概念。 ARM匯編程序 的編程規(guī)則。 7 基于 ARM的嵌入式系統(tǒng)接口技術(shù) 引導(dǎo)問(wèn)題 ( 1) ARM匯編和 GNU ARM支持的偽操作如何使用? ( 2)嵌入式 C語(yǔ)言編程與普通的 C語(yǔ)言相比,有哪些特點(diǎn)? ( 3)如何在程序中實(shí)現(xiàn)匯編和 C語(yǔ)言混合編程? ( 4) ARM匯編如何調(diào)用 C語(yǔ)言代碼? 8 基于 ARM的嵌入式系統(tǒng)接口技術(shù) 工作場(chǎng)景二 ARM C語(yǔ)言程序 編寫(xiě) C語(yǔ)言程序,用掃描顯示的方法,在六只數(shù)碼管上顯示出 0, 1, 2, 3, 4, 5。 一種是第一章介紹的 ADS/SDT IDE集成開(kāi)發(fā)環(huán)境( ARMASM),它由 ARM公司開(kāi)發(fā),使用了CodeWarrior公司的編譯器,絕大多數(shù) windows下的開(kāi)發(fā)者都在使用這一環(huán)境,它完全按照 ARM的規(guī)定開(kāi)發(fā)。之所以完成同樣功能的程序代碼的偽操作不同,是因?yàn)樗麄冇玫木幾g開(kāi)發(fā)環(huán)境不同。常用的符號(hào)定義偽操作有如下 4種。 ( 4)為通用寄存器列表定義名稱(chēng)的 RLIST。 ( 2) DCW( DCWU)用于分配一片連續(xù)的半字存儲(chǔ)單元并用指定的數(shù)據(jù)初始化。 ( 6) DCQ( DCQU)用于分配一片以 8字節(jié)為單位的連續(xù)的存儲(chǔ)單元并用指定的數(shù)據(jù)初始化。 18 基于 ARM的嵌入式系統(tǒng)接口技術(shù) 常用偽操作的分類(lèi) 3. 匯編代碼控制偽操作 匯編代碼控制偽操作用于控制匯編程序的執(zhí)行流程。 ( 3) MACRO、 MEND這二個(gè)符號(hào)連用,定義一個(gè)宏定義。 ( 1)錯(cuò)誤信息報(bào)告?zhèn)尾僮?ASSERT。 20 基于 ARM的嵌入式系統(tǒng)接口技術(shù) 常用偽操作的分類(lèi) 5. 指令集類(lèi)型標(biāo)識(shí)偽操作 指令集類(lèi)型標(biāo)識(shí)偽操作用來(lái)告訴編譯器所處理的是 32位的 ARM指令還是 16位的 Thumb指令,常用的指令集類(lèi)型標(biāo)識(shí)偽操作包括有兩種。 ( 1) AREA用于定義一個(gè)代碼段或數(shù)據(jù)段。 ( 5) EQU用于定義字符名稱(chēng)。 ( 9) EXTERN用于通知編譯器要使用的標(biāo)號(hào)在其他的源文件中定義,但要在當(dāng)前源文件中引用。例如在第二章 ①,用到了 EQU偽操作。定義變量 NumCount ① 23 基于 ARM的嵌入式系統(tǒng)接口技術(shù) 常用偽操作的用法 2. 段屬性定義的偽操作 段屬性定義 , 用于定義一個(gè)代碼段或數(shù)據(jù)段 , 或開(kāi)始一個(gè)新的代碼段或數(shù)據(jù)段 。定義數(shù)據(jù)段 AREA TEST1,CODE,READONLY 。第一段代碼中 , ARM匯編入口點(diǎn)聲明 _start: 第二段代碼中 , GNU匯編入口點(diǎn)聲明 26 基于 ARM的嵌入式系統(tǒng)接口技術(shù) 常用偽操作的用法 4. 源程序結(jié)尾標(biāo)識(shí)偽操作 源程序結(jié)尾標(biāo)識(shí),用于通知匯編程序它已到達(dá)源文件的末尾,例如在 句③。 GNU: .arm、 .thumb、 .code 語(yǔ)法格式: .arm(.thumb) 或者使用 .code: .code16/.code32 …… 設(shè)定指令寬度, 16表示 Thumb指令, 32表示 ARM指令。聲明字對(duì)齊 29 基于 ARM的嵌入式系統(tǒng)接口技術(shù) 常用偽操作的用法 7. 聲明全局標(biāo)號(hào)偽操作 在 ARM和 C語(yǔ)言混合編程時(shí),經(jīng)常要用到全局標(biāo)號(hào)聲明,例如下面的代碼段。 ARM: IMPORT或 EXTERN 語(yǔ)法格式: IMPORT/EXTERN {符號(hào) } {[WEAK],[attr]} GNU: .extern 語(yǔ)法格式: .extern 符號(hào) 符號(hào)為要聲明的外部變量名稱(chēng) 31 基于 ARM的嵌入式系統(tǒng)接口技術(shù) 常用偽操作的用法 9. 聲明數(shù)據(jù)緩沖池偽操作 ARM: LTORG 語(yǔ)法格式: LTORG GNU: .lt 語(yǔ)法格式: .lt ……
點(diǎn)擊復(fù)制文檔內(nèi)容
規(guī)章制度相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1