嵌入式實(shí)驗(yàn)報(bào)告_第1頁(yè)
嵌入式實(shí)驗(yàn)報(bào)告_第2頁(yè)
嵌入式實(shí)驗(yàn)報(bào)告_第3頁(yè)
嵌入式實(shí)驗(yàn)報(bào)告_第4頁(yè)
嵌入式實(shí)驗(yàn)報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩11頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、實(shí)驗(yàn)項(xiàng)目名稱嵌入式實(shí)驗(yàn)實(shí)驗(yàn)成績(jī)實(shí) 驗(yàn) 者馬行亮專業(yè)班級(jí)通信0803組 別同 組 者實(shí)驗(yàn)日期 年 月 日一、實(shí)驗(yàn)?zāi)康?. 掌握 S3C44B0 GPIO 口的使用;2. 檢測(cè) S3C44B0 外部中斷管腳 EXTINT4,5,6,7 輸入,然后控制 LED 燈3. 測(cè)試 S3C44B0 內(nèi)部集成的 RTC 實(shí)時(shí)時(shí)鐘功能4. 測(cè)試 S3C44B0X 的 PWM 輸出。二、實(shí)驗(yàn)內(nèi)容1. LED 跑馬燈實(shí)驗(yàn)2. 鍵盤(pán)控制 LED 實(shí)驗(yàn)3. RTC 實(shí)時(shí)時(shí)鐘實(shí)驗(yàn)4. Beep 音樂(lè)程序三、實(shí)驗(yàn)原理(1)S3C44B0 一共包含 PORTA, PORTB, PORTC, PORTD, PORTE(2)S3

2、C44B0通過(guò)集成全面、通用的片內(nèi)外設(shè),大大減少了系統(tǒng)電路中除處理器外的器件需求,從而最小化系統(tǒng)成本。下列是其集成的邊內(nèi)外設(shè):1. 外部存儲(chǔ)器控制器(FP/EDO/SDRAM控制器,片選邏輯)2. LCD 控制器(最大支持256色STN,LCD具有一個(gè)專用的DMA通道)3. 2個(gè)通用DMA通道,2 個(gè)外設(shè)DMA通道并有片外請(qǐng)求管腳4. 2個(gè)UART,帶有握手協(xié)議(支持irDA1.0,具有16字節(jié)FIFO)1 通道SIO5. IIC多主總線接口6. IIS總線控制器7. 5個(gè)PWM 定制器和1通道內(nèi)部定時(shí)器8. 看門(mén)狗定時(shí)器9. 71個(gè)通用I/O口,作多支持8各片外中斷源10. 功耗管理:普通,

3、慢速,空閑和停止模式11. 8通道10 位ADC 12. 具有日立功能的RTC13. 帶PLL的片內(nèi)時(shí)鐘發(fā)生器 (3)S3C44B0 支持 8 個(gè)外部中斷源,分別是 ExINT0ExINT7,其中 ExINT4,5,6,7 中斷線在中斷控制器內(nèi)部是共享一個(gè)中斷的,當(dāng)這幾個(gè)中斷發(fā)生時(shí),我們需要查詢 EXTINTPND(外部中斷標(biāo)志寄存器)積存器來(lái)判斷到底是哪個(gè)或者是哪幾個(gè)產(chǎn)生了中斷,再執(zhí)行相應(yīng)的操作。電路上面,4 個(gè) 14 鍵盤(pán)分別接在外部中斷 4,5,6,7 上。在處理中斷的時(shí)候我們需要慣性以下幾個(gè)寄存器:1 INTMOD (中斷模式寄存器)指定每個(gè)中斷源的模式,是 IRQ 還是 FIQ。2

