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