微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > MCU和DSP > 基于SPARC V8 的嵌入式星载计算机

基于SPARC V8 的嵌入式星载计算机

时间:04-09 来源:微计算机信息 点击:

过汇编处理后生成一个可执行的镜像文件(即.exe 文件),该可执行文件包括下面三个部分:

一个或多个代码段,代码段通常是可读的

一个包含初始值的数据段,这些数据段通常是可读写的

零个或多个不包含初始值的数据段,这些数据段被初始化为0

V8 汇编程序的基本结构为:

.seg "text" !定义一个代码段

.global data, start, hardreset !定义全局变量

start: !标识程序开始,start 要定义为global

set data, %g1

set 3, %g2

add %g2, %g1, %g2

.seg "data"

data:

.word 128

3.1.2 程序设计

在应用系统的程序设计中,若所有的编程任务均用汇编语言来完成,其工作量是很大的。所以,V8 体系结构支持C 以及与汇编语言的混合编程,在一个完整的程序设计中,除了初始化部分用汇编语言完成以外,其主要的编程任务一般都用C 完成。汇编语言与C 的混合编程通常有以下几种方式:

在C 代码中嵌入汇编指令

在汇编程序和C 程序之间进行变量的相互访问

汇编程序和C 程序之间的相互调用

.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

以上的程序段完成简单的初始化,然后跳转到main 函数所标识的C 代码处,如果用户自己编写初始化程序,则跳转到的函数名称可以自行定义,如果使用编译器自带的启动程序,则必须定义main 函数为C 代码主函数。

3.2 CPU初始化程序设计

当使用一个嵌入式操作系统或者不使用嵌入式操作系统、一开始就执行嵌入式应用程序时,有许多因素需要考虑,主要有:

1、初始化执行环境。

2、初始化应用程序

例如:对于已初始化变量,要把初始值从ROM 复制到RAM 的,还要设置其他没有初始化的变量为零。

3、接一个嵌入的可执行的程序镜像,将代码和数据放入存储器的特定区域里。

对于一个没有嵌入式操作系统支持的嵌入式应用程序来说,ROM 中的代码必须规定一个初始化和启动执行的应用程序的方法。


图4 CPU初始化流程图

3.3 目前工作及展望

星载计算机的基本设计和调试已经完成,考虑到软件的可重用性,将引入实时操作系统,便于统一软件接口和减少工程中软件工作量。

4 结论

针对目前星载计算机CPU基本依赖进口现状,本设计使用性能较高国产基于SPARC V8的CPU,设计实现了用于未来航天工程的星载计算机,对于航天技术的独立自主发展有一定意义,对星载计算机CPU国产化是一种有益探索。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top