基于SEP3203處理器的BSP的實現(xiàn)探討
1、引言
BSP是Board Support Package的縮寫。該術(shù)語通常用于嵌入式領(lǐng)域,主要指在開發(fā)嵌人式應(yīng)用時系統(tǒng)開發(fā)商提供的各種支持庫。由于每個嵌人式系統(tǒng)提供商都根據(jù)自己的操作系統(tǒng)而提出對BSP的不同理解,因此,在涉及到BSP的具體涵義時,必須基于具體的嵌入式系統(tǒng)。本文將以基于SEP3203的無線通訊產(chǎn)品為例,說明其BSP 的內(nèi)容及實現(xiàn)。該無線通訊產(chǎn)品硬件結(jié)構(gòu)如(圖一 無線通訊產(chǎn)品硬件結(jié)構(gòu)圖),SEP3203外接了Nor flash和SDRAM,并通過串口與無線模塊和儀表通訊。軟件執(zhí)行流程圖如(圖二無線通訊產(chǎn)品軟件流程圖)。該無線通訊產(chǎn)品的BSP將提供給應(yīng)用程序開發(fā)者一個與硬件無關(guān)的開發(fā)平臺。
2、概要設(shè)計
2.1、無線通信平臺BSP的內(nèi)容
根據(jù)無線數(shù)據(jù)終端的硬件平臺,BSP的內(nèi)容應(yīng)包括EMI (存儲器接口)的配置、PMU(電源管理模塊)的配置、代碼的搬運和串口的驅(qū)動程序。
2.2、整體框架
為了完成BSP的內(nèi)容,上電后,首先應(yīng)配置EMI,PMU,這是因為EMI 決定了內(nèi)存的地址分配,而PMU 是配置其它硬件的前提。然后,考慮到代碼執(zhí)行效率,將代碼搬運到內(nèi)存中執(zhí)行,并進行指針的重新定位。最后,在主程序中完成對串口的配置如(圖三 BSP流程)。從上電開始到Remap操作結(jié)束運行的這段代碼即為無線通信平臺的啟動代碼。
3、啟動代碼的設(shè)計
3.1、啟動代碼的編寫
上電后,pc指針指向地址0x00000000,而此時地址0x00000000與NOR FLASH 首地址重合, 這時NOR FLASH 同時擁有兩個地址:0x00000000和0x20000000。因此,pc指針實際指向了NOR FALSH 的首地址,即為啟動代碼的起始地址。啟動代碼編寫如下:
//配置PMU與EMI
ldr r1, =0x1000100c //配置內(nèi)部模塊時鐘源供給的控制寄存器
ldr r2, =0x0ffff;
str r2,[r1]
ldr r1, =0x10001014 //配置芯片工作模式寄存器
ldr r2, =0x1
str r2,[r1]
……
ldr r1, =0x11000000 //配置存儲器參數(shù)配置寄存器
ldr r2, =0xB91331FF
str r2, [ r1 ]
ldr r1, =0x11000014 //配置SDRAM 時序配置寄存器
ldr r2, =0x01004077
str r2, [ r1 ]
評論