EDN China > 设计实例 > 测试与测量 > 正文
?

基于ARM的2M测试系统

微计算机信息 /桑占良 谈世哲?? 2008年05月23日 ?? 收藏0

  3系统软件设计

  软件部分主要由启动代码的设计和应用程序的设计,基于ARM是复杂的片上系统(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所示。

主程序流程图



?? ?? ??


打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮

1.扫描左侧二维码
2.点击右上角的分享按钮
3.选择分享给朋友
?? ??

E1线路? ARM? 2M测试系统? S3C2410?

相关文章

我来评论
美国的游客
美国的游客 ??? (您将以游客身份发表,请登录 | 注册)
?
有问题请反馈