新聞中心

        EEPW首頁(yè) > 消費(fèi)電子 > 設(shè)計(jì)應(yīng)用 > 智能手機(jī)電話短信實(shí)驗(yàn)?zāi)K設(shè)計(jì)與實(shí)現(xiàn)

        智能手機(jī)電話短信實(shí)驗(yàn)?zāi)K設(shè)計(jì)與實(shí)現(xiàn)

        作者: 時(shí)間:2010-09-30 來(lái)源:網(wǎng)絡(luò) 收藏

        1.2.1 Bootloader
        Bootloader是系統(tǒng)上電后運(yùn)行的第一段代碼,主要工作是完成硬件的初始化和為加載操作系統(tǒng)準(zhǔn)備好條件。它的是依賴(lài)于硬件的,不同體系結(jié)構(gòu)開(kāi)發(fā)板的Bootloader變化很大。為了更好地支持目標(biāo)板的硬件設(shè)備,該系統(tǒng)選擇在ADS1.2集成開(kāi)發(fā)環(huán)境下開(kāi)發(fā)自己的Bootloa-der。Bootloader的過(guò)程主要分為以下2個(gè)階段:
        (1)主要進(jìn)行與CPU內(nèi)核以及存儲(chǔ)設(shè)備密切相關(guān)的初始化處理工作,這部分的代碼通常用ARM匯編指令編寫(xiě),包含在start.S文件中。通常包括一些步驟:
        ①硬件初始化工作。包括關(guān)閉看門(mén)狗;屏蔽所有中斷;設(shè)置處理器時(shí)鐘和工作頻率;初始化外部寄存器;初始化堆棧指針。
        ②為階段(2)準(zhǔn)備RAM空間,并把階段(2)的代碼拷貝倒RAM,跳轉(zhuǎn)倒階段(2)的入口點(diǎn)。
        (2)完成一般的啟動(dòng)流程以及提供目標(biāo)板設(shè)備的驅(qū)動(dòng)支持,這部分會(huì)被拷貝倒RAM中執(zhí)行,這段代碼通常由C語(yǔ)言來(lái),具有較強(qiáng)的可讀性和移植性。
        通常包括一下步驟:
        ①通過(guò)set_gpios()函數(shù)完成通用I/0設(shè)置;
        ②通過(guò)mere_map_init(),mmu_init()函數(shù)完成內(nèi)存映射和內(nèi)存管理單元初始化;
        ③初始化MTD設(shè)備,使用mtd_dev_init()函數(shù);
        ④拷貝NAND FLASH中的Kernel映像文件和根文件系統(tǒng)映像到RAM空間中;
        ⑤跳轉(zhuǎn)到內(nèi)核的第一條指令處。
        至此,Bootloader的任務(wù)結(jié)束,接下來(lái)的任務(wù)由操作系統(tǒng)完成。
        1.2.2 操作系統(tǒng)的剪裁、移植
        操作系統(tǒng)負(fù)責(zé)對(duì)整個(gè)的外圍設(shè)備進(jìn)行管理和對(duì)各個(gè)軟件任務(wù)進(jìn)行調(diào)度。這對(duì)于而言是非常重要的。操作系統(tǒng)采用開(kāi)源、免費(fèi)的Linux,基于嵌入式Linux 2.6版本進(jìn)行移植,主要移植過(guò)程包括建立開(kāi)發(fā)環(huán)境、下載內(nèi)核源碼、修改配置文件、配置內(nèi)核、編譯內(nèi)核、編譯幾個(gè)步驟,因?yàn)橐浦驳倪^(guò)程大致相同,這里只做簡(jiǎn)單介紹:
        (1)宿主機(jī)上的交叉編譯工具采用arm-linux-gcc-3.4.1 ;
        (2)修改commom-smdk.c文件,為NANDFLASH設(shè)置分區(qū);
        (3)修改配置文件fs/Kconfig,使內(nèi)核支持啟動(dòng)時(shí)掛載devfs;
        (4)配置內(nèi)核;
        (5)編譯內(nèi)核與,用Busy-box工具制作yaffs文件系統(tǒng)。
        1.2.3 嵌入武GUI Qtopia的移植
        嵌入式GUI用于開(kāi)發(fā)、應(yīng)用程序圖形界面,本文采用Trolltech公司的Qtopia作為圖形界面庫(kù),采用版本是Qtopia-core-opensou rce-src-4.4.3。移植的主要工作有:
        (1)修改qmouselinuxtp_qws.h文件,使Qtopia支持觸摸屏;
        (2)配置、編譯、安裝;
        (3)拷貝相關(guān)的庫(kù)文件到開(kāi)發(fā)板,并設(shè)置環(huán)境變量。

        2 應(yīng)用程序
        應(yīng)用程序是最基本也是最核心的應(yīng)用。應(yīng)用程序的主要工作包括:電話短信應(yīng)用程序的流程、通信和應(yīng)用處理器的串口通信以及電話和短消息應(yīng)用程序界面開(kāi)發(fā)。
        2.1 電話/短信應(yīng)用程序流程
        應(yīng)用程序采用定時(shí)器函數(shù)來(lái)控制整個(gè)程序的流程。定時(shí)器每200 ms觸發(fā)1次。
        新電話、新短信的檢測(cè)流程如圖3所示,應(yīng)用程序初始化需要對(duì)GSM/GPRS通信模塊與應(yīng)用處理器之間的接口進(jìn)行初始化,此外還要定義1個(gè)200 ms觸發(fā)的定時(shí)器。系統(tǒng)初始化完畢之后,定時(shí)器觸發(fā)開(kāi)始讀串口數(shù)據(jù)進(jìn)行判斷。當(dāng)串口無(wú)數(shù)據(jù)時(shí),等待下一次定時(shí)器出發(fā);當(dāng)串口有數(shù)據(jù)時(shí),將串口的數(shù)據(jù)進(jìn)行判斷;當(dāng)數(shù)據(jù)中有新短信提示符時(shí),按照PDU短信的解碼格式對(duì)該短信進(jìn)行解碼,并調(diào)用UI界面提示用戶新短信到達(dá),詢(xún)問(wèn)用戶是否閱讀;當(dāng)數(shù)據(jù)中有新電話提示符時(shí),調(diào)用UI界面,詢(xún)問(wèn)用戶是否接聽(tīng)。

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



        評(píng)論


        相關(guān)推薦

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

        關(guān)閉
        主站蜘蛛池模板: 阜平县| 林州市| 临潭县| 襄樊市| 文水县| 荆门市| 伊宁县| 两当县| 南华县| 邹平县| 嘉峪关市| 沈丘县| 兰西县| 喀什市| 全椒县| 梁河县| 马边| 肥乡县| 鸡西市| 巢湖市| 太仓市| 崇仁县| 通河县| 海林市| 神池县| 唐海县| 景谷| 三台县| 锦屏县| 遂宁市| 丽水市| 清水县| 普安县| 亳州市| 思茅市| 穆棱市| 屏山县| 宁强县| 北宁市| 明光市| 防城港市|