一種基于SOPC技術的便攜式定位系統(tǒng)設計
3.3.1 終端初始化程序設計
終端初始化主要是在系統(tǒng)上電時完成硬件配置文件的下載,系統(tǒng)初始化和設備初始化等。使用main( ) 函數(shù),HAL系統(tǒng)庫能自動初始化系統(tǒng)。但自動初始化屏蔽了底層操作,一些沒有用到的設備驅(qū)動程序也進行了初始化,增加了程序代碼長度和降低了系統(tǒng)效率,ANSI C標準提供了一個供用戶自由初始化系統(tǒng)的函數(shù)alt_main( ),用戶可以在該函數(shù)中自由初始化系統(tǒng)而代替main( )的自動初始化,本系統(tǒng)的alt_main( )函數(shù)如下:
3.3.2 定位數(shù)據(jù)的采集程序設計
定位數(shù)據(jù)的采集主要采集GPS和數(shù)字指南針的定位數(shù)據(jù),采用串口接收中斷的方式。NIOS II中,串口包括6個16位的寄存器,在軟件中對應的數(shù)據(jù)結(jié)構(gòu)為:
串口被當成字符設備,對其訪問可以通過標準輸入(stdin)和標準輸出(stdio)來完成,也可以通過打開和寫文件的方式,本系統(tǒng)采用直接訪問寄存器方式,采用系統(tǒng)自動生成的訪問宏,這樣可以采用精簡Newlib C,減少程序代碼長度,并采用串口中斷方式接收數(shù)據(jù),NIOS II中使用中斷首先要向系統(tǒng)注冊,并且要打開硬件中斷。中斷采集GPS信號主要程序如下:
評論