《uCOOS-II原理與ARM應(yīng)用程序設(shè)計(jì)》課件第8章_第1頁
《uCOOS-II原理與ARM應(yīng)用程序設(shè)計(jì)》課件第8章_第2頁
《uCOOS-II原理與ARM應(yīng)用程序設(shè)計(jì)》課件第8章_第3頁
《uCOOS-II原理與ARM應(yīng)用程序設(shè)計(jì)》課件第8章_第4頁
《uCOOS-II原理與ARM應(yīng)用程序設(shè)計(jì)》課件第8章_第5頁
已閱讀5頁,還剩64頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第八章博創(chuàng)UP-CUP2410移植與實(shí)例8.1準(zhǔn)備工作8.2UP-CUP2410工程實(shí)例8.3本章小結(jié)打開UP-CUP2410實(shí)驗(yàn)箱,連接上電源以及J-LINK仿真器,串口0通過串口線與計(jì)算機(jī)串口連通,打開UP-CUP2410電源開關(guān),此時,UP-CUP2410實(shí)驗(yàn)箱上點(diǎn)陣LED屏?xí)L動顯示“UPTECH”字樣。8.1準(zhǔn)備工作

UP-CUP2410實(shí)驗(yàn)箱的原理圖在《ARM原理與C程序設(shè)計(jì)》一書第二章作了介紹,這里不再給出原理圖。本章程序要使用的硬件部分如下:

(1)?INTKEY,即UP-CUP2410實(shí)驗(yàn)箱右下角的按鍵,位于點(diǎn)陣數(shù)碼管的下面,該按鍵的一端與地相連,另一端與EINT5相連。INTKEY為常開按鍵,開著時EINT5為高電平;按下后EINT5為低電平;松手后按鍵自動彈開,EINT5回到高電平。因此,INTKEY是一個外部中斷輸入按鍵。

(2)三個LED燈,LED1、LED2和LED3依次與S3C2410A芯片的GPC5、GPC6和GPC7相連,這一點(diǎn)與UP-Star實(shí)驗(yàn)板相同。當(dāng)GPC5為低電平時,LED1點(diǎn)亮;當(dāng)GPC5為高電平時,LED1熄滅。當(dāng)GPC6為低電平時,LED2點(diǎn)亮;當(dāng)GPC6為高電平時,LED2熄滅。當(dāng)GPC7為低電平時,LED3點(diǎn)亮;當(dāng)GPC7為高電平時,LED3熄滅。

(3)兩個七段數(shù)碼管,均由CPLD擴(kuò)展控制,它們的地址為0x08000110和0x08000112(參考《ARM原理與C程序設(shè)計(jì)》第47頁),這些地址稱為位碼;可在數(shù)碼管上顯示0~9十個數(shù)字和A~F六個英文字母,對應(yīng)的數(shù)據(jù)為0xC0、0xF9、0xA4、0xB0、0x99、0x92、0x82、0xF8、0x80、0x90、0x88、0x83、0xC6、0xA1、0x86和0x8E,這些稱為段碼。因此,把段碼賦給位碼,則對應(yīng)位置的數(shù)碼管將顯示相應(yīng)的數(shù)字或字母。

(4)直流電機(jī),位于七段數(shù)碼管旁邊,由TOUT0和TOUT1協(xié)作控制,當(dāng)其中之一為高電平,另一端為低電平時,直流電機(jī)轉(zhuǎn)動,轉(zhuǎn)動方向與轉(zhuǎn)速由兩個PWM波的相位與占空比控制。

UP-CUP2410實(shí)驗(yàn)箱上的核心芯片為S3C2410A,與UP-Star實(shí)驗(yàn)板上的ARM芯片型號相同,因此,在UP-CUP2410實(shí)驗(yàn)箱上移植μC/OS-Ⅱ與UP-Star實(shí)驗(yàn)板上的移植工作基本相似。在第六章工程ex6_1的基礎(chǔ)上新建工程ex8_1,保存目錄為D:\ZYUCOSII\ex8_1,此時的工程ex8_1和工程ex6_1完全相同,只是工程文件名更改為ex8_1。需要修改的文件有startup.s、bsp.c、bsp.h、appfun.c、app.h、app_cfg.h以及ex8_1.mac。其中,startup.s和ex8_1.mac文件的修改是因?yàn)閁P-CPU2410實(shí)驗(yàn)箱上集成了64MB的SDRAM(2片HY57V561620芯片),而UP-Star實(shí)驗(yàn)板上僅有32MB的SDRAM。8.2UP-CUP2410工程實(shí)例8.2.1工程ex8_1

工程ex8_1中包含10個任務(wù),除μC/OS-Ⅱ系統(tǒng)創(chuàng)建的空閑任務(wù)、統(tǒng)計(jì)任務(wù)和定時器任務(wù)外,工程ex8_1創(chuàng)建了7個任務(wù)。其中,任務(wù)AppTaskStart用于創(chuàng)建其他的6個任務(wù);任務(wù)AppTask_1使LED燈1每隔1秒閃爍一下;任務(wù)AppTask_2使LED燈2每隔2秒閃爍一下;任務(wù)AppTask_3請求信號量Led_Sem,當(dāng)按下INTKEY按鍵時,將使LED燈3閃爍;任務(wù)AppTask_4用于創(chuàng)建定時器SegTmr,該定時器每秒定時一次;任務(wù)AppTask_5請求定時器發(fā)出的信號量TimeSem,使兩個七段數(shù)碼管呈秒表計(jì)時顯示;任務(wù)AppTask_6用于控制直流電機(jī)的轉(zhuǎn)速和轉(zhuǎn)動方向。工程ex8_1如圖8-1所示。圖8-1給出的是一個調(diào)試界面,從圖上可以看出工程ex8_1有10個任務(wù)。圖8-1工程ex8_1打開串口調(diào)試助手,仿真調(diào)試工程ex8_1,將有以下現(xiàn)象:

