ARM Cortex-A8/A9开发板 | ARM11开发板ARM11开发套件 | ARM9开发板ARM9开发套件 | 飞思卡尔I.MX28I.MX6开发板 |
tiny210/mini210开发板 | mini6410开发板/套餐 | Tiny6410开发板无线套件 | mini2440开发板/套餐 | micro2440开发板带核心板 | 友善开发板配件 模块 | QQ2440 V3 SBC-2410X |
FL2440 OK2440-IV V4 | OK2440-III OK2440V3 | TE2440-II TE2440V2 | OK6410 S3C6410 ARM11 | FL6410/OK6410B ARM11 | TE6410 S3C6410 ARM11 | TE-9263 AT91SAM9263 | 开发板配件 模块和其他 |
Xilinx开发板/fpga开发套件 | altera开发板/fpga开发套件 | 基于FMC FPGA/DSP子卡 |
BeagleBoard原厂开发板 | PandaBoard原厂开发板 |
TI DM3730 DevKit8500D | TI系列 omap3530开发板 | ATMEL系列 开发板 | Samsung系列 开发板 | 开发板配件-仿真器 模块 | NXP LPC3250 mini3250 |
Tiny210 三星S5PV210 | Mini210/Mini210s开发板 | Tiny4412开发板Cortex-A9 | Tiny6410开发板 ARM11 | mini2440开发板 ARM9 | micro2440开发板 ARM9 | mini6410开发板 ARM11 | 友善ARM开发板配件 模块 |
keil ARM仿真器/开发工具 | STM32开发板 Cortex-M3 | NXP LPC开发板Cortex-M3 | ATMEL系列 ARM开发板 | Luminary EKK8962开发板 | Freescale i.MX31开发板 | 三星s3c2440 s3c6410开发板 |
FL2440 OK2440-IV V4 | OK6410 S3C6410 ARM11 | FL6410/OK6410B ARM11 | OK210/-A Cortex-A8 | TE2440-II TE2440V2 | TE6410 S3C6410 ARM11 | TE-9263 AT91SAM9263 | ARM开发板配件 模块等 |
Real6410开发板/套餐 | Real210开发板/Real2410 | WIFI GPS GPRS模块摄像头 |
Xilinx开发板/开发套件KIT | Altera开发板/开发套件KIT | 配套模块 |
NXP LPC开发板 ARM7 | Cortex-M3 STM32开发板 | 最小系统模块类(初学者勿选) | 开发工具 仿真器 调试器 | TFT液晶屏LCD 液晶模块 |
DM642开发板/DM642实验箱 | DM6446开发板/DSP实验箱 | DSP仿真器 液晶屏 摄像头等 |
DM3730/AM3715/AM3359 | OMAP3530AM1808AM3517 | 飞思卡尔Cortex-A9开发板 | ATMEL系列ARM开发板 | NXP LPC3250 LPC1788 | Samsung系列ARM开发板 | STM32系列F207/F407 | ARM开发板配件-仿真器 模块 |
Realv210 S5PV210开发板 | Real6410开发板 ARM11 | WIFI GPS GPRS模块摄像头 |
NXP LPC开发板 ARM7 | Cortex-M3 STM32开发板 | ARM小系统模块(初学勿选) | 开发工具 ARM仿真器 调试器 | TFT液晶屏LCD 液晶模块 |
keil ARM仿真器/开发工具 | STM32开发板 Cortex-M3 | NXP LPC开发板Cortex-M3 | ATMEL系列 ARM开发板 | Luminary EKK8962开发板 | Freescale i.MX31开发板 | 三星s3c2440 s3c6410开发板 |
Exynos4412开发板A9四核 | UT-S5PV210 S5PC100 | UT-S3C6410开发板 ARM11 | idea 6410开发板 ARM11 | UT-S3C2450开发板 ARM9 | UT-S3C2416开发板 ARM9 | UT-S3C6410核心板 工控 |
Xilinx开发板 FPGA开发套件 | altera开发板 FPGA开发套件 | FMC模块 配件 下载线 |
DM642开发板/DM642实验箱 | DM6446开发板/DSP实验箱 | DSP仿真器 液晶屏 摄像头等 |
s3c2410 ARM9 FS2410 | s3c2440开发板 ARM9 | s3c44B0开发板 ARM7 | s3c6410 2450 2443/13 | PXA270 PXA320 PXA255 | Atmel 9200 9261 9G20 | Philips NXP开发板YL-LPC | FS-EP9315开发板ARM9 | LCD液晶屏TFT真彩/触摸屏 | ARM仿真器/仿真调试工具 | ARM开发板配套ARM核心板 |
三星s3c2410 s3c44B0 | 三星s3c6410 s3c2443 | Intel PXA270 PXA320 | UP-CUP OMAP5910平台 | FPGA Xilinx altera平台 | 配件-仿真器 模块 液晶屏LCD | 龙芯开发板UP-DRAGON-I | 物联网教学科研设备 | EDA/FPGA/SOPC教学科研 |
utu2440-F-V4.5 含核心板 | utu2440-S-V4.1 单板结构 | YC2440-F-V5.1开发板 豪华型 | YC-ePC-A系列人机界面 | Mars-EDA套件CPLD FPGA | 触摸屏LCD 摄像头 WI-FI模块 |
ARM开发板/开发平台 | FPGA开发板/开发平台 | 编程器/烧写器下载器烧录 | ZLG 仿真器ARM FPGA DSP | ZLG周立功逻辑分析仪 |
DSP初学者开发套件(DSK) | DSP仿真器/仿真系统 | DSP开发板/DSP试验箱 | DaVinci系列多媒体平台 | Xilinx FPGA大学计划产品 | SEED教学实验系统 | FPGA/DSP FPGA开发板 | TI原厂开发板套件/CCS软件 |
ARM开发板 | XSCALE开发板 | ARM仿真器 | SOPC开发板 | DSP开发板 | 达芬奇系列DSP开发平台 | DSP仿真器 | DSP实验箱 | DSP专业研究平台 | ARM实验箱系列 |
广嵌实验室项目产品 | GEC2440/GEC6410开发板 |
泰克Tektronix示波器 | 普源RIGOL示波器 | USB虚拟示波器 |
UT-S5PC100 UT-S5PV210 | UT-S3C6410开发板 ARM11 | idea 6410开发板 ARM11 | UT-S3C2450开发板 ARM9 | UT-S3C2416开发板 ARM9 | UT-S3C6410核心板 工控 | 开发板模块wifi gps等 |
EMA OMAP3530开发板 | EMA OMAP 3530核心板 |
三星s3c2410 s3c44B0 | 三星s3c6410 s3c2443 | Intel PXA270 PXA320 | UP-CUP OMAP5910平台 | FPGA Xilinx Altera平台 | 配件-仿真器 模块 液晶屏LCD | 龙芯系列 UP-DRAGON-I |
utu2440-F-V4.5 含核心板 | utu2440-S-V4.1 单板结构 | YC2440-F-V5.1开发板 豪华型 | 触摸屏LCD 摄像头 WI-FI模块 | Mars-EDA套件CPLD FPGA | ePC系列工控一体机ARM9 A8 |
ARM开发板/开发平台 | FPGA开发板/开发平台 | 编程器/烧写器下载器烧录 | ZLG 仿真器ARM FPGA DSP | ZLG周立功逻辑分析仪 |
DSP初学者开发套件(DSK) | DSP仿真器 | DSP开发板 | DSP实验箱 | Xilinx FPGA大学计划产品 |
ARM开发板 | XSCALE开发板 | ARM仿真器 | SOPC开发板 | DSP开发板 | 达芬奇系列DSP开发平台 | DSP仿真器 | DSP实验箱 | DSP专业研究平台 | ARM实验箱系列 |
ARM开发板S3C6410等 | Cortex-A8/ARM11仿真器 | ADSP Blackfin开发板 | FPGA Spartan-3E开发板 |
GEC2410开发套件ARM9 | GEC2440开发套件ARM9 |
泰克 示波器 |
择要:该文重要先容了SAMSUNG公司的基于ARM7TDMI核S3C4510B微处理惩罚器,并细致先容了利用该处理惩罚器所计划的嵌入式体系以及VxWorks操纵体系下BSP(Board Supported Package)的开辟。
关键词:ARM7TDMI S3C4510B VxWorks BSP
1 先容
S3C4510B是三星公司推出的针对嵌入式应用的16/32 位嵌入式处理惩罚器,该微控制器专为以太网通讯体系的集线器和路由器而计划,具有低本钱和高性能的特点, S3C4510B中内置了ARM公司计划的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热启动入口地点。它通常位于牢固的ROM_TEXT_ADRS+4的地方。当必要热启动时,sysLib.c文件中sysToMonitor( )函数代码明白的跳转到ROM_WARM_ADRS地点处开始实行。
ROM_SIZE:ROM实际大小。
RAM_LOW_ADRS:装载Vxworks的地点。
RAM_HIGH_ADRS:将Boot Rom Image拷贝到RAM的目标地点。
细致:RAM_LOW_ADRS 和 RAM_HIGH_ADRS 都是绝对地点,通常位于DRAM肇始地点的偏移量处,该偏移量取决于CPU布局,这必要参考VxWorks内存散布。对付ARM的内存散布请看图3,从图3可以看出RAM_LOW_ADRS在DRAM+0x1000处。这些地点对付S3C4510B来说都应该是重映射后的地点。
(3)修改config.h文件
重要是修改ROM_BASE_ADRS、ROM_TEXT_ADRS、ROM_SIZE、RAM_LOW_ADRS、RAM_HIGH_ADRS和undef失不必要的部分。细致这些应该和makefile文件中设置的同等。
(4)修改romInit.s文件
CPU一上电就开始实行romInit( )函数,因此在romInit.s代码段中它必须是第一个函数。对付热启动,处理惩罚器将会实行romInit( )加上4后的代码(详细参考sysLib.c中的sysToMonitor( )函数)。更多的硬件初始化在sysLib.c中sysHwInit( )函数中,romInit( )的事变便是做较少的初始化并把控制权交给romStart( )(在bootInit.c文件)。
在S3C4510B处理惩罚器中,romInit.s文件重要做了以下几个事变:
① 克制CPU停止并切换到SVC32模式;
② 克制停止控制器;
③ 初始化SYSCFG、EXTDBWTH、ROMCON0、ROMCON1、DRAMCON0等寄存器,同时初始化了FLASH、SDRAM、DM9008等外围配置;
④ 将FLASH的内容拷贝到SDRAM中;
⑤ 变化FLASH和SDRAM的基地点,将SDRAM基地点改为0;
⑥ 初始化堆栈指针;
⑦ 跳转到C步伐romStart( )函数中。
在这里,只必要修改SYSCFG、EXTDBWTH、ROMCON0、ROMCON1、DRAMCON0等寄存器来设置FLASH、SDRAM、DM9008的基地点和大小即可。这必要根据板上的配置来修改,修改的内容在wrSbcArm7.h文件中。
BSP根本部分就已经修改完成,至于bootInit.c和bootConfig.c文件,我们一样平常不必要修改它,只是在调试进程中为了方便调试,可以将他们拷贝到BSP目次下,然后修改makefile文件,在makefile文件中添加如下两句。
BOOTCONFIG = bootConfig.c
BOOTINIT = bootInit.c
(5)利用tsfs(target server file system)下载
要利用tsfs下载VxWorks,起首必要配置以下内容:
① 在config.h文件中添加如下内容
/* 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
并修改引导举动
#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用来表现引导信息,相称于PC机中的表现器,串口2用来下载VxWorks和调试。同时串口2波特率不克不及太高,经测试115200宛如不可。
② 配置target server
启动Tornado开辟环境,选择Tool->target server菜单。在下拉菜单中选“target server file system”并选中Enable File System,然后目次指向Vxworks地点的地方。同时细致要把Tornado Registry打开,如许配置完后点击Launch按钮即可连接告成,以后就可以通过串口2下载VxWorks和调试。
|
一样平常环境下,我们起首调试好BSP,然后在调试网卡。以是在调试网卡前,我们必要用串口来下载VxWorks映像。
至此,我们的BSP就开辟完成。
4 结论
在没有调试BSP的硬件东西如仿真器的时间,我们只能通过点灯大概串口输出来定位步伐实行的精确性。这大大增长了调试难度和进程。对付BSP开辟,一样平常必要从一个模板来修改。BSP开辟的精确性直接影响到VxWorks体系运行的稳固性。
博航网 www.broadon.net 版权所有
京ICP备10051899号-2 京公网安备110108006479号