4、INTCON (中斷控制寄存器)主要控制當(dāng)前的中斷模式使能,包括使能 IRQ 中斷,F(xiàn)IQ 中斷和 Vector 中斷。3 INTPND (中斷標(biāo)志寄存器)標(biāo)志當(dāng)前產(chǎn)生中斷的中斷源。4 EXTINT (外部中斷控制寄存器)控制外部中斷的觸發(fā)模式,是電平觸發(fā)(高低電平)還是邊沿觸發(fā)(正跳變,負(fù)跳變或是正負(fù)跳變)5 EXTINTPND (外部中斷標(biāo)志寄存器)標(biāo)志當(dāng)前產(chǎn)生中斷的 ExINT4,5,6,7。S3C44B0 內(nèi)部集成了 RTC 實(shí)時(shí)時(shí)鐘管理,片外只要接一個(gè) 32.768K 的晶體和一個(gè)電池就能夠完成實(shí)時(shí)時(shí)鐘功能。并且內(nèi)部提供了一組相關(guān)的寄存器,使用起來(lái)相當(dāng)方便(4)IIS(Inter-I

5、C Sound bus)又稱 I2S,是菲利浦公司提出的串行數(shù)字音頻總線協(xié)議。目前很多音頻芯片和 MCU 都提供了對(duì) IIS 的支持。 S3C44B0 學(xué)習(xí)板上有一個(gè)無(wú)源蜂鳴器,其由 S3C44B0 的 PWM 輸出控制。無(wú)源蜂鳴器與有源蜂鳴器的區(qū)別是在于其內(nèi)部不帶有信號(hào)發(fā)生電路,必須由外保護(hù)輸入一定頻率的信號(hào)來(lái)驅(qū)動(dòng)。本程序就是利用了這一點(diǎn),通過(guò)間斷地改變 PWM 的輸出頻率以使得無(wú)源蜂鳴器發(fā)出不同頻率的聲音。四、S3C44B0 試驗(yàn)說(shuō)明S3C44B0 學(xué)習(xí)板附帶了以下的例程,這樣大家可以快速的掌握 S3C44B0 這款 ARM 芯片以及如何開(kāi)發(fā)基于 ARM 的嵌入式程序。本光盤(pán)中自帶的例程都

6、是在 ADS1.2 集成開(kāi)發(fā)環(huán)境下完成的。ADS1.2 是 Code Warriar 公司開(kāi)發(fā)的一款A(yù)RM 嵌入式程序集成開(kāi)發(fā)環(huán)境。 在使用光盤(pán)中的試驗(yàn)例程之前我們需要做以下的準(zhǔn)備工作安裝 ADS1.2 安裝調(diào)試代理將程序從光盤(pán)拷貝到硬盤(pán)中,并去掉文件的只讀屬性。一、安裝 ADS1.2將安裝包其解壓后,雙擊 setup.exe 開(kāi)始安裝,在拷貝文件結(jié)束后將出現(xiàn) ARM License Wizard界面,如下圖,在這里需要安裝 license 文件。點(diǎn)擊下一步,選擇 Install License,點(diǎn)擊下一步。在這里選擇安裝目錄下的 Crack 下的 license.dat 文件然后點(diǎn)擊下一步完

7、成認(rèn)證。認(rèn)證過(guò)程也可以在軟件安裝完畢后選擇 License Installation Wizard 來(lái)重新認(rèn)證。二、安裝 H-JTAG 調(diào)試代理將 光盤(pán):工具JTAG 工具H-JTAG+V0.7.0.rar 目錄拷貝到硬盤(pán),然后解壓縮,安裝解壓目錄下的可執(zhí)行文件。從開(kāi)始菜單選擇AXD Debugger,如圖進(jìn)入調(diào)試環(huán)境后,選擇如下選項(xiàng)進(jìn)入代理選擇對(duì)話框,如下:選擇Add按鈕,找到H-JTAG的安裝目錄,添加調(diào)試代理的DLL庫(kù),如下選擇確定后,選擇Configure,出現(xiàn)如下界面,表示H-JTAG代理安裝正確并作為缺省選擇。確定后,按OK鍵,如果JTAG調(diào)試器和開(kāi)發(fā)板連接正確,會(huì)出現(xiàn)如下界面到這

