基于VxWorks和MPC860设计的硬件防火墙 (5)
2008-07-15 23:06:18 作者: 来源: 互联网 浏览次数: 16 文字大小:【 大】【 中】【 小】
简介:与传统的PC架构硬件防火墙卡相比,利用MPC860实现 ...
/*user reserved memory size*/ (2)makefile文件修改(部分代码) TARGET_DIR =ncut860t VENDOR=Motorola BOARD=fw860t ROM_TEXT_ADRS=02800100 # ROM entry address ROM_SIZE=00400000 # number of bytes of ROM space RAM_LOW_ADRS=00010000 # RAM text/data address RAM_HIGH_ADRS=00500000 # RAM text/data address HEX_FLAGS=-a $(ROM_TEXT_ADRS) MACH_EXTRA=motFecEnd.o CONFIG_ALL=F:workSetUpPpCTornado2.2targetconfig ncut860tall 3.2.3 BSP常用的调试方法 开发调试BSP有两种方法,一种是使用仿真器通过BDM的方式一步步地跟踪调试;另一种是通过点灯的方式进行所谓的“黑”调。这里主要介绍“黑”调的方法。“黑”调的方法是通过 “灯”闪或用示波器测片选等,根据外部现象和所编的测试代码进行比较分析来调试程序。进行黑调的首要条件是串口部分代码已经调通,宿主机可以通过串口与目标机的通信,然后再调试BSP的其他部分。 BSP调试流程分成两部分。首先是位于BootRom中的Boot代码,它的作用是实现配置硬件和启动VxWorks下载程序;接下来是下载后跳转到VxWorks的入口地址运行操作系统和应用程序。 ROM中的启动代码部分: RomInit:在文件romInit.s中,它是程序运行的开始,实现判断启动类型,配置内核和非内核寄存器以及内存和外围设备的读写时序,因此可以在此处加入内存检测功能。闪灯功能函数也要在此加入。判断启动类型和配置寄存器的部分不需要改动。配置内存和外围设备读写时序部分要进行改动,这一部分的SDRAM、ROM、Flash、FPGA有相应的模板可以参考,是通过使用宏定义来实现的。一般是改动空间大小的屏蔽位,读写位数以及片选寄存器OR和BR。内存检测在这里实现较复杂,它根据相应的内存检测算法实现。主要是对地址线和数据线的检测,通过写入数据再读出数据来判断,使用“走步1”和“走步0”算法。闪灯在这一部分是强烈推荐的,因为闪灯才能定位程序的运行位置。 在RomInit函数结尾处,指针跳入RomStart(),RomStart()在BootInt.c文件中。它是系统运行的第一个C函数。这一部分是Wind River公司提供的标准程序,一般不需改动。该函数是C的入口函数,由汇编程序调用,主要完成清内存,将ROM中的程序拷贝到RAM,解压并跳至解压后的程序运行。 UsrInit在BootConfig.c文件中,主要实现硬件的初始化。其中涉及到串口、网口的初始化及CONSOLE的配置等。其中串口和网口的配置是BSP的重要部分。UsrRoot在BootConfig.c文件中,它主要是实现vxworks文件的下载,并且跳转到vxworks的入口地址,从而进入操作系统。 VxWorks文件中的代码部分: SysInit在sysAlib.s中。它是VxWorks的启动代码,与RomInit的作用相同。对于这个文件,一般不需要改动。UsrInit在Usrconfig.c中,其作用与Boot中UsrInit的作用相同。他们都调用SysLib.c中的子函数实现相同的硬件初始化功能。UsrRoot在UsrConfig.c中,它的作用与Boot中的UsrRoot的作用类似,但是这里的UsrRoo
|