以文本方式查看主題 - 曙海教育集團論壇 (http://www.hufushizhe.com/bbs/index.asp) -- VxWorks BSP開發 (http://www.hufushizhe.com/bbs/list.asp?boardid=37) ---- 基于ARM7核處理器VxWorks系統BSP設計 (http://www.hufushizhe.com/bbs/dispbbs.asp?boardid=37&id=1941) |
-- 作者:wangxinxin -- 發布時間:2010-12-1 10:44:44 -- 基于ARM7核處理器VxWorks系統BSP設計 摘要:該文主要介紹了SAMSUNG公司的基于ARM7TDMI核S3C4510B微處理器,并詳細介紹了利用該處理器所設計的嵌入式系統以及VxWorks操作系統下BSP(Board Supported Package)的開發。 關鍵詞:ARM7TDMI S3C4510B VxWorks BSP 1 介紹 S3C4510B是三星公司推出的針對嵌入式應用的16/32 位嵌入式處理器,該微控制器專為以太網通信系統的集線器和路由器而設計,具有低成本和高性能的特點, S3C4510B中內置了設計的16/32位ARM7TDMI處理器, 可以執行32位的ARM指令,也可執行16位的THUMB指令, 并集成了多種外圍部件,主要有 ● 時鐘頻率50MHz ● 內核/IO電壓3.3V ● 8KB的Cache/SRAM ● 一個10/100Mbps 以太網控制器,MII接口 ● 兩個HDLC通道,每個通道可支持10Mbps ● 兩個UART通道 ● 兩個DMA通道 ● 兩個32位定時/計數器 ● 18個可編程I/O口 ● 中斷控制器,支持21個中斷源,包括4個外部中斷 ● 支持SDRAM,EDO DRAM,SRAM,Flash等 ● 具有擴展外部總線 ● JTAG接口,支持軟件開發 ,硬件調試 S3C4510B支持目前常用的嵌入式操作系統,如VxWorks、pSoS、ucLinux等,本文將主要介紹VxWorks操作系統下的軟件開發。 ARM7TDMI是ARM家族通用的一款32位微處理器,它主要為用戶提供了高性能、低價格解決方案。 ARM7TDMI具有三級流水線的32位RISC處理器,處理器結構為馮·諾依曼Load/Store。該CPU具有兩種指令集,即ARM和Thumb指令集。ARM指令集是32位,它可以利用CPU最大性能;而Thumb指令集則是16位指令集。 ARM7TDMI內核方塊圖如圖1所示。 該系統主要以S3C4510B為核心,外圍集成了以太網卡、SDRAM、FLASH、UART以及HDLC等。圖2是以S3C4510B為核心的最小系統設計圖。 3 VxWorks操作系統下BSP構建 在完成板上基本硬件的測試后,下面我就開始對vxWorks操作系統下BSP進行開發,開發前需要做一些準備工作,如準備開發工具等。 ① 開發工具用的是Tornado2.2 for ARM; ② 參考資料有BSP Kit、S3C4510B DataSheet; ③ 參考Tornado2.2 for ARM下自帶的wrSBCArm7 BSP; ④ 燒寫程序采用編程器。 通常在開發BSP的時候,我們需要在Tornado原帶BSP目錄下找一個與我們所用的處理器相同或相近。與BSP相關的文件有:romInit.s、sysAlib.s、bootInit.c、bootConfig.c、sysLib.c、config.h、configNet.h、makefile以及與我們硬件相關的,如串口sysSerial.c等。由于篇幅所限,具體的文件作用在此就不說了。下面主要根據S3C4510B來闡述一下BSP開發步驟。 (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的入口地址。對大多數板來說,這就是ROM地址區的首地址,然而也有的硬件配置使用ROM起始的一部分地址區作為復位向量,因此需要根據此設置偏移量作為它的地址。這個偏移量因CPU結構而定。 ROM_WARM_ADRS:BOOT ROM熱啟動入口 |