第一篇:嵌入式系統實習報告
一、嵌入式系統開發與應用概述
在今日,嵌入式ARM 技術已經成為了一門比較熱門的學科,無論是在電子類的什么領域,你都可以看到嵌入式ARM 的影子。如果你還停留在單片機級別的學習,那么實際上你已經落下時代腳步了,ARM 嵌入式技術正以幾何的倍數高速發展,它幾乎滲透到了幾乎你所想到的領域。本章節就是將你領入ARM 的學習大門,開始嵌入式開發之旅。以嵌入式計算機為技術核心的嵌入式系統是繼網絡技術之后,又一個IT領域新的技術發展方向。由于嵌入式系統具有體積小、性能強、功耗低、可靠性高以及面向行業具體應用等突出特征,目前已經廣泛地應用于軍事國防、消費電子、信息家電、網絡通信、工業控制等各個領域。嵌入式的廣泛應用可以說是無所不在。
嵌入式微處理器技術的基礎是通用計算機技術?,F在許多嵌入式處理器也是從早期的pC 機的應用發展演化過來的,如早期pC 諸如TRS-80、Apple II 和所用的Z80 和6502 處理器,至今仍為低 端的嵌入式應用。在應用中,嵌入式微處理器具有體積小、重量輕、成本低、可靠性高的優點。嵌入式處理器目前主要有Am186/88、386EX、SC-400、power pC、68000、MIpS、ARM 等系列。
在早期實際的嵌入式應用中,芯片選擇時往往以某一種微處理器內核為核心,在芯片內部集成必要的ROM/EpROM/Flash/EEpROM、SRAM、接口總線及總線控制邏輯、定時/計數器、WatchDog、I/O、串行口、脈寬調制輸出、A/D、D/A 等各種必要的功能和外設。
二、實習設備
硬件:Embest EduKit-IV實驗平臺、ULINK2仿真器套件、pC機
軟件:μVision IDE for ARM集成開發環境、Windows 98/2000/NT/Xp
三、實習目的1.初步掌握液晶屏的使用及其電路設計方法;掌握S3C2410X處理器的LCD控制器的使用;掌握通過任務調用的方法把液晶顯示函數添加到uC/OS-II中;通過實驗掌握液晶顯示文本及圖形的方法與程序設計。
2.了解S3C2410X處理器UART相關控制寄存器的使用; 熟悉ARM處理器系統硬件電路中UART接口的設計方法:掌握ARM處理器串行通信的軟件編程方法。
3.掌握有關音頻處理的基礎知識;通過實驗了解IIS音頻接口的工作原理;通過實驗掌握對處理器S3C2410X中IIS模塊電路的控制方法;通過實驗掌握對常用IIS接口音頻芯片的控制方法。
4.了解μC/OS-II移植條件和內核基本結構;掌握將μC/OS-II內核移植到ARM9處理器上的方法和步驟。
四、實習要求
通過對μC/OS-II移植實驗、μC/OS-II LCD顯示實驗、串口通信實驗、IIS音頻實驗、液晶顯示實驗的學習,并將各部分內容合并,最終得出實習結果,實習要求在鍵盤上輸入學號,在液晶顯示屏上顯示相應的學生信息。學生信息包括顯示每個人的照片和姓名系別等,并用鍵控設置學生輸出的順序,輸入學號就顯示那個學生的信息,然后過一段時間就順序循環播放。
移植μC/OS-II內核到ARM處理器S3C2410,在IDE中觀察其運行狀況編寫S3C2410X處理器的串口通信程序;監視串行口UART1動作;將從UART1接收到的字符串回送顯示。將從UART1接收到的字符串回送顯示。
通過使用Embest EduKit-IV實驗板的彩色液晶屏(800*480)進行電路設計,掌握液晶屏作為人機接口界面的設計方法,并編寫任務函數在uC/OS-II系統中實現位圖顯示。在uC/OS-II中建立五個任務Tast1和Tast2,其中Tast1順序熄滅四個LED,延遲一會在順序點亮四個LED。Tast2在LCD屏幕上循環顯示三幅圖片,并打印一些文字信息和背景音樂。過使用Embest EduKit-III實驗板的256 色彩色液晶屏(320x240)進行電路設計,掌握液晶屏作為人機接口界面的設計方法,并編寫程序實現:畫出多個矩形框;顯示ASCII字符;顯示漢字字符;顯示彩色位圖。
五、實習步驟
1.準備實驗環境
使用ULINK2仿真器連接Embest EduKit-IV實驗平臺的主板JTAG接口;使用Embest EduKit-IV實驗平臺附帶的交叉串口線,連接實驗平臺主板上的COM2和pC機的串口(一般pC只有一個串口,如果有多個請自行選擇,筆記本沒有串口設備的可購買USB轉串口適配器擴充);使用Embest EduKit-IV實驗平臺附帶的電源適配器,連接實驗平臺主板上的電源接口。
2.串口接收設置
在pC機上運行windows自帶的超級終端串口通信程序,或者使用實驗平臺附帶光盤內設置好了的超級終端,設置超級終端:波特率115200、1位停止位、無校驗位、無硬件流控制,或者使用其它串口通信程序。(注:超級終端串口的選擇根據用戶的pC串口硬件不同,請自行選擇,如果pC機只有一個串口,一般是COM1)
3.打開實驗例程
1)打開實驗程序
2)運行μVision IDE for ARM軟件
3)默認打開的工程在源碼編輯窗口會顯示實驗例程的說明文件readme.txt,詳細閱讀并理解實驗內容。
4)工程提供了兩種運行方式:一是下載到SDRAM中調試運行,二是固化到Nor Flash中運行。用戶可以在工具欄Select Target下拉框中選擇在RAM中調試運行還是固化Flash中運行。下面實驗將介紹下載到SDRAM中調試運行,所以我們在Select Target下拉框中選擇UART_Test IN RAM。
5)接下來開始編譯鏈接工程,在菜單欄“projiet”選擇“Build target”或者“Rebuild all target files”編譯整個工程。
6編譯完成后,在輸出窗口可以看到編譯提示信息,比如““.SDRAMUART_Test.axf”-0 Error(s), 1 Warning(s).”,如果顯示“0 Error(s)”即表示編譯成功。
7)撥動實驗平臺電源開關,給實驗平臺上電,單擊菜單欄Debug->Start/Stop Debug Session項將編譯出來的映像文件下載到SDRAM中,或者單擊工具欄“”按鈕來下載。
8)下載完成后,單擊菜單欄Debug->Run項運行程序,或者單擊工具欄“”按鈕來全速運行程序。用戶也可以使用進行單步調試程序。
9)全速運行后,用戶可以在超級終端看到程序運行的信息。
10)用戶可以Stop程序運行,使用μVision IDE for ARM的一些調試窗口跟蹤查看程序運行的信息。注:如果在第4)步用戶選擇在Flash中運行,則編譯鏈接成功后,單擊菜單欄Flash->Download項將程序固化到NorFlash中,從實驗平臺的主板拔出JTAG線,給實驗平臺重新上電,程序將自動運行。
部分程序圖:
串口通信實驗:
IIS音頻實驗:
六、實習體會
在嵌入式系統中,除了課本上的基礎知識外,還學會了軟件編程的基本思路,掌握了液晶屏的使用及其電路設計方法;掌握有關音頻處理的基礎知識;掌握液晶顯示文本及圖形的方法與程序設計。
通過這次設計,掌握了液晶顯示實驗、μC/OS-II移植、μC/OS-IILCD顯示的工作原理及串口通信實驗的工作過程,學會了使用仿真軟件Embest EduKit-IV實驗平臺及ULINK2仿真器套件,并學會通過應用軟件仿真來實現各種通信系統的設計,對以后的學習和工作都起到了一定的作用,加強了動手能力和學業技能。雖然花了很長時間編寫軟件程序設計,但這一切還是理論上的。希望學校能提供機會和條件,讓我們能夠去真正地將理論和實踐相結合。通過這次程序,感覺自己所掌握的知識是那么的有限,還有許多需要改進和不足的地方,同時也幫助了我怎樣學好這門課程,增加了我對這門學科的興趣。總體來說,這次實習我受益匪淺。在摸索該如何設計電路使之實現所需功能的過程中特別有趣,培養了我的設計思維,增加了實際操作能力。在讓我體會到了設計電路的艱辛的同時,更讓我體會到成功的喜悅和快樂。通過這次實習通信系統的設計,使我更加清楚以后的發展及學習的方向。
最后感謝老師這個學期的指導和幫助!
七、參考文獻
《ARM9嵌入式系統設計與開發應用》熊茂華、楊震倫編著 清華大學出版社
《ARM9嵌入式系統設計與開發教程》于明編著 電子工業出版社
《Linux嵌入式系統教程》馬忠梅 北京航空航天大學出版社
第二篇:黃靖嵌入式系統實習報告
嵌入式系統實習報告
課題: LCD顯示秒表 班級: 計本12-3班 學號: 3110717215 姓名: 黃靖 指導老師: 金紅老師
一、緒論
嵌入式計算機的真正發展是在微處理器問世之后。1971年11月,Intel公司成功地把算術運算器和控制器電路集成在一起,推出了第一款微處理器Intel 4004,其后各廠家陸續推出了許多8位、16位的微處理器,包括Intel 8080/8085、8086,Motorola 的6800、68000,以及Zilog的Z80、Z8000等。以這些微處理器作為核心所構成的系統,廣泛地應用于儀器儀表、醫療設備、機器人、家用電器等領域。微處理器的廣泛應用形成了一個廣闊的嵌入式應用市場,計算機廠家開始大量地以插件方式向用戶提供OEM產品,再由用戶根據自己的需要選擇一套適合的CPU板、存儲器板以及各式I/O插件板,從而構成專用的嵌入式計算機系統,并將其嵌入到自己的系統設備中。本次試驗課題是基于UC/OS-II嵌入式操作系統進行的1602顯示秒表設計。
二、嵌入式概述
1、何為嵌入式:
何謂嵌入式系統, 嵌入式系統是用來控制或者監視機器、裝置、工廠等大規模設備的系統。國內普遍認同的嵌入式系統定義為:以應用為中心,以計算機技術為基礎,軟硬件可裁剪,適應應用系統對功能、可靠性、成本、體積、功耗等嚴格要求的專用計算機系統.通常,嵌入式系統是一個控制程序存儲在ROM中的嵌入式處理器控制板。事實上,所有帶有數字接口的設備,如手表、微波爐、錄像機、汽車等,都使用嵌入式系統,有些嵌入式系統還包含操作系統,但大多數嵌入式系統都是由單個程序實現整個控制邏輯。
而uC/OS-II由Micrium公司提供,是一個源代碼開放、可移植、可固化、可裁剪、搶先式的多任務實時操作系統。它主要用于中小型嵌入式系統中,執行效率高,占用空間小,可移植性強,具有良好的實時性和可擴展性。
2、嵌入式歷史:
從20世紀七十年代單片機的出現到各式各樣的嵌入式微處理器,微控制器的大規模應用,嵌入式系統已經有了近30年的發展歷史。
嵌入式系統的出現最初是基于單片機的。70年代單片機的出現,使得汽車、家電、工業機器、通信裝置以及成千上萬種產品可以通過內嵌電子裝置來獲得更佳的使用性能:更容易使用、更快、更便宜。這些裝置已經初步具備了嵌入式的應用特點,但是這時的應用只是使用8位的芯片,執行一些單線程的程序,還談不上“系統”的概念。
最早的單片機是Intel公司的 8048,它出現在1976年。Motorola同時推出了68HC05,Zilog公司推出了Z80系列,這些早期的單片機均含有256字節的RAM、4K的ROM、4 個8位并口、1個全雙工串行口、兩個16位定 時 器。之后在80年代初,Intel又進一步完善了8048,在它的基礎上研制成功了8051,這在單片機的歷史上是值得紀念的一頁,迄今為止,51系列的單片機仍然是最為成功的單片機芯片,在各種產品中有著非常廣泛的應用。
從80年代早期開始,嵌入式系統的程序員開始用商業級的“操作系統”編寫嵌入式應用軟件,這使得可以獲取更短的開發周期,更低的開發資金和更高的開發效率,“嵌入式系統”真正出現了。確切點說,這個時候的操作系統是一個實時核,這個實時核包含了許多傳統操作系統的特征,包括任務管理、任務間通訊、同步與相互排斥、中斷支持、內存管理等功能。其中比較著名的有Ready System 公司的VRTX、Integrated System Incorporation(ISI)的PSOS和IMG的VxWorks、QNX公司的QNX 等。這些嵌入式操作系統都具有嵌入式的典型特點:它們均采用占先式的調度,響應的時間很短,任務執行的時間可以確定;系統內核很小,具有可裁剪,可擴充和可移植性,可以移植到各種處理器上;較強的實時和可靠性,適合嵌入式應用。這些嵌入式實時多任務操作系統的出現,使得應用開發人員得以從小范圍的開發解放出來,同時也促使嵌入式有了更為廣闊的應用空間。
90年代以后,隨著對實時性要求的提高,軟件規模不斷上升,實時核逐漸發展為實時多任務操作系統(RTOS),并作為一種軟件平臺逐步成為目前國際嵌入式系統的主流。這時候更多的公司看到了嵌入式系統的廣闊發展前景,開始大力發展自己的嵌入式操作系統。除了上面的幾家老牌公司以外,還出現了Palm OS,WinCE,嵌入式Linux,Lynx,Nucleux,以及國內的Hopen,Delta Os等嵌入式操作系統。隨著嵌入式技術的發展前景日益廣闊,相信會有更多的嵌入式操作系統軟件出現。
3、現狀:
今天嵌入式系統帶來的工業年產值已超過了1萬億美元,1997年來自美國嵌入式系統大會(Embedded System Conference)的報告指出,未來5年僅基于嵌入式計算機系統的全數字電視產品,就將在美國產生一個每年1500億美元的新市場。美國汽車大王福特公司的高級經理也曾宣稱,“福特出售的‘計算能力’已超過了IBM”,由此可以想見嵌入式計算機工業的規模和廣度。1998年11月在美國加州舉行的嵌入式系統大會上,基于RTOS的Embedded Internet成為一個技術新熱點。在國內,“維納斯計劃”和“女鍋計劃”一度鬧得沸沸揚揚,機頂盒、信息j家電這兩年更成了IT熱點,而實際上這些都是嵌入式系統在特定環境下的一個特定應用。據調查,目前國際上已有兩百多種嵌入式操作系統,而各種各樣的開發工具、應用于嵌入式開發的儀器設備更是不可勝數。在國內,雖然嵌入式應用、開發很廣,但該領域卻幾乎還是空白,只有三兩家公司和極少數人員在從事這方面工作。由此可見,嵌入式系統技術發展的空間真是無比廣大。
三、課題設計內容:
1、課題所需材料及工具
材料:1062LCD顯示器、電路板、IAP15F2K61S2系統板、數據線、三個按鈕、若干電線等
工具:USB串口驅動、Keil_uvision_
4、STC_ISP Ver6.82B等
2、課題設計要求及總體思路
要求秒表可以實現三個功能:秒表的顯示功能,秒表的控制功能:開始、暫停、清零,秒表的LED閃爍功能。
總體思路:
1、查閱與課題相關的資料了解uC/OS-II嵌入式系統移植已有的主要技術方案,應用軟件設計及系統調試的方法;
2、在IAP15F2K61S2單片機系統板上移植uC/OS-II嵌入式系統,完成系統調試。
3、完成對秒表的功能進行總體的設計和規劃,根據自己的總體設計和規劃進行軟件設計,焊接電路。
4、系統功能調試。
3、uC/OS-II嵌入式系統的移植
uC/OS-II代碼中大部分都是用C語言寫的,但是涉及到數據類型的重定義、堆棧結構的設計、任務切換時狀態的保存和恢復等問題的大部分代碼由于與處理器有關,是用匯編語言實現的。移植所要做的工作,就是在不同的處理器上用匯編語言來改寫與處理器有關的代碼及其他與處理器特性相關的部分。
在uC/OS-II移植過程中涉及以上問題的代碼都包含在文件 OS_CPU.H、OS_CPU.C、OS_CPU_A.ASM中。因此移植的主要工作也在源代碼的基礎上圍繞著這三個文件的改寫展開。
OS_CPU.H的改寫:其中主要定義了一些與編譯器有關的數據類型、堆棧的生長方向、臨界代碼區的保護方式。因為不同的處理器有不同的字長,所以OS_CPU.H中需要針對具體的處理器字長重新定義一系列數據類型以確保系統的可移植性。特別需要注意的是MCS-51的棧寬度是8位的,所以將堆棧的數據類型聲明為8 位無符號字符類型,即unsigned char OS_STK。第二,為了避免臨界區代碼被中斷,在臨界區操作時必須用C語言開放和關閉中斷。對于51單片機,在中斷控制中使用EA = 0關中斷,EA = 1開中斷。由于51堆棧自低地址往高地址生長,所以堆棧增長方向的設置必須更改。采用語句#define OS_STK_GROWTH 0。最后,由于MCS-51沒有軟中斷指令,所以用程序調用代替,定義任務切換宏OS_TASK_SW():#define OS_TASK_SW()OSCtxSw()。
OS_CPU_C.C需要改寫的六個鉤掛函數分別是 OSTaskStkInit()
//初始化任務堆棧函數 OSTaskCreateHook()//任務創建鉤掛函數 OSTaskDelHook()
//任務刪除鉤掛函數 OSTaskSwHook()
//任務切換鉤掛函數 OSTaskStatHook()
//統計任務鉤掛函數 OSTimeTickHook()//定時鉤掛函數
OS_CPU_A.ASM需要改寫的四個函數分別是: OSStartHighRdy()//運行優先級最高的就緒任務 OSCtxSw()
//任務級的切換函數
OSIntCtxSw()
//中斷級的任務切換函數 OSTickISR()
//時鐘節拍中斷服務函數
移植過程要留意的問題:
當調用OSTaskCreate()或OSTaskCreateExt()創建一個新任務時,需要傳遞的參數是:任務代碼的起使地址,參數指針(pdata),任務堆棧頂端的地址,任務的優先級。OSTaskCreateExt()還需要一些其他參數,但與OSTask-StkInit()沒有關系。OSTaskStkInit()只需要以上提到的3個參數(task, pdata,和ptos)。在這個堆棧初始化函數中要清楚堆棧中都要保存哪些東西,要留多大的空間,這些都很重要,否則會發生很嚴重的錯誤。
4、課題程序功能設計及代碼
如下圖所示,整個秒表以STC15為核心,按下停止鍵或啟動鍵控制秒表的停止和開始,清零鍵負責清零,同時反映給STC15,再經過處理顯示在1602液晶顯示器上,進行計時:
LCD1602液晶顯示器啟動鍵key1STC15停止鍵key3清零鍵key2
系統設計圖:
系統總的原理圖如上圖所示,按下暫停、啟動和清零按鍵,秒表開始計時或清零并顯示在LCD1602液晶顯示器上。
功能流程圖:
開始單片機、LED初始化trueIf(key==0)false定時器開啟TR1=1定時中斷計數值累加屏幕顯示定時器關閉TR1=0結束 主要函數代碼:
void main(void)
//主函數
{ OSInit();
//初始化uc/os-||
InitTime0();
//定時器初始化
OSTaskCreate(Task1,(void*)0,&Task1Stk[0],4);
//任務1 OSTaskCreate(Task2,(void*)0,&Task2Stk[0],1);
//任務2
OSStart();
//開始多任務調度 } void Task2(void *ppdata)reentrant
// 任務2,LED閃爍, { ppdata=ppdata;while(1)
{
P55 = ~P55;
OSTimeDly(OS_TICKS_PER_SEC);
}
} void Task1(void xdata * ppdata)reentrant
//任務1,三個按鍵功能以及字幕的顯示 {
ppdata = ppdata;
TR1=0;count=0;
//中斷次數
while(1){
init();
//1602初始化
if(key1==0)
//開始
{
TR1=1;
//定時器開啟
}
if(key3==0)
//暫停
{ TR1=0;
//定時器關閉
}
if(key2==0&&TR1==0)
//清零
{ zong=0;
//時間清零
}
lcd_pos(0x46);
//顯示的地址
Display_int(zong/60);
//顯示分鐘
lcd_date(':');
//顯示
Display_int(zong%60);
//顯示秒
lcd_pos(0x00);
//字符輸出地址
Display_string(time);//輸出”times start:”
OSTimeDly(OS_TICKS_PER_SEC/40);} }
//中斷函數
void Time1()interrupt 3
//定時器T1的中斷編號為1 { TH1 =(65536-50000)/256;
//定時器T0高8位重新賦初值0.05s TL1 =(65536-50000)%256;
//定時器T0低8位重新賦初值
count++;if(count%20==0)
//調整數字變化速度
{
zong++;// } }
void Display_int(int a){
//顯示
int tmp[2]={0,0};int t = 0;
while(a!=0){
tmp[t++] = a%10;
a = a/10;}
t=2;while(t>0){
lcd_date('0' + tmp[--t]);} } void Display_string(char *str){
int i = 0;
while(str[i]!= ' 主站蜘蛛池模板: 日韩av无码成人无码免费| 久久午夜羞羞影院免费观看| 亚洲香蕉免费有线视频| 日本免费一区二区三区激情视频| 99精品免费久久久久久久久日本| 狼人大香伊蕉国产www亚洲| 国产男女猛烈无遮挡免费视频网站| 人人妻人人藻人人爽欧美一区| 日本一区二区三区专线| 正在播放东北夫妻内射| 人妻夜夜爽天天爽三区麻豆av网站| 国产精品久久久久蜜臀| 日本高清熟妇老熟妇| 久久精品中文字幕| 免费国精产品自偷自偷免费看| 一本无码人妻在中文字幕免费| 成年男人裸j照无遮挡无码| 亚洲欧洲无卡二区视頻| 老熟女一区二区免费| 鲁一鲁一鲁一鲁一曰综合网| 国产喷水1区2区3区咪咪爱av| 久久不见久久见www免费视频| 亚洲 卡通 欧美 制服 中文| 色欲狠狠躁天天躁无码中文字幕| 国产麻豆成人传媒免费观看| 成人毛片100部免费看| 国产在线无遮挡免费观看| 偷窥村妇洗澡毛毛多| 国产亚洲产品影视在线产品| 国产偷国产偷亚洲高清人乐享| 粉嫩大学生无套内射无码卡视频| 亚洲男人第一av网站| 天天综合网网欲色| 亚洲a∨无码一区二区| 国内老熟妇对白hdxxxx| 亚洲精品入口一区二区乱| 国产又黄又爽胸又大免费视频| 丰满爆乳无码一区二区三区| 扒开双腿疯狂进出爽爽爽| 午夜福利国产成人a∨在线观看| 国产又色又刺激高潮视频|