8、一部H-JTAG配置正確,可以直接從編譯環(huán)境直接進(jìn)入調(diào)試環(huán)境調(diào)試,如下圖:三、試驗(yàn) 在做以下試驗(yàn)的時(shí)候請(qǐng)注意,如果你的 Memory 控制部分沒(méi)有正常的初始化,在 AXD 調(diào)入編譯好的 images 后,我們執(zhí)行 run 指令,程序會(huì)跑飛。其原因就是因?yàn)?Memory 控制沒(méi)有正常的初始化,這是后我們有兩種方法解決。1.將 U-Boot 先燒入到 Flash 當(dāng)中,這樣每次上電 U-Boot 程序都將初始化好我們的硬件,當(dāng)然也包括了 Memory 控制器。這樣我們的測(cè)試程序就能夠正常的運(yùn)行。2.使用命令行來(lái)執(zhí)行 Memory 控制器的初始化,將 光盤(pán):測(cè)試程序44b0.INI 文件拷貝到硬盤(pán)中

9、,在這里我們拷貝到 C:盤(pán)更目錄下。然后打開(kāi) AXD 的命令行窗口,執(zhí)行 obey c:44b0.ini指令。這樣就初始化好了 Memory 控制器,然后我們?cè)僦匦抡{(diào)入 image,再執(zhí)行就好了。參看下圖。五、實(shí)驗(yàn)步驟試驗(yàn)一 LED 跑馬燈實(shí)驗(yàn):先將工程目錄拷貝到本地硬盤(pán),去掉所有文件的只讀屬性。將 JTAG 板子跳線到 Wiggler 接口,連接到學(xué)習(xí)板上,點(diǎn)擊 AM7.exe 運(yùn)行調(diào)試代理軟件,JTAG 連接正常后應(yīng)該顯示如下畫(huà)面。(當(dāng)然也可以選擇 Sdt 的接口方式,但一定要和 JTAG 小板上的 Wiggler 和 STD 的跳線選擇一致,我們?cè)谶@里選擇 Wiggler 接口方式來(lái)完成

10、我們的實(shí)驗(yàn)。)1.打開(kāi)工程2.運(yùn)行 ADS1.2點(diǎn)擊菜單 File-Open 選擇工程目錄下的 led.mcp 工程文件(.mcp 文件是ADS 的工程文件),打開(kāi)工程,界面如下:上圖是 LED 跑馬燈程序源碼樹(shù),SRC 目錄中存放了匯編和 C 的源碼,INC 目錄存放了匯編與 C 頭文件。led_Data 目錄是項(xiàng)目輸出目錄,其中一共包含 Debug, DebugRel 與 Release 三個(gè)目錄,剛好對(duì)應(yīng)于項(xiàng)目工程的三種配置,我們當(dāng)前使用的是 DebugRel 配置。 對(duì)于 DebugRel 的配置我們主要關(guān)心以下幾個(gè)參數(shù)的設(shè)置,參看下圖在下拉菜單中選中 DebugRel為當(dāng)前配置,點(diǎn)擊

11、旁邊的配置設(shè)置按鈕彈出設(shè)置框。在項(xiàng)目配置對(duì)話框中選擇ARM Linker-Output選項(xiàng)卡,確認(rèn)RO Base(只讀數(shù)據(jù)段的起始地址,也就是代碼段其實(shí)地址)填入SDRAM的地址(這里我們填入了 0x0C000000, 學(xué)習(xí)板的SDRAM一共 8M字節(jié),地址范圍為 0x0C0000000x。RO Base地址是我們程序代碼放置地址,由于是通過(guò)JTAG下載到SDRAM中調(diào)試,所以這個(gè)地址一定要填寫(xiě)SDRAM中的地址)。接下來(lái)我們選擇Options選項(xiàng)卡,如下圖:在 ARM Linker - Options 選項(xiàng)卡中,我們需要填入的是Image entry point(程序的入口地址)。這里我們填

