基于ARM7核处理器VxWorks系统BSP设计
(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(targetserverfilesystem)下载
要利用tsfs下载VxWorks,首先需要配置以下内容:
①在config.h文件中添加如下内容
/*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
#unde 《基于ARM7核处理器VxWorks系统BSP设计(第3页)》