當(dāng)前位置:首頁 > 嵌入式 > 嵌入式教程
[導(dǎo)讀]基于ARM7核處理器VxWorks系統(tǒng)BSP設(shè)計(jì)

   摘要:該文主要介紹了SAMSUNG公司的基于ARM7TDMI核S3C4510B微處理器,并詳細(xì)介紹了利用該處理器所設(shè)計(jì)的嵌入式系統(tǒng)以及VxWorks操作系統(tǒng)下BSP(Board Supported Package)的開發(fā)。

    關(guān)鍵詞:ARM7TDMI S3C4510B VxWorks BSP

1 介紹

S3C4510B是三星公司推出的針對(duì)嵌入式應(yīng)用的16/32 位嵌入式處理器,該微控制器專為以太網(wǎng)通信系統(tǒng)的集線器和路由器而設(shè)計(jì),具有低成本和高性能的特點(diǎn), S3C4510B中內(nèi)置了ARM公司設(shè)計(jì)的16/32位ARM7TDMI處理器, 可以執(zhí)行32位的ARM指令,也可執(zhí)行16位的THUMB指令, 并集成了多種外圍部件,主要有:

● 時(shí)鐘頻率50MHz

● 內(nèi)核/IO電壓3.3V

● 8KB的Cache/SRAM

● 一個(gè)10/100Mbps 以太網(wǎng)控制器,MII接口

● 兩個(gè)HDLC通道,每個(gè)通道可支持10Mbps

● 兩個(gè)UART通道

● 兩個(gè)DMA通道

● 兩個(gè)32位定時(shí)/計(jì)數(shù)器

● 18個(gè)可編程I/O口

● 中斷控制器,支持21個(gè)中斷源,包括4個(gè)外部中斷

● 支持SDRAM,EDO DRAM,SRAM,F(xiàn)lash等

● 具有擴(kuò)展外部總線

● JTAG接口,支持軟件開發(fā) ,硬件調(diào)試

S3C4510B支持目前常用的嵌入式操作系統(tǒng),如VxWorks、pSoS、ucLinux等,本文將主要介紹VxWorks操作系統(tǒng)下的軟件開發(fā)。

ARM7TDMI是ARM家族通用的一款32位微處理器,它主要為用戶提供了高性能、低價(jià)格解決方案。

ARM7TDMI具有三級(jí)流水線的32位RISC處理器,處理器結(jié)構(gòu)為馮·諾依曼Load/Store。該CPU具有兩種指令集,即ARM和Thumb指令集。ARM指令集是32位,它可以利用CPU最大性能;而Thumb指令集則是16位指令集。

ARM7TDMI內(nèi)核方塊圖如圖1所示。


2 系統(tǒng)硬件圖

該系統(tǒng)主要以S3C4510B為核心,外圍集成了以太網(wǎng)卡、SDRAM、FLASH、UART以及HDLC等。圖2是以S3C4510B為核心的最小系統(tǒng)設(shè)計(jì)圖。

    SDRAM選用HY57V653220(8Mbyte)、兩片F(xiàn)LASH分別為AM29F040(存放bootrom)和T28F160BT(作為文件系統(tǒng)用)。

3 VxWorks操作系統(tǒng)下BSP構(gòu)建

在完成板上基本硬件的測(cè)試后,下面我就開始對(duì)vxWorks操作系統(tǒng)下BSP進(jìn)行開發(fā),開發(fā)前需要做一些準(zhǔn)備工作,如準(zhǔn)備開發(fā)工具等。

① 開發(fā)工具用的是Tornado2.2 for ARM;

② 參考資料有BSP Kit、S3C4510B DataSheet;

③ 參考Tornado2.2 for ARM下自帶的wrSBCArm7 BSP;

④ 燒寫程序采用編程器。

