基于ARM7核处理器VxWorks系统BSP设计_第1页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基于arm7核处理器vxworks系统bsp设计该文主要介绍了samsung公司的基于7tdmi核s3c4510b微处理器,并具体介绍了利用该处理器所设计的系统以及操作系统下bsp(board supported package)的开发。1 介绍s3c4510b是三星公司推出的针对嵌入式应用的16/32 位嵌入式处理器,该微控制器专为以太网通信系统的集线器和路由器而设计,具有低成本和高性能的特点, s3c4510b中内置了arm公司设计的16/32位arm7tdmi处理器, 可以执行32位的arm命令,也可执行16位的thumb命令, 并集成了多种外围部件,主要有: 时钟频率50mhz 内核/

2、io3.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、uc等,本文将主要介绍vxworks操作系统下的软件开发。arm7tdmi是arm家族通用的一款32位微处理器,它主要为用户提供了高性能、低价格解

3、决计划。arm7tdmi具有三级流水线的32位risc处理器,处理器结构为冯%26;183;诺依曼load/store。该cpu具有两种命令集,即arm和thumb命令集。arm命令集是32位,它可以利用cpu最大性能;而thumb命令集则是16位命令集。arm7tdmi内核方块图1所示。2 系统硬件图该系统主要以s3c4510b为核心,外围集成了以太网卡、sdram、flash、uart以及hdlc等。图2是以s3c4510b为核心的最小系统设计图。sdram选用hy57v653220(8mbyte)、两片flash分离为am29f040(存放bootrom)和t28f160bt(作为文件系

4、统用)。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

5、、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 caiyangvendor = cai changed by caiyangboa

6、rd = myarmboard changed by caiyangrom_text_adrs = 01000000 rom entry addressrom_warm_adrs = 01000004 rom warm entry addressrom_size = 00080000 number of bytes of rom spaceram_low_adrs = 00006000 ram text/data address (bootrom)ram_high_adrs = 00486000 ram text/data address (bootrom)mach_extra =注解:rom

7、_text_adrs:boot rom的入口地址。对大多数板来说,这就是rom地址区的首地址,然而也有的硬件配置用法rom起始的一部分地址区作为复位向量,因此需要按照此设置偏移量作为它的地址。这个偏移量因cpu结构而定。rom_warm_adrs:boot rom热启动入口地址。它通常位于固定的rom_text_adrs4的地方。当需要热启动时,syslib.c文件中systomonitor( )函数代码明确的跳转到rom_warm_adrs地址处开头执行。rom_size:rom实际大小。ram_low_adrs:装载vxworks的地址。ram_high_adrs:将boot rom im

8、age拷贝到ram的目的地址。注重:ram_low_adrs 和 ram_high_adrs 都是肯定地址,通常位于dram起始地址的偏移量处,该偏移量取决于cpu结构,这需要参考vxworks内存分布。对于arm的内存分布请看图3,从图3可以看出ram_low_adrs在dram0x1000处。这些地址对于s3c4510b来说都应当是重映射后的地址。(3)修改config.h文件主要是修改rom_base_adrs、rom_text_adrs、rom_size、ram_low_adrs、ram_high_adrs和undef掉不需要的部分。注重这些应当和makefile文件中设置的全都。(4

9、)修改rominit.s文件cpu一上电就开头执行rominit( )函数,因此在rominit.s代码段中它必需是第一个函数。对于热启动,处理器将会执行rominit( )加上4后的代码(详细参考syslib.c中的systomonitor( )函数)。更多的硬件初始化在syslib.c中syshwinit( )函数中,rominit( )的工作就是做较少的初始化并把控制权交给romstart( )(在bootinit.c文件)。在s3c4510b处理器中,rominit.s文件主要做了以下几个工作: 禁止cpu中断并切换到svc32模式; 禁止中断控制器; 初始化syscfg、extdbw

10、th、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和bootconf

11、ig.c文件,我们普通不需要修改它,只是在调试过程中为了便利调试,可以将他们拷贝到bsp名目下,然后修改makefile文件,在makefile文件中添加如下两句。bootconfig = bootconfig.cbootinit = bootinit.c(5)利用tsfs(target server file system)下载要利用tsfs下载vxworks,首先需要配置以下内容: 在config.h文件中添加如下内容/* serial port configuration */define include_serialundef num_ttydefine num_tty n_sio_c

12、hannelsundef console_ttydefine console_tty 0undef console_baud_ratedefine console_baud_rate 38400/* wdb */ifdef serial_debugdefine wdb_no_baud_auto_configundef wdb_comm_typeundef wdb_tty_baudundef wdb_tty_channelundef wdb_tty_dev_namedefine wdb_comm_type wdb_comm_serial /* wdb in serial mode */defin

13、e 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,

14、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按钮即可

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论