基于SPARC V8 的嵌入式星載計(jì)算機(jī)
.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 代碼處,如果用戶自己編寫(xiě)初始化程序,則跳轉(zhuǎn)到的函數(shù)名稱(chēng)可以自行定義,如果使用編譯器自帶的啟動(dòng)程序,則必須定義main 函數(shù)為C 代碼主函數(shù)。
3.2 CPU初始化程序設(shè)計(jì)
當(dāng)使用一個(gè)嵌入式操作系統(tǒng)或者不使用嵌入式操作系統(tǒng)、一開(kāi)始就執(zhí)行嵌入式應(yīng)用程序時(shí),有許多因素需要考慮,主要有:
1、初始化執(zhí)行環(huán)境。
2、初始化應(yīng)用程序
例如:對(duì)于已初始化變量,要把初始值從ROM 復(fù)制到RAM 的,還要設(shè)置其他沒(méi)有初始化的變量為零。
3、接一個(gè)嵌入的可執(zhí)行的程序鏡像,將代碼和數(shù)據(jù)放入存儲(chǔ)器的特定區(qū)域里。
對(duì)于一個(gè)沒(méi)有嵌入式操作系統(tǒng)支持的嵌入式應(yīng)用程序來(lái)說(shuō),ROM 中的代碼必須規(guī)定一個(gè)初始化和啟動(dòng)執(zhí)行的應(yīng)用程序的方法。
3.3 目前工作及展望
星載計(jì)算機(jī)的基本設(shè)計(jì)和調(diào)試已經(jīng)完成,考慮到軟件的可重用性,將引入實(shí)時(shí)操作系統(tǒng),便于統(tǒng)一軟件接口和減少工程中軟件工作量。
4 結(jié)論
針對(duì)目前星載計(jì)算機(jī)CPU基本依賴(lài)進(jìn)口現(xiàn)狀,本設(shè)計(jì)使用性能較高國(guó)產(chǎn)基于SPARC V8的CPU,設(shè)計(jì)實(shí)現(xiàn)了用于未來(lái)航天工程的星載計(jì)算機(jī),對(duì)于航天技術(shù)的獨(dú)立自主發(fā)展有一定意義,對(duì)星載計(jì)算機(jī)CPU國(guó)產(chǎn)化是一種有益探索。
linux操作系統(tǒng)文章專(zhuān)題:linux操作系統(tǒng)詳解(linux不再難懂)
評(píng)論