新聞中心

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

        嵌入式實時操作系統μC/OS-II在GPRS終端系統中的應用

        作者: 時間:2011-05-11 來源:網絡 收藏

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

        本文引用地址:http://www.104case.com/article/150762.htm

          的硬件組成

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

          

          圖1 GPRS的硬件組成原理

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

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

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

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

          μ的移植

          μ是一個移植性很強的,其源代碼分為硬件無關和硬件有關兩個部分,移植時只需修改與硬件有關的部分。移植μ到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_TASK_SW() ,產生一個軟中斷,中斷向量指向函數OSIntCtxSw() ,在其中修改任務堆棧,運行新的任務。二是產生硬件中斷后,在中斷處理函數中調用OSIntEx()。

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

          (5) 堆棧的初始化

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

          (6) 時鐘節拍中斷

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

        linux操作系統文章專題:linux操作系統詳解(linux不再難懂)

        tcp/ip相關文章:tcp/ip是什么



        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 阜宁县| 中阳县| 丰县| 林芝县| 喀什市| 河源市| 平顺县| 武功县| 从化市| 赞皇县| 曲松县| 葵青区| 大丰市| 长沙县| 沾益县| 海原县| 沙湾县| 石泉县| 山丹县| 华宁县| 石棉县| 合水县| 西充县| 嘉祥县| 石城县| 克什克腾旗| 扶余县| 乌兰县| 永丰县| 出国| 海南省| 溧阳市| 富平县| 黑河市| 威信县| 南涧| 张家港市| 格尔木市| 颍上县| 济阳县| 宾阳县|