基于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 ]
評論