12、寫(xiě)的地址與 RO Base相同,也就是說(shuō)程序是從代碼段基地址開(kāi)始執(zhí)行的。然后我們?cè)俅蜷_(kāi)ARM Linker-Layout選項(xiàng)卡進(jìn)行設(shè)置,如下圖:這樣設(shè)置好后,我們相當(dāng)如設(shè)置了程序的代碼段其實(shí)地址,程序入口地址以及哪個(gè)目標(biāo)文件中的哪個(gè)段放在代碼段的起始的地方,如下圖,起始地址是 0x0C000000,代碼段起始地址 0x0C000000, 將vector.o 目標(biāo)文件的 SelfBoot 段放在代碼段的起始地方。我們可以打開(kāi) vector.s 文件看到如下這一段代碼,其中就有名為 SelfBoot 的代碼段。編譯 :接下來(lái)編譯跑馬燈工程,點(diǎn)擊編譯快捷按鈕,如下圖。編譯后將會(huì)有輸出信息,包括錯(cuò)誤,

13、警告等。如果編譯成功,可以看到各個(gè)段的大小等信息。調(diào)試:點(diǎn)擊 Debug 快捷按鈕,將打開(kāi) AXD Debug 環(huán)境。如果出現(xiàn)以下這樣的提示,是因?yàn)?AXD 對(duì)于一個(gè)工程的調(diào)試將會(huì)有一個(gè) session 文件來(lái)保存當(dāng)前的調(diào)試環(huán)境配置,如果出現(xiàn)這個(gè)表示當(dāng)前的調(diào)試環(huán)境配置找不到,點(diǎn)擊確定后在選擇.ses 文件對(duì)話框選擇直接選擇取消就好了。在AXD調(diào)試界面下選擇菜單Options-Configure Target,如下圖,打開(kāi)Target配置窗口硬件仿真選擇 ADD,軟件仿真選擇第二項(xiàng) ARMUL。在這里我們選擇 ADD,如果是第一次使用 AXD 作硬件仿真,選擇 ADD 項(xiàng)后點(diǎn)擊 Configur

14、e 進(jìn)一步配置。配置完成后選擇AXD 的菜單 File-Load Image,裝載待調(diào)試的程序。此例子中我們工程的目錄結(jié)構(gòu)如下:DebugRel 目錄就是當(dāng)前工程配置對(duì)應(yīng)的輸出目錄,led.axf(ELF 格式的)文件是編譯后程序 Image,ObjectCode 是存放編譯過(guò)程中產(chǎn)生的目標(biāo)文件的存放目錄。(注 DebugRel, OjbectCode 目錄都是建立工程的時(shí)候自動(dòng)生成的,不需要用戶手動(dòng)創(chuàng)建。)顯然,led.axf 就是我們要選擇的 Image 文件。選擇led.axf 文件,程序被調(diào)入到 AXD 調(diào)試環(huán)境當(dāng)中,如下圖:程序指針執(zhí)行第一條語(yǔ)句,在 AXD 環(huán)境中調(diào)試程序和大多數(shù)的

15、調(diào)試環(huán)境一樣,我們可以設(shè)置斷點(diǎn),單步執(zhí)行,查看變量的值等等。本試驗(yàn)程序的效果是 LED1, LED2, LED3 輪流閃爍,我們可以通過(guò)修改延時(shí)的參數(shù)開(kāi)控制閃爍的頻率。打開(kāi) main.c 文件修改下列宏#define LEDTEST_DELAY 500000 我們可以方便的控制閃爍頻率。試驗(yàn)二 鍵盤(pán)控制 LED 實(shí)驗(yàn):1.試驗(yàn)?zāi)康模簷z測(cè) S3C44B0 外部中斷管腳 EXTINT4,5,6,7 輸入,然后控制 LED 燈。本程序采用輪訓(xùn)終端的方式檢測(cè)中斷。2.硬件原理:S3C44B0 支持 8 個(gè)外部中斷源,分別是 ExINT0ExINT7,其中 ExINT4,5,6,7 中斷線在中斷控制器內(nèi)

