• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 嵌入式系統 > 設計應用 > μC/OS-II在GPRS終端系統中的應用

    μC/OS-II在GPRS終端系統中的應用

    ——
    作者: 時間:2007-12-29 來源: 收藏

      實時嵌入式操作系統面向中小型嵌入式應用,包含全部功能模塊的內核大約為10KB,RAM的應用量主要與系統中的任務數有關。

      是在目前運行的網絡基礎上發展起來的數據業務,可以采用與同樣的調制技術、頻率,以及同樣的TDMA幀結構。利用現有的基站子系統(BSS),從一開始就可以提供全面的覆蓋。

      終端系統的硬件組成

      GPRS終端系統主要由控制部分和GPRS無線模塊組成,如圖1所示。

      

      為了適應嵌入式技術在GPRS通信中的應用,系統的控制部分采用了S3C4480x芯片。

      S3C44B0x是16/32位RISC微處理器,為手持設備和通常應用提供了一種高性價比的解決方案。

      S3C44B0x具有豐富的片內資源,可以通過串行接口操作GPRS模塊,操作指令為AT命令集。

      GPRS無線模塊采用了SIM300,該模塊支持GPRS的語音、數據和短信息功能,內嵌TCP/IP協議。該模塊主要由射頻天線、內部Flash、SRAM、基帶處理器、匹配電源和一個60腳的ZIF插座組成。其中,GSM基帶處理器是核心部件,其作用相當于一個協議處理器,用來處理外部系統通過串口發送過來的AT指令。GPRS模塊接收速率可達86.2kbps,發送速率達21.5kbps,易于機集成。

      的移植

      μC/OS-Ⅱ是一個移植性很強的操作系統,其源代碼分為硬件無關和硬件有關兩個部分,移植時只需修改與硬件有關的部分。移植到S3C44B0X上,需做以下工作:

      (1)修改數據類型

      為保持與平臺的無關性,μC/OS-II使用經過宏定義的通用類型,如INT16U,表示16位無符號數。在移植時,要把它們映射成正確的類型。

      (2)進入和退出臨界段

      用關閉和打開中斷的方式,實現進入臨界段函數OS_ENTER_CRITICAL()和退出臨界段函數OS_EX2IT_CRITICAL()。

      (3)設置堆棧生長方向

      不同的處理器堆棧的生長方向不同,對S3C44B0X來說,其生長方向可以向上也可以向下。但是,由于編譯器ADS僅支持堆棧從上往下長,并且必須是滿遞減堆棧,所以這里要設置的實際使用方向為向下增長,即 #define OS_STR_GROWTH 1;

      (4)任務的切換和調度

      進行任務的切換和調度有兩種方法,一是當前運行的任務主動調用OS_Sched(),判斷是否有更高優先級的任務要運行,如果有就將其切換到就緒態,然后調用OS_FASK_SW(),產生一個軟中斷,中斷向量指向函數OSIntCtxSw(),在其中修改任務堆棧,運行新的任務。二是產生硬件中斷后,在中斷處理函數中調用OSIntEx()。

      在上述過程中,產生軟中斷和修改任務堆棧的代碼都是與處理器相關的,S3C44B0X的軟中斷匯編指令是SWI,壓棧和出棧的匯編指令分別是STM和LDM。

      (5)堆棧的初始化

      μC/OS-II在創建任務時會調用OSTaskStkInt()函數對任務堆棧進行初始化,這里需要將堆棧設置成和產生中斷后的形式一樣,一般包括任務起始地址、中斷返回地址、CPU寄存器等內容。另外,還要保證任務是運行在特權模式下,而不是用戶模式下。

      (6)時鐘節拍中斷

      μC/OS-II用時鐘節拍中斷實現時間延遲和超時功能,定時頻率一般在10Hz~100Hz。設置定時器的代碼與CPU相關,中斷向量必須指向μC/OS-II時鐘節拍中斷服務子程序OSTickISR()。

    {{分頁}}

      系統的流程和任務的組成

      本系統中,首先調用OSInit(),初始化μC/OS-II所有的變量和數據結構,再調用ARM_init()初始化微控制器的定時器及串口等硬件,通過調用OSTaskCreate(),依次創建各個任務,最后調用OSStart()啟動系統,開始多任務調度。整個系統控制程序模塊及流程如圖2所示。

      

      整個系統中的任務包括ARM控制部分的鍵盤掃描、LCD顯示任務、通信任務以及GPRS終端功能的短消息任務和語音通話任務等。因此,在μC/OS-II系統中的任務主要包括:

      鍵盤掃描任務task_sys_key scan(),包括4



    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 恩施市| 格尔木市| 卓资县| 滨州市| 金山区| 岢岚县| 淅川县| 巴马| 黄大仙区| 桦南县| 洪泽县| 鹤壁市| 赤壁市| 上林县| 阿克陶县| 赫章县| 图木舒克市| 临漳县| 昌乐县| 邵东县| 江达县| 成都市| 衡水市| 柏乡县| 永丰县| 西丰县| 天气| 新乐市| 桐乡市| 同心县| 大邑县| 临漳县| 双峰县| 新民市| 封丘县| 黄石市| 高清| 巧家县| 广宁县| 即墨市| 清新县|