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

    EEPW首頁 > 嵌入式系統 > 設計應用 > 采用嵌入式S3C2410芯片的智能手機電話短信模塊設計

    采用嵌入式S3C2410芯片的智能手機電話短信模塊設計

    作者: 時間:2012-08-31 來源:網絡 收藏

     1.2.1 Bootloader

      Bootloader是系統上電后運行的第一段代碼,主要工作是完成硬件的初始化和為加載操作系統準備好條件。它的實現是依賴于硬件的,不同體系結構開發板的Bootloader變化很大。為了更好地支持目標板的硬件設備,該系統選擇在ADS1.2集成開發環境下開發自己的Bootloa-der。 Bootloader的實現過程主要分為以下2個階段:

    本文引用地址:http://www.czjhyjcfj.com/article/148477.htm

      (1)主要進行與CPU內核以及存儲設備密切相關的初始化處理工作,這部分的代碼通常用ARM匯編指令編寫,包含在start.S文件中。通常包括一些步驟:

      ①硬件初始化工作。包括關閉看門狗;屏蔽所有中斷;設置處理器時鐘和工作頻率;初始化外部寄存器;初始化堆棧指針。

      ②為階段(2)準備RAM空間,并把階段(2)的代碼拷貝倒RAM,跳轉倒階段(2)的入口點。

      (2)完成一般的啟動流程以及提供目標板設備的驅動支持,這部分會被拷貝倒RAM中執行,這段代碼通常由C語言來實現,具有較強的可讀性和移植性。

      通常包括一下步驟:

      ①通過set_gpios()函數完成通用I/0設置;

      ②通過mere_map_init(),mmu_init()函數完成內存映射和內存管理單元初始化;

      ③初始化MTD設備,使用mtd_dev_init()函數;

      ④拷貝NAND FLASH中的Kernel映像文件和根文件系統映像到RAM空間中;

      ⑤跳轉到內核的第一條指令處。

      至此,Bootloader的任務結束,接下來的任務由操作系統完成。

      1.2.2 操作系統的剪裁、移植

      操作系統負責對整個的外圍設備進行管理和對各個軟件任務進行調度。這對于而言是非常重要的。操作系統采用開源、免費的Linux,基于Linux 2.6版本進行移植,主要移植過程包括建立開發環境、下載內核源碼、修改配置文件、配置內核、編譯內核、編譯幾個步驟,因為移植的過程大致相同,這里只做簡單介紹:

      (1)宿主機上的交叉編譯工具采用arm-linux-gcc-3.4.1 ;

      (2)修改commom-smdk.c文件,為NANDFLASH設置分區;

      (3)修改配置文件fs/Kconfig,使內核支持啟動時掛載devfs;

      (4)配置內核;

      (5)編譯內核與,用Busy-box工具制作yaffs文件系統。

      1.2.3 嵌入武GUI Qtopia的移植

      GUI用于開發應用程序圖形界面,本文采用Trolltech公司的Qtopia作為圖形界面庫,采用版本是Qtopia-core-opensou rce-src-4.4.3。移植的主要工作有:

      (1)修改qmouselinuxtp_qws.h文件,使Qtopia支持觸摸屏;

      (2)配置、編譯、安裝;

      (3)拷貝相關的庫文件到開發板,并設置環境變量。

      2 應用程序

      應用程序是最基本也是最核心的應用。應用程序的主要工作包括:電話短信應用程序的流程、通信和應用處理器的串口通信以及電話和短消息應用程序界面開發。

      2.1 電話/短信應用程序流程

      應用程序采用定時器函數來控制整個程序的流程。定時器每200 ms觸發1次。

      新電話、新短信的檢測流程如圖3所示,應用程序初始化需要對GSM/GPRS通信模塊與應用處理器之間的接口進行初始化,此外還要定義1個200 ms觸發的定時器。系統初始化完畢之后,定時器觸發開始讀串口數據進行判斷。當串口無數據時,等待下一次定時器出發;當串口有數據時,將串口的數據進行判斷;當數據中有新短信提示符時,按照PDU短信的解碼格式對該短信進行解碼,并調用UI界面提示用戶新短信到達,詢問用戶是否閱讀;當數據中有新電話提示符時,調用UI界面,詢問用戶是否接聽。

      

      當需要發送短信或撥號時,應用程序流程如圖4所示。當用戶調用發信界面編輯好短信,并輸入完收信方,點擊發送鈕時,應用程序首先判斷短信中心號碼和接收信息號碼是否正確,若不正確,提示用戶錯誤;若號碼和號碼格式均正確,便對要發送的短信內容按照進行PDU短信格式進行編碼,并向串口寫AT命令以便將該短信發送出去。撥號和掛斷電話的流程很簡單,只需要向串口寫入ATD+所撥號碼以及ATH就可,當撥號錯誤時,提示用戶撥號錯誤。

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

    上一頁 1 2 下一頁

    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 历史| 建水县| 常州市| 丹凤县| 漠河县| 永修县| 深州市| 思茅市| 永安市| 油尖旺区| 阳谷县| 普定县| 罗源县| 永定县| 广水市| 册亨县| 三明市| 南郑县| 利津县| 清流县| 林西县| 岐山县| 兴隆县| 施秉县| 肥东县| 巩义市| 石狮市| 中山市| 咸宁市| 老河口市| 兴山县| 获嘉县| 闸北区| 石泉县| 黔江区| 鸡东县| 顺义区| 陈巴尔虎旗| 阜阳市| 邵武市| 延庆县|