<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于A(yíng)RM7支持觸摸屏和實(shí)時(shí)操作系統的開(kāi)發(fā)與應用

基于A(yíng)RM7支持觸摸屏和實(shí)時(shí)操作系統的開(kāi)發(fā)與應用

作者: 時(shí)間:2010-09-25 來(lái)源:電子產(chǎn)品世界 收藏

  摘要:本文介紹了μC/OS-II嵌入式實(shí)時(shí)操作系統和μC/GUI在7處理器上的移植方法,以及如何利用嵌入式操作系統進(jìn)行應用程序的開(kāi)發(fā)和管理各種任務(wù)。重點(diǎn)討論了μC/OS-II實(shí)時(shí)操作系統的移植方法和μC/GUI的移植技術(shù),并提供了一種簡(jiǎn)單有效的去除抖動(dòng)的方法;最后通過(guò)應用實(shí)例對任務(wù)的劃分和界面的操作進(jìn)行了說(shuō)明。

本文引用地址:http://dyxdggzs.com/article/112971.htm

  關(guān)鍵詞:;μC/GUI;μC/OS-II;7

  概述

  隨著(zhù)信息技術(shù)的發(fā)展,支持圖形界面的觸摸操作和實(shí)時(shí)操作系統相結合的應用系統已經(jīng)越來(lái)越廣泛地應用到航空航天、軍事、消費類(lèi)電子、通訊設備等領(lǐng)域。mC/OS-II操作系統是一種占先式、實(shí)時(shí)操作系統(RTOS),由于其內核可拆減、可剝離性,使得它在實(shí)時(shí)控制領(lǐng)域中有著(zhù)廣泛的應用。它不僅減小了因為系統硬件設計缺陷帶來(lái)的不可靠因素,而且增強了系統的控制實(shí)時(shí)性,從軟件方面進(jìn)一步增強了控制系統的性能。另外,新版本的mC/OS-II已經(jīng)通過(guò)了FAA認證,很適合應用于對實(shí)時(shí)性要求很高的嵌入式工業(yè)控制領(lǐng)域,如目前應用較廣泛的軍用戰斗機、攻擊機和火控系統等。

  支持圖形界面操作(mC/GUI)是一種較為流行的人機交互系統,它能夠提供了友好的人機交互平臺,使得微處理器成為大多數人都能夠使用和接受的工具。與PC機不同,由于mC/OS-II基本為“黑盒”式操作系統,對人機界面的控制與開(kāi)發(fā)需比較復雜的編程技術(shù)和時(shí)序控制技術(shù)。ARM7嵌入式實(shí)時(shí)控制系統對mC/GUI的要求更高,包括輕型、占用資源少、高性能、高可靠性及可配置等。因此,如何將ARM7、mC/GUI、mC/OS-II、驅動(dòng)和應用程序有機的結合起來(lái),在A(yíng)RM7上進(jìn)行運行并完成用戶(hù)想實(shí)現的任務(wù),成為在嵌入式操作系統開(kāi)發(fā)中的一項關(guān)鍵技術(shù)。

  mC/OS-II嵌入式操作系統的移植

  mC/OS-II作為操作系統的內核,主要的任務(wù)就是完成多任務(wù)之間的調度和同步,協(xié)調各個(gè)硬件源不會(huì )沖突。與其它嵌入式操作系統相比,它具有系統透明、可拆減、接口簡(jiǎn)單的特點(diǎn)。下面就如何在S3C44B0進(jìn)行操作系統移植和修改作簡(jiǎn)要的描述:

  (1)重新修改OS_CPU.H文件

  a)定義數據類(lèi)型:mC/OS-Ⅱ不使用C語(yǔ)言中的short、int、long等與處理器類(lèi)型有關(guān)的數據類(lèi)型,而代之以移植性強的數據類(lèi)型,這樣既直觀(guān)又便于移植;

  b)定義堆棧增長(cháng)類(lèi)型和ARM運行的模式:雖然ARM處理器對堆棧向上與向下的兩種增長(cháng)方式都予以支持,但由于編譯器ADS僅支持堆棧從上往下,并且必須是滿(mǎn)遞減堆棧,所以在文件中用來(lái)定義堆棧增長(cháng)方式的常量OS_STK_GROWTH 的值為1;

  c)需對外部函數聲明:如在mC/OS-II.h頭文件中,有些要移植的函數已經(jīng)聲明,包括:OSTaskStkInit()、OSIntCtxSw(void)、OSStartHighRdy(void) 。

  (2)修改OS_CPU_C.C文件

  a)任務(wù)堆棧初始化函數OSTaskStkInit():在編寫(xiě)任務(wù)堆棧初始化函數OSTaskStkInit()之前,必須先根據處理器的結構和特點(diǎn)確定任務(wù)的堆棧結構;

  b)鉤子函數:mC/OS-II為了用戶(hù)在系統函數中書(shū)寫(xiě)自己的代碼而預置了一些鉤子函數(如OSTimeTickHook),這些函數在移植時(shí)可全為空函數,可根據用戶(hù)的需要添加。

  (3)重點(diǎn)編寫(xiě)OS_CPU_A.S文件a)開(kāi)/關(guān)中斷函數:在A(yíng)RM7處理器核中可利用改變程序狀態(tài)寄存器CPSR中的相應控制位實(shí)現;

  b)OSStartHighRdy(void):OSStart()函數調用OSStartHighRdy()來(lái)使就緒態(tài)任務(wù)中優(yōu)先級最高的任務(wù)開(kāi)始執行;

  c)OS_TASK_SW(void):μC/OS-II通過(guò)調用OSSched()函數來(lái)完成任務(wù)調度的,OSSched()先將最高優(yōu)先級任務(wù)的地址裝載到OSTCBHighRdy,再通過(guò)調用OS_TASK_SW()執行任務(wù)級的任務(wù)切換,OS_TASK_SW主要完成保護現場(chǎng),完成用于的任務(wù),恢復現場(chǎng);

  d)OSIntCtxSw(void):OSIntExit()通過(guò)調用OSIntCtxSw(),在中斷服務(wù)程序中執行任務(wù)切換功能。

  e)時(shí)鐘節拍函數:在本移植中,只使用了ARM的IRQ中斷。由于不同的ARM芯片的中斷系統并不完全一樣,因此不可能編寫(xiě)出對所有使用ARM核的處理器通用的中斷及節拍移植代碼,但是這是后續任務(wù)管理中重點(diǎn)需要操作系統進(jìn)行處理的,OSTickISR的實(shí)現代碼見(jiàn)程序清單。

  程序清單 OSTickISR()

  OSTickISR

  STMFD SP!, {R0-R3,R12,LR}

  BL OSIntEnter

  BL user_function ;調用用戶(hù)

  處理的中斷處理程序

  BL OSIntExit

  LDMFD SP!,{R0-R3,R12,LR}

 

 

 

  S3C44B0觸摸屏驅動(dòng)程序編制

  本文采用固定參考電壓模式,在驅動(dòng)程序開(kāi)發(fā)過(guò)程中,需要關(guān)注時(shí)鐘端、輸入端和輸出端的時(shí)序特性。首先檢測PENIRQ是否為低電平,只有觸摸屏有接觸時(shí)此位才會(huì )為低電平。利用軟件模擬DIN、DOUT和DCLK上的三線(xiàn)串行傳輸時(shí)序,將讀取的X或Y坐標數值的控制字串行送人ADS7843,然后再從對應的函數讀出該坐標值,獲取坐標值的源程序如下:

  int TOUCH_X_MeasureX(void)

  {

  X=ReadTouchXY(CHX);

  return X;

  }

  int TOUCH_X_MeasureY(void)

  {

  Y=ReadTouchXY(CHY);

  return Y;

  }

c語(yǔ)言相關(guān)文章:c語(yǔ)言教程


模數轉換器相關(guān)文章:模數轉換器工作原理



上一頁(yè) 1 2 3 下一頁(yè)

關(guān)鍵詞: ARM 觸摸屏 μC/GUI 201009

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>