a一级爱做片免费观看欧美,久久国产一区二区,日本一二三区免费,久草视频手机在线观看

新聞中心

EEPW首頁 > 嵌入式系統 > 設計應用 > 基于北斗二代的飛機除冰車定位系統設計

基于北斗二代的飛機除冰車定位系統設計

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

3.2 系統制作

本文引用地址:http://www.j9360.com/article/201610/305617.htm

Linux系統開發主要包括bootloader制作、Linux內核裁剪、字符設備驅動的添加及根文件系統的制作。

系統采用u-boot-1.1.6源碼制作bootloader,主要完成對于硬件的初始化及運行代碼的搬移工作,在u-boot的設計中,需使用軟浮點交叉編譯器進行編譯;內核以Linux-2.6.31源碼為基礎進行裁剪編譯,添加對于NAND FLASH、LCD等硬件及Yaffes2文件系統的支持,并添加DS18B20及A/D驅動程序;根文件系統采用Yaffes2文件系統進行制作,Yaffes2文件系統為專門針對NAND FLASH所設計的文件系統。

3.3 應用程序

應用程序主要實現TCP/IP連接及數據采集與發送。應用程序流程框圖如圖6所示。

基于北斗二代的飛機除冰車定位系統設計

程序采用多線程技術實現對于數據的采集與發送。在車載端上電后A通過向串口發送AT指令實現車載端與上位機的連接。在連接成功后,線程啟動開始工作。

程序定義一個全局變量buf[],用于存儲、發送采集到的數據,并利用多線程技術實現對于buf[]的操作,通過信號量實現對于數據采集與發送的同步操作。首先初始化兩個信號量:sere1和sere2。代碼如下:

sem_init(sem1,0,1);

sem_init(sem2,0,0);

程序首先對sem1、sem2進行P操作,此時sem1=0,sem20,數據采集線程執行,對數據進行采集并放入全局變量buf[]中,而后對sem2進行V操作sem2=0,數據發送線程執行,將數據發送至上位機,并對sem1進行V操作,sem1變為1,此時重復執行之前的步驟對數據進行采集與發送。通過對線程的PV操作實現數據采集線程與發送線程對全局變量buf[]的順序訪問。

但由于GTM900B是以ASCII碼的形式發送數據,因而在數據傳輸前需對數據進行格式轉化。數據轉換程序如下:

for(i=0;i2024;i++){

if(*g!=‘