基于SEP3203处理器的BSP的实现探讨
1、引言
BSP是Board Support Package的缩写。该术语通常用于嵌入式领域,主要指在开发嵌人式应用时系统开发商提供的各种支持库。由于每个嵌人式系统提供商都根据自己的操作系统而提出对BSP的不同理解,因此,在涉及到BSP的具体涵义时,必须基于具体的嵌入式系统。本文将以基于SEP3203的无线通讯产品为例,说明其BSP 的内容及实现。该无线通讯产品硬件结构如(图一 无线通讯产品硬件结构图),SEP3203外接了Nor flash和SDRAM,并通过串口与无线模块和仪表通讯。软件执行流程图如(图二无线通讯产品软件流程图)。该无线通讯产品的BSP将提供给应用程序开发者一个与硬件无关的开发平台。
2、概要设计
2.1、无线通信平台BSP的内容
根据无线数据终端的硬件平台,BSP的内容应包括EMI (存储器接口)的配置、PMU(电源管理模块)的配置、代码的搬运和串口的驱动程序。
2.2、整体框架
为了完成BSP的内容,上电后,首先应配置EMI,PMU,这是因为EMI 决定了内存的地址分配,而PMU 是配置其它硬件的前提。然后,考虑到代码执行效率,将代码搬运到内存中执行,并进行指针的重新定位。最后,在主程序中完成对串口的配置如(图三 BSP流程)。从上电开始到Remap操作结束运行的这段代码即为无线通信平台的启动代码。
3、启动代码的设计
3.1、启动代码的编写
上电后,pc指针指向地址0x00000000,而此时地址0x00000000与NOR FLASH 首地址重合, 这时NOR FLASH 同时拥有两个地址:0x00000000和0x20000000。因此,pc指针实际指向了NOR FALSH 的首地址,即为启动代码的起始地址。启动代码编写如下:
//配置PMU与EMI
ldr r1, =0x1000100c //配置内部模块时钟源供给的控制寄存器
ldr r2, =0x0ffff;
str r2,[r1]
ldr r1, =0x10001014 //配置芯片工作模式寄存器
ldr r2, =0x1
str r2,[r1]
……
ldr r1, =0x11000000 //配置存储器参数配置寄存器
ldr r2, =0xB91331FF
str r2, [ r1 ]
ldr r1, =0x11000014 //配置SDRAM 时序配置寄存器
ldr r2, =0x01004077
str r2, [ r1 ]
评论