16、部是共享一個(gè)中斷的,當(dāng)這幾個(gè)中斷發(fā)生時(shí),我們需要查詢 EXTINTPND(外部中斷標(biāo)志寄存器)積存器來(lái)判斷到底是哪個(gè)或者是哪幾個(gè)產(chǎn)生了中斷,再執(zhí)行相應(yīng)的操作。電路上面,4 個(gè) 14 鍵盤(pán)分別接在外部中斷 4,5,6,7 上。在處理中斷的時(shí)候我們需要慣性以下幾個(gè)寄存器:1 INTMOD (中斷模式寄存器)指定每個(gè)中斷源的模式,是 IRQ 還是 FIQ。2 INTCON (中斷控制寄存器)主要控制當(dāng)前的中斷模式使能,包括使能 IRQ 中斷,F(xiàn)IQ 中斷和 Vector 中斷。3 INTPND (中斷標(biāo)志寄存器)標(biāo)志當(dāng)前產(chǎn)生中斷的中斷源。4 EXTINT (外部中斷控制寄存器)控制外部中斷的觸發(fā)模式

17、,是電平觸發(fā)(高低電平)還是邊沿觸發(fā)(正跳變,負(fù)跳變或是正負(fù)跳變)5 EXTINTPND (外部中斷標(biāo)志寄存器)標(biāo)志當(dāng)前產(chǎn)生中斷的 ExINT4,5,6,7。 我們這個(gè)試驗(yàn)是通過(guò)輪訓(xùn)的方法來(lái)檢測(cè)是哪個(gè)外部中斷(ExINT4,5,6,7)產(chǎn)生了,并做相應(yīng)的操作。具體操作如下:中斷源相應(yīng)操作ExINT4點(diǎn)亮 LED1ExINT5點(diǎn)亮 LED2ExINT6點(diǎn)亮 LED3ExINT7熄滅 LED1,LED2,LED3試驗(yàn)三 RTC 實(shí)時(shí)時(shí)鐘實(shí)驗(yàn)試驗(yàn)?zāi)康模簻y(cè)試 S3C44B0 內(nèi)部集成的 RTC 實(shí)時(shí)時(shí)鐘功能。硬件原理:S3C44B0 內(nèi)部集成了 RTC 實(shí)時(shí)時(shí)鐘管理,片外只要接一個(gè) 32.768K 的

18、晶體和一個(gè)電池就能夠完成實(shí)時(shí)時(shí)鐘功能。并且內(nèi)部提供了一組相關(guān)的寄存器,使用起來(lái)相當(dāng)方便。本試驗(yàn)我們使用了以下的寄存器:寄存器地址功能RTCCON0x1d70040RTC控制寄存器,其中 RTCEN 位控制RTC寄存器讀寫(xiě),在操作RTC寄存器前需要使能,操作完后可以禁止掉BCDSEC0x01D70070保存當(dāng)前的秒鐘值BCDMIN0x01D70074保存當(dāng)前的分鐘值BCDHOUR0x01D70078保存當(dāng)前的時(shí)鐘值BCDDAY0x01D7007C保存當(dāng)前的日期值BCDMON0x01D70084保存當(dāng)前的月份值BCDYEAR0x01D70088 保存當(dāng)前的秒鐘值此測(cè)試程序需要連接串口超級(jí)終端,程序執(zhí)行后會(huì)先打印出當(dāng)前的系統(tǒng)時(shí)間,包括年、月、日、時(shí)、分、秒。然后提示用戶是否需要設(shè)置新的系統(tǒng)時(shí)間,如果需要,鍵入“y”,然后根據(jù)提示輸入年、月、日、時(shí)、分、秒。程序最后提示系統(tǒng)斷電,然后過(guò)一段時(shí)間后重新上電。最后運(yùn)行測(cè)試程序看打印輸出的當(dāng)前時(shí)間是否正確。試驗(yàn)七 Beep 音樂(lè)程序:S3C44B0 學(xué)習(xí)板上有一個(gè)無(wú)源蜂鳴器,其由 S3C44B0 的 PWM 輸出控制。無(wú)源蜂鳴器與有源蜂鳴器的區(qū)別是在于其內(nèi)部不帶有信號(hào)發(fā)生電路,必須由外保護(hù)輸入一定頻率的信號(hào)來(lái)驅(qū)動(dòng)。本程序就是利用了這一點(diǎn),通過(guò)間斷地改變 PWM 的輸出頻率以

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論