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