新闻中心

EEPW首页 > 测试测量 > 设计应用 > 基于ARM的2M测试系统

基于ARM的2M测试系统

作者:桑占良 谈世哲时间:2008-05-23来源:微计算机信息收藏

  3系统软件设计

本文引用地址:http://www.amcfsurvey.com/article/82975.htm

  软件部分主要由启动代码的设计和应用程序的设计,基于是复杂的片上系统(SOC),这种复杂系统里的多数硬件模块都是可配置的,需要由软件来设置其需要的工作状态。因此在用户的应用程序启动之前,需要有专门的一段启动代码来完成对系统的初始化。由于这类代码直接面对处理器内核和硬件控制器进行编程,一般都是用汇编语言写的。启动代码就是完成各种初始化工作,并引导进入C程序。

  3.1 bootloader设计

  启动代码[5]的主要实现功能包括以下部分:

  (1)设置程序入口指针;

  (2)设置中断向量表;

  (3)初始化存储器系统;

  (4)初始化CPU各种模式的堆栈和寄存器;

  (5)初始化目标系统中要使用的各种片内外设;

  (6)初始化用户程序执行环境;

  (7)引导主应用程

  具体实现的部分代码如下:                       

  AERA Init, CODE,READONLY

  ENTRY             ;定义入口点

  B SYS_RST_HANDLER ;系统上电复位操作

  B UDF_INS_HANDLER ;处理未定义中断模式

  B SWI_SVC_HANDLER ;处理软件中断

  B INS_ABT_HANDLER

  B DAT_ABT_HANDLER ;处理中止异常

  B .

  B IRQ_SVC_HANDLER ;处理IRQ 中断

  B FIQ_SVC_HANDLER ;处理FIQ中断

  SYS_RST_HANDLER

  MSR R0, CPSR      ;禁止中断

  ORR R0,R0,#0XC0

  MSR CPSR_C,R0

  BL initcpu        ;调整PLL和时钟

  BL initmem        ;初始化存储器

  BL initstack      ;设置堆栈

  …                   …

  …                   …

  …                   …                                             

  B main           ; 跳转到主应用程序        

  3.2应用程序的设计

  应用程序采用C语言编写,由其实现本系统中所需的各种功能。根据系统功能需求,软件划分为以下模块:液晶显示模块、设置模块、指标计算模块等部分。软件设计思想是利用S3C2410的中断控制整个软件的流程。共使用4个硬件中断来完成系统的功能:一个内部硬件定时中断,3个外部硬件中断(键盘中断、串口中断、E1中断)。主程序流程图如图2所示。

       



评论


相关推荐

技术专区

关闭