新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于PXA255的PDA交通管理系統在Linux環境下的實現

        基于PXA255的PDA交通管理系統在Linux環境下的實現

        作者: 時間:2016-10-08 來源:網絡 收藏

        4 嵌入式 Linux的應用

        4.1 嵌入式Linux

        高端嵌入式系統要求許多高級的功能,如圖形用戶界面和網絡支持。很多高端RTOS供應商已經提供了這些功能,但其價格較高。微軟的Windows CE有此類功能,但不具備大多數嵌入式系統要求的實時性能,而且難以移植。以DOS為基礎用單獨的第三方工具拼湊成一個操作系統,同樣不能滿足嵌入式系統的要求。嵌入式Linux操作系統以價格低廉、功能強大又易于移植而被廣泛采用,成為新興的操作系統。Linux嵌入式操作系統是一種實時的、支持嵌入式系統應用的操作系統軟件,是嵌入式系統極為重要的組成部分,通常包括與硬件相關的底層驅動軟件、系統內核、設備驅動接口、通信協議、圖形界面、標準化瀏覽器等。嵌入式操作系統在系統實時高效性、硬件的相關依靠性、軟件固態化及應用的專用性等方面具有較為突出的特點。

        Linux是與Unix相似、以核心為基礎、完全內存保護、多任務多進程的操作系統,為嵌入操作系統提供了一個極有吸引力的選擇。PDA選擇嵌入式Linux作為操作系統,主要原因如下:

        (1)系統處理實時性好,性能穩定。

        (2)文件管理系統更適合于大量的圖像數據。

        (3)內核小巧和高效,作為專用系統,具有系統小、指令精簡、處理速度快等特點。

        (4)系統數據置于ROM/FLASH MEMORY,調用速度快,不會被改變,穩定性好。

        (5)本身內置網絡支持。

        4.2 PAD中嵌入式 Linux內核實現方法

        Linux系統分為三個層次:用戶、核心和硬件。Linux 內核可直接從Internet下載,也可從一發行版本如Red Hat Linux、Turbo Linux得到。Linux核心源代碼執行GPL 版權協議,任何人都可在遵循GPL版權協議條件下對Linux核心進行修改和補充,并可根據自身應用系統的需求,進行裁減定制,形成針對應用的嵌入式Linux內核。本方案采用Red hat Linux 6.0,內核版本2.2.5,在保留TCP/IP 網絡支持、STAR902以太網卡驅動的情況下,定制后的內核大小為360KB,足以滿足本系統中嵌入式硬件及軟件的需求。

        Linux核心源程序通常都安裝在/usr/src/linux下,核心源程序文件按樹形結構進行組織。在這里,對Linux內核進行分析:

        (1)系統的引導和初始化:Linux系統的引導有Lilo、 Loadin引導和Linux的自舉引導三種。而Linux的自舉引導所對應源程序為arch/i386/boot/bootsect.S,它為實模式匯編程序。無論哪種引導方式,最后都要跳轉到 arch/i386/Kernel/setup.S。setup.S主要進行實模式下的初始化,為系統進入保護模式做準備。此后,系統執行 arch/i386/kernel/head.S。head.S 中定義的一段匯編程序setup_idt,負責建立一張256項idt表,此表保存著所有自陷和中斷的入口地址,其中包括系統調用總控程序system_call 入口地址。除此之外,head.S還要做一些其他初始化工作。

        (2)系統初始化后,運行第一個內核程序asmlinkage void__init start_kernel(void),它定義在/usr/src/linux/init/main.c中。它通過調用usr/src/linux/arch/i386/kernel/traps.c中的函數void__init trap_init(void),把各個自陷和中斷服務程序的入口地址設置到idt表中。其中系統調用的總控程序system_call就是中斷服務程序之一。void__init trap_init(void)函數則通過調用一個宏 set_system_gate,把系統調用的總控程序入口掛在中斷0x80上。其中SYSCALL_VECTOR是定義在/usr/src/linux/arch/i386/kernel/irq.h中的一個常量0x80,而 system_call 為中斷總控程序的入口地址。中斷總控程序是用匯編語言在/usr/src/linux/arch/i386/kernel/entry.S中定義。

        (3)中斷總控程序主要負責保存處理機執行系統調用前的狀態,檢驗當前調用是否合法,并根據系統調用向量,使處理機跳轉到保存在sys_call_table 表中的相應系統服務例程的入口。從系統服務例程返回后退回用戶程序狀態,而系統調用向量則在/usr/src/linux/include/asm-386/unistd.h中定義,sys_call_table 表是在/usr/src/linux/arch/i386/kernel/entry.S中定義,系統調用的用戶編程接口在 /usr/src/linux/include/asm-386/unistd.h 中定義。

        (4)由此可見,Linux的系統調用也象DOS系統的 int 21h中斷服務,把0x80中斷作為總的入口,然后轉到保存在sys_call_table表中的各種中斷服務例程的入口地址,形成各種不同的中斷服務。由以上源代碼分析可知?熏要增加一個系統調用就必須在sys_call_table表中增加一項,并在其中保存好系統服務例程的入口地址,然后重新編譯內核。當然,系統服務例程是必不可少的。

        5 GPRS通信

        該系統采用GPRS通信方法。GPRS(通用分組無線業務)是GSM標準化組織制定的一套標準,以實現移動分組數據業務。GPRS網是一個傳輸承載平臺,提供端到端分組傳輸模式下數據發送和接收。GPRS具有五大特點:傳輸速率快;可靈活支持多種數據應用;網絡接入速度快;可長時間在線連接;計費更加合理。所以,采用GPRS通信可實現遠距離、傳輸速度高的通信。

        PDA中應用PXA255處理器,運行速度快,系統性能得到極大提高。嵌入式Linux作為PDA操作系統,可根據需要定制內核大小,簡單方便。Linux源代碼公開,可充分利用已有資源,節約開發人員工作量。Linux不存在“黑箱”,操作系統安全性得到了保障。采用該系統,提高了交通管理質量。該系統提高了數據傳輸速度,減少了系統建造的費用,降低了施工難度。


        上一頁 1 2 下一頁

        關鍵詞:

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 南宁市| 治县。| 克拉玛依市| 保德县| 当雄县| 岳池县| 兰坪| 菏泽市| 蒲城县| 牙克石市| 太和县| 临桂县| 隆子县| 化隆| 喀什市| 合作市| 望谟县| 弋阳县| 浦城县| 于田县| 新郑市| 牙克石市| 崇州市| 武城县| 临西县| 自贡市| 定州市| 清流县| 普兰县| 黄浦区| 察隅县| 关岭| 仙游县| 云梦县| 宜兰市| 宁蒗| 大城县| 通道| 芷江| 龙胜| 漾濞|