通常在開發(fā)BSP的時(shí)候,我們需要在Tornado原帶BSP目錄下找一個(gè)與我們所用的處理器相同或相近。與BSP相關(guān)的文件有:romInit.s、sysAlib.s、bootInit.c、bootConfig.c、sysLib.c、config.h、configNet.h、makefile以及與我們硬件相關(guān)的,如串口sysSerial.c等。由于篇幅所限,具體的文件作用在此就不說了。下面主要根據(jù)S3C4510B來闡述一下BSP開發(fā)步驟。

(1)拷貝BSP

將wrSBCArm7 BSP拷貝一份并命名為4510BSP,接下來的工作就是修改該目錄下的文件,從而得到自己的BSP。

(2)修改MakeFile文件

修改4510BSP目錄下的makefile文件,修改如下幾行:

TARGET_DIR = 4510BSP # changed by caiyang

VENDOR = CAI # changed by caiyang

BOARD = MyArmBoard # changed by caiyang

ROM_TEXT_ADRS = 01000000 # ROM entry address

ROM_WARM_ADRS = 01000004 # ROM warm entry address

ROM_SIZE = 00080000 # number of bytes of ROM space

RAM_LOW_ADRS = 00006000 # RAM text/data address (bootrom)

RAM_HIGH_ADRS = 00486000 # RAM text/data address (bootrom)

MACH_EXTRA =

注解:ROM_TEXT_ADRS:BOOT ROM的入口地址。對(duì)大多數(shù)板來說,這就是ROM地址區(qū)的首地址,然而也有的硬件配置使用ROM起始的一部分地址區(qū)作為復(fù)位向量,因此需要根據(jù)此設(shè)置偏移量作為它的地址。這個(gè)偏移量因CPU結(jié)構(gòu)而定。

ROM_WARM_ADRS:BOOT ROM熱啟動(dòng)入口地址。它通常位于固定的ROM_TEXT_ADRS+4的地方。當(dāng)需要熱啟動(dòng)時(shí),sysLib.c文件中sysToMonitor( )函數(shù)代碼明確的跳轉(zhuǎn)到ROM_WARM_ADRS地址處開始執(zhí)行。

ROM_SIZE:ROM實(shí)際大小。

RAM_LOW_ADRS:裝載Vxworks的地址。

RAM_HIGH_ADRS:將Boot Rom Image拷貝到RAM的目的地址。

注意:RAM_LOW_ADRS 和 RAM_HIGH_ADRS 都是絕對(duì)地址,通常位于DRAM起始地址的偏移量處,該偏移量取決于CPU結(jié)構(gòu),這需要參考VxWorks內(nèi)存分布。對(duì)于ARM的內(nèi)存分布請(qǐng)看圖3,從圖3可以看出RAM_LOW_ADRS在DRAM+0x1000處。這些地址對(duì)于S3C4510B來說都應(yīng)該是重映射后的地址。

(3)修改config.h文件

主要是修改ROM_BASE_ADRS、ROM_TEXT_ADRS、ROM_SIZE、RAM_LOW_ADRS、RAM_HIGH_ADRS和undef掉不需要的部分。注意這些應(yīng)該和makefile文件中設(shè)置的一致。

(4)修改romInit.s文件

CPU一上電就開始執(zhí)行romInit( )函數(shù),因此在romInit.s代碼段中它必須是第一個(gè)函數(shù)。對(duì)于熱啟動(dòng),處理器將會(huì)執(zhí)行romInit( )加上4后的代碼(具體參考sysLib.c中的sysToMonitor( )函數(shù))。更多的硬件初始化在sysLib.c中sysHwInit( )函數(shù)中,romInit( )的工作就是做較少的初始化并把控制權(quán)交給romStart( )(在bootInit.c文件)。

在S3C4510B處理器中,romInit.s文件主要做了以下幾個(gè)工作:

① 禁止CPU中斷并切換到SVC32模式;

② 禁止中斷控制器;

③ 初始化SYSCFG、EXTDBWTH、ROMCON0、ROMCON1、DRAMCON0等寄存器,同時(shí)初始化了FLASH、SDRAM、DM9008等外圍設(shè)備;

