四虎成人免费视频,国产一级a作爱视频免费观9看,色五月丁香亚洲,亚洲欧美性爱在线视频,1000部黄片免费观看一区,国产亚洲性生活视频播放,三级黄色在线视频网站

現(xiàn)在位置:范文先生網(wǎng)>理工論文>電子通信論文>基于ARM7核處理器VxWorks系統(tǒng)BSP設(shè)計(jì)

基于ARM7核處理器VxWorks系統(tǒng)BSP設(shè)計(jì)

時(shí)間:2023-02-20 22:36:47 電子通信論文 我要投稿
  • 相關(guān)推薦

基于ARM7核處理器VxWorks系統(tǒng)BSP設(shè)計(jì)

  摘要:該文主要介紹了SAMSUNG公司的基于ARM7TDMI核S3C4510B微處理器,并詳細(xì)介紹了利用該處理器所設(shè)計(jì)的嵌入式系統(tǒng)以及VxWorks操作系統(tǒng)下BSP(BoardSupportedPackage)的開發(fā)。
  關(guān)鍵詞:ARM7TDMIS3C4510BVxWorksBSP
  
  1介紹
  
  S3C4510B是三星公司推出的針對嵌入式應(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,EDODRAM,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具有三級流水線的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)用)。
  
  3VxWorks操作系統(tǒng)下BSP構(gòu)建
  
  在完成板上基本硬件的測試后,下面我就開始對vxWorks操作系統(tǒng)下BSP進(jìn)行開發(fā),開發(fā)前需要做一些準(zhǔn)備工作,如準(zhǔn)備開發(fā)工具等。
  
  ①開發(fā)工具用的是Tornado2.2forARM;
  
 、趨⒖假Y料有BSPKit、S3C4510BDataSheet;
  
 、蹍⒖糡ornado2.2forARM下自帶的wrSBCArm7BSP;
  
 、軣龑懗绦虿捎镁幊唐鳌
  
  通常在開發(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
  
  將wrSBCArm7BSP拷貝一份并命名為4510BSP,接下來的工作就是修改該目錄下的文件,從而得到自己的BSP。
  
 。2)修改MakeFile文件
  
  修改4510BSP目錄下的makefile文件,修改如下幾行:
  
  TARGET_DIR=4510BSP#changedbycaiyang
  
  VENDOR=CAI#changedbycaiyang
  
  BOARD=MyArmBoard#changedbycaiyang
  
  ROM_TEXT_ADRS=01000000#ROMentryaddress
  
  ROM_WARM_ADRS=01000004#ROMwarmentryaddress
  
  ROM_SIZE=00080000#numberofbytesofROMspace
  
  RAM_LOW_ADRS=00006000#RAMtext/dataaddress(bootrom)
  
  RAM_HIGH_ADRS=00486000#RAMtext/dataaddress(bootrom)
  
  MACH_EXTRA=
  
  注解:ROM_TEXT_ADRS:BOOTROM的入口地址。對大多數(shù)板來說,這就是ROM地址區(qū)的首地址,然而也有的硬件配置使用ROM起始的一部分地址區(qū)作為復(fù)位向量,因此需要根據(jù)此設(shè)置偏移量作為它的地址。這個(gè)偏移量因CPU結(jié)構(gòu)而定。
  
  ROM_WARM_ADRS:BOOTROM熱啟動入口地址。它通常位于固定的ROM_TEXT_ADRS+4的地方。當(dāng)需要熱啟動時(shí),sysLib.c文件中sysToMonitor()函數(shù)代碼明確的跳轉(zhuǎn)到ROM_WARM_ADRS地址處開始執(zhí)行。
  
  ROM_SIZE:ROM實(shí)際大小。
  
  RAM_LOW_ADRS:裝載Vxworks的地址。
  
  RAM_HIGH_ADRS:將BootRomImage拷貝到RAM的目的地址。
  
  注意:RAM_LOW_ADRS和RAM_HIGH_ADRS都是絕對地址,通常位于DRAM起始地址的偏移量處,該偏移量取決于CPU結(jié)構(gòu),這需要參考VxWorks內(nèi)存分布。對于ARM的內(nèi)存分布請看圖3,從圖3可以看出RAM_LOW_ADRS在DRAM+0x1000處。這些地址對于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ù)。對于熱啟動,處理器將會執(zhí)行romInit()加上4后的代碼(具體參考sysLib.c中的sysToMonitor()函數(shù))。更多的硬件初始化在sysLib.c中sysHwInit()函數(shù)中,romInit()的工作就是做較少的初始化并把控制權(quán)交給romStart()(在bootInit.c文件)。
  
  在S3C4510B處理器中,romInit.s文件主要做了以下幾個(gè)工作:
  
 、俳笴PU中斷并切換到SVC32模式;
  
 、诮怪袛嗫刂破鳎
  
 、鄢跏蓟疭YSCFG、EXTDBWTH、ROMCON0、ROMCON1、DRAMCON0等寄存器,同時(shí)初始化了FLASH、SDRAM、DM9008等外圍設(shè)備;
  
 、軐LASH的內(nèi)容拷貝到SDRAM中;
  
  ⑤改變FLASH和SDRAM的基地址,將SDRAM基地址改為0;
  
 、蕹跏蓟褩V羔;
  
 、咛D(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(targetserverfilesystem)下載
  
  要利用tsfs下載VxWorks,首先需要配置以下內(nèi)容:
  
  ①在config.h文件中添加如下內(nèi)容
  
  /*Serialportconfiguration*/
  
  #defineINCLUDE_SERIAL
  
  #undefNUM_TTY
  
  #defineNUM_TTYN_SIO_CHANNELS
  
  #undefCONSOLE_TTY
  
  #defineCONSOLE_TTY0
  
  #undefCONSOLE_BAUD_RATE
  
  #defineCONSOLE_BAUD_RATE38400
  
  /***WDB***/
  
  #ifdefSERIAL_DEBUG
  
  #defineWDB_NO_BAUD_AUTO_CONFIG
  
  #undefWDB_COMM_TYPE
  
  #undefWDB_TTY_BAUD
  
  #undefWDB_TTY_CHANNEL
  
  #undefWDB_TTY_DEV_NAME
  
  #defineWDB_COMM_TYPEWDB_COMM_SERIAL/*WDBinSerialmode*/
  
  #defineWDB_TTY_BAUD38400/*BaudrateforWDBConnection*/
  
  #defineWDB_TTY_CHANNEL1/*COMPORT#2*/
  
  #defineWDB_TTY_DEV_NAME"/tyCo/1"/*defaultTYCODRV_5_2devicename*/
  
  #endif/*SERIAL_DEBUG*/
  
  /*tsfsaddedbycaiyang*/
  
  #defineINCLUDE_TSFS_BOOT
  
  并修改引導(dǎo)行為
  
  #defineDEFAULT_BOOT_LINE\par"tsfs(0,0)host:vxWorksf=8h=169.254.72.67e=169.254.72.68u=caiyangpw=caiyang"
  
  注:串口1用來顯示引導(dǎo)信息,相當(dāng)于PC機(jī)中的顯示器,串口2用來下載VxWorks和調(diào)試。同時(shí)串口2波特率不能太高,經(jīng)測試115200好像不行。
  
 、谂渲胻argetserver
  
  啟動Tornado開發(fā)環(huán)境,選擇Tool->targetserver菜單。在下拉菜單中選“targetserverfilesystem”并選中EnableFileSystem,然后目錄指向Vxworks所在的地方。同時(shí)注意要把TornadoRegistry打開,這樣配置完后點(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)程。對于BSP開發(fā),一般需要從一個(gè)模板來修改。BSP開發(fā)的正確性直接影響到VxWorks系統(tǒng)運(yùn)行的穩(wěn)定性。
  
  

【基于ARM7核處理器VxWorks系統(tǒng)BSP設(shè)計(jì)】相關(guān)文章:

基于VxWorks的多DSP系統(tǒng)的多任務(wù)程序設(shè)計(jì)08-06

基于ARM體系的嵌入式系統(tǒng)BSP的程序設(shè)計(jì)08-06

基于Vxworks實(shí)時(shí)操作系統(tǒng)的串口通信程序設(shè)計(jì)與實(shí)現(xiàn)08-19

基于MicroBlaze軟核的FPGA片上系統(tǒng)設(shè)計(jì)08-06

基于Rhapsody和VxWorks的自動取款機(jī)系統(tǒng)08-06

基于雙處理器的點(diǎn)焊控制系統(tǒng)的硬件設(shè)計(jì)08-06

基于Nios軟核的嵌入式Internet系統(tǒng)設(shè)計(jì)08-06

基于PSOS的TM1300應(yīng)用系統(tǒng)中的BSP研究08-06

基于VxWorks的嵌入式系統(tǒng)復(fù)合通信模式08-06