嵌入式實驗報告_第1頁
嵌入式實驗報告_第2頁
嵌入式實驗報告_第3頁
嵌入式實驗報告_第4頁
嵌入式實驗報告_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

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

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

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

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

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

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

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

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

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

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

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

12、寫的地址與 RO Base相同,也就是說程序是從代碼段基地址開始執(zhí)行的。然后我們再打開ARM Linker-Layout選項卡進行設置,如下圖:這樣設置好后,我們相當如設置了程序的代碼段其實地址,程序入口地址以及哪個目標文件中的哪個段放在代碼段的起始的地方,如下圖,起始地址是 0x0C000000,代碼段起始地址 0x0C000000, 將vector.o 目標文件的 SelfBoot 段放在代碼段的起始地方。我們可以打開 vector.s 文件看到如下這一段代碼,其中就有名為 SelfBoot 的代碼段。編譯 :接下來編譯跑馬燈工程,點擊編譯快捷按鈕,如下圖。編譯后將會有輸出信息,包括錯誤,

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

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

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

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

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

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

溫馨提示

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

評論

0/150

提交評論