(1)?LED燈1每隔1秒閃爍一次。

(2)?LED燈2每隔2秒閃爍一次。

(3)當(dāng)按下INTKEY按鍵時,LED燈3閃爍,并且串口調(diào)試助手顯示按鍵信息。

(4)串口調(diào)試助手每隔3秒顯示CPU使用情況信息。

(5)兩個七段數(shù)碼管為秒計(jì)時器,從00秒計(jì)數(shù)到99,并一直循環(huán)下去。

(6)每隔約392秒直流電機(jī)會改變轉(zhuǎn)動方向一次(第一次改變轉(zhuǎn)動方向間隔時間為196秒);每個392秒的時間內(nèi),電機(jī)從低速慢慢調(diào)至最高速,再慢慢降為低速,然后改變轉(zhuǎn)動方向,循環(huán)往復(fù)。

第8.2.2節(jié)將討論工程ex8_1的代碼。8.2.2工程ex8_1代碼與注解

相對于工程ex6_1,工程ex8_1中代碼需修改的文件有startup.s、bsp.c、bsp.h、appfun.c、app.h、app_cfg.h以及ex8_1.mac。其中,除了文件appfun.c和app.h外,其余文件的修改工作量較小,這些修改羅列如下:

(1)?startup.s文件的第41行和第51行改為

BWSCON_Val EQU0x22111110

BANKSIZE_Val EQU0x000000B1

(2)?ex8_1.mac文件的第15行和第25行改為

_writeMemory32(0x22111110,0x48000000,"Memory");/*BWSCON*/

_writeMemory32(0x000000b1,0x48000028,"Memory");/*BANKSIZE*/

(3)?bsp.h文件中添加對GPB口寄存器以及定時器0和1的寄存器地址的宏定義,如下:

1//PortBControl

2//PortBData

3//Pull-upControlB

(4)?app_cfg.h文件的第7行改為

#defineOS_TASK_TMR_PRIO20

即定時器任務(wù)的優(yōu)先級調(diào)整為20。

(5)?bsp.c文件中的OS_CPU_ExceptHndlr函數(shù)修改為如下內(nèi)容:

1voidOS_CPU_ExceptHndlr(INT32Uexcept_type)

2{

3switch(except_type)

4{29}

30break;

31default:

32break;

33}

34}

上述代碼第8~18行為EINT5中斷響應(yīng)入口。(6)?app.h文件的完整代碼如下:

1/*FileName:app.h

2**Byzhnyong@21

3**@2009-4-4

4**CopyrightReserved

5*/

6

7#ifdefMY_APP_GLOBALS

8#defineMY_APP

9#else

10#defineMY_APPextern

11#endif由于工程ex8_1建立了7個任務(wù),故第35~64行定義了與任務(wù)相關(guān)的ID號、優(yōu)先級和堆棧;第66~68行定義了兩個信號量LedSem和TmrSem及一個全局變量eint_src;第79~87行為任務(wù)函數(shù)聲明;第91~93行為定時器相關(guān)的定義;第96、97行宏定義了兩個七段數(shù)碼管的地址;第99行宏定義了記錄定時器1比較值的全局變量。(7)?appfun.c文件的完整代碼如下:

1/*FileName:appfun.c

2**Byzhnyong@21

3**@2009-4-4

4**CopyrightReserved

5*/

6

7#defineMY_APP_GLOBALS

8#include"includes.h"

9

任務(wù)AppTaskStart在第153~156行生成了兩個信號量LedSem和TmrSem;在第165行調(diào)用TaskStartCreateTasks函數(shù)創(chuàng)建了6個任務(wù),參考第181~244行的代碼。第245~256行為任務(wù)AppTask_1,循環(huán)體中調(diào)用第252行語句使LED燈1閃爍。任務(wù)AppTask_3在第279行請求LedSem信號量,獲得信號量后,向串口調(diào)試助手輸出信息,并使LED燈3閃爍。第293~341行的代碼注解請參考第7.2節(jié)。任務(wù)AppTask_5中第365、366行為用0~99的計(jì)數(shù)值點(diǎn)亮兩個七段數(shù)碼管。任務(wù)AppTask_6中,調(diào)節(jié)TCMPB1的值(第405行)可以實(shí)現(xiàn)直流電機(jī)的轉(zhuǎn)速和轉(zhuǎn)向的調(diào)整。第431~443行的InitHTmr01函數(shù)為初始化定時器0和定時器1,并使S3C2410A芯片TOUT0和TOUT1管腳輸出PWM波,這里設(shè)置工作頻率為100Hz。

比較UP-CUP2410實(shí)驗(yàn)箱和UP-Star實(shí)驗(yàn)板,可以看出在核心硬件構(gòu)成上(注:外設(shè)差別比較大),最主要的區(qū)別在于UP-CUP2410實(shí)驗(yàn)箱SDRAM空間為64MB,而UP-Star實(shí)驗(yàn)板SDRAM空間為32MB。因此,從UP-Star實(shí)驗(yàn)板的μC/OS-Ⅱ移植文件出發(fā),制作UP-CUP2410實(shí)驗(yàn)箱的μC/OS-Ⅱ移植文件比較容易,需修改的地方主要是SDR

溫馨提示

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

最新文檔

評論

0/150

提交評論