④ 將FLASH的內(nèi)容拷貝到SDRAM中;

⑤ 改變FLASH和SDRAM的基地址,將SDRAM基地址改為0;

⑥ 初始化堆棧指針;

⑦ 跳轉(zhuǎn)到C程序romStart( )函數(shù)中。

在這里,只需要修改SYSCFG、EXTDBWTH、ROMCON0、ROMCON1、DRAMCON0等寄存器來設(shè)置FLASH、SDRAM、DM9008的基地址和大小即可。這需要根據(jù)板上的配置來修改,修改的內(nèi)容在wrSbcArm7.h文件中。

BSP基本部分就已經(jīng)修改完成,至于bootInit.c和bootConfig.c文件,我們一般不需要修改它,只是在調(diào)試過程中為了方便調(diào)試,可以將他們拷貝到BSP目錄下,然后修改makefile文件,在makefile文件中添加如下兩句。

BOOTCONFIG = bootConfig.c

BOOTINIT = bootInit.c

(5)利用tsfs(target server file system)下載

要利用tsfs下載VxWorks,首先需要配置以下內(nèi)容:

① 在config.h文件中添加如下內(nèi)容

/* Serial port configuration */

#define INCLUDE_SERIAL

#undef NUM_TTY

#define NUM_TTY N_SIO_CHANNELS

#undef CONSOLE_TTY

#define CONSOLE_TTY 0

#undef CONSOLE_BAUD_RATE

#define CONSOLE_BAUD_RATE 38400

/*** WDB ***/

#ifdef SERIAL_DEBUG

#define WDB_NO_BAUD_AUTO_CONFIG

#undef WDB_COMM_TYPE

#undef WDB_TTY_BAUD

#undef WDB_TTY_CHANNEL

#undef WDB_TTY_DEV_NAME

#define WDB_COMM_TYPE WDB_COMM_SERIAL /* WDB in Serial mode */

#define WDB_TTY_BAUD 38400 /* Baud rate for WDB Connection */

#define WDB_TTY_CHANNEL 1 /* COM PORT #2 */

#define WDB_TTY_DEV_NAME "/tyCo/1" /* default TYCODRV_5_2 device name */

#endif /* SERIAL_DEBUG */

/* tsfs added by caiyang */

#define INCLUDE_TSFS_BOOT

并修改引導(dǎo)行為

#define DEFAULT_BOOT_LINE par "tsfs(0,0)host:vxWorks f=8 h=169.254.72.67 e=169.254.72.68 u=caiyang pw=caiyang"

注:串口1用來顯示引導(dǎo)信息,相當(dāng)于PC機(jī)中的顯示器,串口2用來下載VxWorks和調(diào)試。同時(shí)串口2波特率不能太高,經(jīng)測(cè)試115200好像不行。

② 配置target server

啟動(dòng)Tornado開發(fā)環(huán)境,選擇Tool->target server菜單。在下拉菜單中選“target server file system”并選中Enable File System,然后目錄指向Vxworks所在的地方。同時(shí)注意要把Tornado Registry打開,這樣配置完后點(diǎn)擊Launch按鈕即可連接成功,此后就可以通過串口2下載VxWorks和調(diào)試。

一般情況下,我們首先調(diào)試好BSP,然后在調(diào)試網(wǎng)卡。所以在調(diào)試網(wǎng)卡前,我們需要用串口來下載VxWorks映像。

至此,我們的BSP就開發(fā)完成。

4 結(jié)論

在沒有調(diào)試BSP的硬件工具如仿真器的時(shí)候,我們只能通過點(diǎn)燈或者串口輸出來定位程序執(zhí)行的正確性。這大大增加了調(diào)試難度和進(jìn)程。對(duì)于BSP開發(fā),一般需要從一個(gè)模板來修改。BSP開發(fā)的正確性直接影響到VxWorks系統(tǒng)運(yùn)行的穩(wěn)定性。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