基于機(jī)器視覺的公路車流量檢測(cè)系統(tǒng)研究
3.1.2 程序設(shè)計(jì)
在應(yīng)用系統(tǒng)的程序設(shè)計(jì)中,若所有的編程任務(wù)均用匯編語言來完成,其工作量是很大的。所以,V8 體系結(jié)構(gòu)支持C 以及與匯編語言的混合編程,在一個(gè)完整的程序設(shè)計(jì)中,除了初始化部分用匯編語言完成以外,其主要的編程任務(wù)一般都用C 完成。匯編語言與C 的混合編程通常有以下幾種方式:
①在C 代碼中嵌入?yún)R編指令
②在匯編程序和C 程序之間進(jìn)行變量的相互訪問
③匯編程序和C 程序之間的相互調(diào)用
.seg “text”
.global start
start:
set 0x10e0, %g1
mov %g1, %psr
set 0x40000000, %g1
mov %g1, %tbr
set 0x40079000, %g1
mov %g1, %sp
call main
nop
nop
以上的程序段完成簡(jiǎn)單的初始化,然后跳轉(zhuǎn)到main 函數(shù)所標(biāo)識(shí)的C 代碼處,如果用戶自己編寫初始化程序,則跳轉(zhuǎn)到的函數(shù)名稱可以自行定義,如果使用編譯器自帶的啟動(dòng)程序,則必須定義main 函數(shù)為C 代碼主函數(shù)。
3.2 CPU初始化程序設(shè)計(jì)
當(dāng)使用一個(gè)嵌入式操作系統(tǒng)或者不使用嵌入式操作系統(tǒng)、一開始就執(zhí)行嵌入式應(yīng)用程序時(shí),有許多因素需要考慮,主要有:
1、初始化執(zhí)行環(huán)境。
2、初始化應(yīng)用程序
例如:對(duì)于已初始化變量,要把初始值從ROM 復(fù)制到RAM 的,還要設(shè)置其他沒有初始化的變量為零。www.51kaifa.com/
3、接一個(gè)嵌入的可執(zhí)行的程序鏡像,將代碼和數(shù)據(jù)放入存儲(chǔ)器的特定區(qū)域里。
對(duì)于一個(gè)沒有嵌入式操作系統(tǒng)支持的嵌入式應(yīng)用程序來說,ROM 中的代碼必須規(guī)定一個(gè)初始化和啟動(dòng)執(zhí)行的應(yīng)用程序的方法。
圖4 CPU初始化流程圖
3.3 目前工作及展望
星載計(jì)算機(jī)的基本設(shè)計(jì)和調(diào)試已經(jīng)完成,考慮到軟件的可重用性,將引入實(shí)時(shí)操作系統(tǒng),便于統(tǒng)一軟件接口和減少工程中軟件工作量。
4 結(jié)論
針對(duì)目前星載計(jì)算機(jī)CPU基本依賴進(jìn)口現(xiàn)狀,本設(shè)計(jì)使用性能較高國(guó)產(chǎn)基于SPARC V8的CPU,設(shè)計(jì)實(shí)現(xiàn)了用于未來航天工程的星載計(jì)算機(jī),對(duì)于航天技術(shù)的獨(dú)立自主發(fā)展有一定意義,對(duì)星載計(jì)算機(jī)CPU國(guó)產(chǎn)化是一種有益探索。
參考文獻(xiàn):
[1] 安軍社,面向空間有效載荷的可重構(gòu)高可靠計(jì)算機(jī)技術(shù)研究 ,西北工業(yè)大學(xué)博士學(xué)位研究生畢業(yè)論文 ,2004年3月
[2] 王連國(guó)、張健,基于國(guó)產(chǎn)CPU的航天計(jì)算機(jī)技術(shù)研究,2005年6月www.51kaifa.com/
[3] 時(shí)晨、于倫政,基于SPARC結(jié)構(gòu)的RISC系統(tǒng)設(shè)計(jì)技術(shù),微電子學(xué)與計(jì)算機(jī),2002年11月
[4] 鄧平科、林寶軍、張善從,基于ARM的1553B總線應(yīng)用,微計(jì)算機(jī)信息,2006年9月
評(píng)論