📄 程序示例-bsp配置文件及生成下载.htm
字号:
non-zero in<BR>* an enabled region, 64 bit dual cycle addresses will be
generated on the<BR>* PCI bus for this region.<BR>*/</P>
<P><STRONG>//定义PCI设备的初始化地址 参见 </STRONG><A
href="http://drew.nease.net/mypage/example/pci.htm">PCI设备(网卡)初始化代码分析</A></P>
<P><BR># define PMM0_LOCAL_ADRS PCI_MEMORY_START
<STRONG>// 定义PCI空间起始地址</STRONG><BR># define PMM0_PCI_LOW_ADRS 0x80000000
<STRONG>//
定义PCI空间低位地址</STRONG><BR># define PMM0_PCI_HIGH_ADRS
0x00000000 <STRONG>//
定义PCI空间高位地址</STRONG><BR># define PMM0_PCI_MASK_ATTRIB (PMM_MASK_512MB |
PMM_ENABLE)<BR><BR># define PMM1_LOCAL_ADRS PMM_UNUSED<BR># define
PMM1_PCI_LOW_ADRS PMM_UNUSED<BR># define PMM1_PCI_HIGH_ADRS PMM_UNUSED<BR>#
define PMM1_PCI_MASK_ATTRIB PMM_UNUSED<BR><BR># define PMM2_LOCAL_ADRS
PMM_UNUSED<BR># define PMM2_PCI_LOW_ADRS PMM_UNUSED<BR># define
PMM2_PCI_HIGH_ADRS PMM_UNUSED<BR># define PMM2_PCI_MASK_ATTRIB
PMM_UNUSED<BR><BR>/*<BR>* PCI memory address to processor local memory address
mapping. If a region<BR>* is enabled, PTMx_LOCAL_ADRS must be within the two
Local memory / peripheral<BR>* regions (0x00000000-0x7FFFFFFF, or
0F0000000-0xFFFFFFFF)<BR>*/<BR># define PTM1_LOCAL_ADRS
LOCAL_MEM_LOCAL_ADRS<BR># define PTM1_SIZE_ATTRIB PTM_SIZE_2GB |
PTM_ENABLE<BR><BR># define PTM2_LOCAL_ADRS PTM_UNUSED<BR># define
PTM2_SIZE_ATTRIB PTM_UNUSED<BR><BR>#endif /* INCLUDE_PCI
*/<BR><BR>/*<BR><STRONG>*
如果支持网络,本地EMAC和PCI网卡,必须有一个被选取,两者都是END形式驱动<BR></STRONG>*/<BR>#define
INCLUDE_NETWORK
/* 支持网络
*/<BR>#define INCLUDE_EMAC_NETWORK /*
405GP 本地 EMAC 网络 */<BR>#undef
INCLUDE_PCI_NETWORK /* PCI 网络
*/<BR><BR>/*<BR>* The board does not have the Ethernet MAC address of the EMAC
stored<BR>* in any sort of NVRAM. Modify the 12 digit string below to match
the decal<BR>* that is on your board.<BR>*/<BR><BR>#ifdef
INCLUDE_EMAC_NETWORK<BR> #define DEFAULT_EMAC_HW_ADDR
"xxxxxxxxxxxx" /* 网络硬件地址,即MAC地址
*/<BR>#endif<BR><BR>/*<BR><STRONG>* WDB 通过网络Enhanced Network
Driver加载调试程序,若网络加载调试,必须定义此项<BR></STRONG>*/<BR></P>
<P>#define WDB_COMM_TYPE WDB_COMM_SERIAL /*首先默认使用串口通信*/ <BR>#define
WDB_TTY_CHANNEL 0 /*使用第一个串口</P>
<P><BR>#ifdef INCLUDE_NETWORK<BR> #define
INCLUDE_END<BR> #undef WDB_COMM_TYPE<BR>
#define WDB_COMM_TYPE WDB_COMM_END <STRONG>/*
定义网络通信, END 驱动 */</STRONG><BR>#else<BR> #undef
WDB_COMM_TYPE<BR> #define
WDB_COMM_TYPE WDB_COMM_SERIAL <STRONG>/*
定义串口通信,和PC机串口连接 */ </STRONG><BR> #undef
WDB_TTY_CHANNEL<BR> #define WDB_TTY_CHANNEL 0
<STRONG> /* 串口1 */</STRONG><BR>#endif /* INCLUDE_NETWORK
*/<BR><BR>/*************** 此处定义一些杂项 */<BR><BR>#ifdef NUM_TTY<BR>#undef
NUM_TTY<BR>#endif<BR>#define NUM_TTY
2
<STRONG>/* 定义了两个串口终端,*/<BR></STRONG><BR><BR>#ifdef WDB_TTY_BAUD<BR>#undef
WDB_TTY_BAUD<BR>#endif<BR>#define WDB_TTY_BAUD 57600 /* <STRONG>波特率设置</STRONG>
9600, 19200, 38400, 57600, 115200 */<BR><BR>#ifdef CONSOLE_BAUD_RATE<BR>#undef
CONSOLE_BAUD_RATE<BR>#endif<BR>#define CONSOLE_BAUD_RATE
57600<BR><BR><BR>#undef INCLUDE_ENV_VARS /* unix compatable environment
variables */<BR>#undef INCLUDE_TIMEX /* timexLib for exec timing */<BR>#undef
INCLUDE_HW_FP<BR>#undef INCLUDE_TFTP_CLIENT /* used by autoboot from ftp
server*/<BR><BR>#define INCLUDE_SW_FP<BR>#define INCLUDE_ELF<BR>#define
INCLUDE_NET_SHOW<BR>#define INCLUDE_PING<BR>#undef INCLUDE_DEMO /* only for
vxWorks bsp test */<BR>#define ETHERNET_ADR_SET /* only for bootrom used
*/<BR>#define INCLUDE_USER_APPL /* Startup the user's application in dos
makefile project */<BR>#undef PCIDEBUG<BR><BR>#ifdef
INCLUDE_USER_APPL<BR>#define USER_APPL_INIT
_appEntry()<BR>#endif<BR><BR>#endif /* INCconfigh */<BR>#if
defined(PRJ_BUILD)<BR>#include "prjParams.h"<BR>#endif<BR></P></BLOCKQUOTE>
<P><BR><BR><BIG><BIG><STRONG>Makefile</STRONG></BIG></BIG><BR><BR></P>
<BLOCKQUOTE>
<P># Makefile - make rules for board<BR>#<BR>#*/<BR><BR>CPU = PPC40x<BR>TOOL =
gnu<BR><BR>TGT_DIR=$(WIND_BASE)/target<BR>include
$(TGT_DIR)/h/make/defs.bsp<BR>include
$(TGT_DIR)/h/make/make.$(CPU)$(TOOL)<BR>include
$(TGT_DIR)/h/make/defs.$(WIND_HOST_TYPE)<BR><BR>## Only redefine make
definitions below this point, or your definitions will<BR>## be overwritten by
the makefile stubs above.<BR><BR><BR>TARGET_DIR = xxx<BR>VENDOR = IBM<BR>BOARD
= xxx<BR><BR>RELEASE = vxWorks vxWorks.st bootrom_uncmp.hex<BR><BR>USR_ENTRY =
usrInit<BR><BR><BR><STRONG># ROM_TEXT_ADRS, ROM_SIZE, RAM_HIGH_ADRS,
和RAM_LOW_ADRS 在config.h,Makefile和Makefile.*文件中 # 都要定义,且必须要保持一致,</STRONG></P>
<P><BR>ROM_TEXT_ADRS = fff80100
# ROM 起始地址<BR>ROM_SIZE = 0007f000
# ROM 空间大小<BR><BR>RAM_LOW_ADRS = 00010000
# RAM 低地址 <STRONG>vxWorks</STRONG> */<BR>RAM_HIGH_ADRS = 00C00000
# RAM 高地址存储 <STRONG>bootrom</STRONG> */<BR><BR>HEX_FLAGS = -a
100<BR><BR>#ADDED_CFLAGS = -gdwarf -O0 # for debug<BR><BR>MACH_EXTRA =
appentry.o
<STRONG># 注意:这里加载用户的程序模块,程序调用在usrRoot()</STRONG><BR><BR>BOOTCONFIG =
bootconfig.c
# bsp bootconfig.c for bootrom<BR><BR><BR>## Only redefine make definitions
above this point, or the expansion of<BR>## makefile target dependencies may
be incorrect.<BR><BR>include $(TGT_DIR)/h/make/rules.bsp<BR>include
$(TGT_DIR)/h/make/rules.$(WIND_HOST_TYPE)<BR></P></BLOCKQUOTE>
<P> </P>
<P><B><FONT size=4>Tornado for x86下BSP的生成,下载和Target
Server的配置实例,<BR>Pentium主机,3Com网卡,软盘引导,ftp下载VxWorks映像。</FONT></B><BR><BR></P>
<BLOCKQUOTE>
<P><B>1.</B>在C:\Tornado\target\config\pcPentium目录下修改BSP文件config.h。<BR></P>
<BLOCKQUOTE>
<P>#elif (CPU_VARIANT == PENTIUM)<BR>#define
DEFAULT_BOOT_LINE <BR>"elt(0,0)HOST:c:\\Tornado\\target\\config\\pcPentium\\vxWorks <BR>h=90.0.0.3
e=90.0.0.50 u=target pw=target tn=target"<BR><BR>#define INCLUDE_ELT
//3Com网卡<BR>#define INCLUDE_END //END驱动<BR></P></BLOCKQUOTE>
<P><B>2.</B>打开Tornado选择新建一个bootable vxworks image,选择建 A BSP,选择<BR>
pcPentium,建完后编译就可以在相应的目录下生成vxworks的映像文件。<BR><BR><B>3.</B>制作bootrom;选择Build
Boot Rom,选择pcPentium,再选择bootrom_uncmp,<BR> 生成 bootrom_uncmp。拷贝
bootrom_uncmp到host\x86-win32\bin下,插入空白<BR>
盘到软区,在dos界面进入目录host\x86-win32\bin下,用命令"mkboot a: <BR> bootrom_uncmp
"生成引导盘 <BR><BR><B>4.</B> 在Start > Programs > Tornado2 > FTP
Server,点开Security下的<BR> user/rights菜单,新建用户User
Name:target,Password:target,Home <BR> Directory为VxWorks映像所在目录如
C:\Tornado\target\config\pcPentium\。<BR>
注意这些配置要和config.h中的一致。<BR><BR><B>5.</B>将bootrom的启动盘插入目标机的软驱,启动目标机,系统从软驱启动,随后登<BR>
陆FTP,从主机下载vxworks文件,目标机提示7秒内按任意键选择Boot方式(手工<BR>
,自动),手工方式可对FTP用户,口令,IP等参数进行修改。<BR>
通常是等待7秒后系统autoboot。<BR> </P>
<P> 屏幕显示:</P>
<BLOCKQUOTE>
<P><BR>Attached TCP/IP interface to elt0.<BR>Attaching network interface
lo0... done. //TCP/IP网络连接成功<BR><BR>Loading... 602128
//通过ftp下载VxWorks映像<BR>Starting at 0x01080000 //下载成功,从RAM_LOW_ADRS
0x01080000<BR>开始执行VxWorks系统<BR><BR>Attached TCP/IP interface to elt unit
0<BR>Attaching interface lo0...done
//TCP/IP网络连接成功<BR>(注意这里网络初始化成功和上边的不同,上边是Bootrom映像网络初始化来下载VxWorks,这里VxWorks系统初始化网络。)<BR><BR>VxWorks<BR><BR>Copyright
1984-1998 Wind River Systems, Inc.<BR><BR>CPU: xxxx --- Intel
x82 <BR>VxWorks: 5.4<BR>BSP version: 1.2/4<BR>Creation date: Jan xx
2001<BR>WDB: Ready.<BR><BR></P></BLOCKQUOTE>
<P> 至此目标机系统启动完成。<BR><BR><BR><B>6.</B>配置Target
Server下载应用程序.</P>
<BLOCKQUOTE>
<P><BR>打开Tornado,在Tools菜单下选择Target Sever再选择configure进行配置(Tools <BR>>
Target Server > Configure > New)给出Target Server名字描述如net00.在<BR>(Target
Server Properties > Back End)选择WdbRpc. Target Name/IP
Address <BR>框内输入Target的IP: 90.0.0.50. <BR>Core File and
Symbols选项(Target Server Properties > Core File and <BR>Symbols):
C:\Tornado\target\config\pcPentium\vxWorks等等。<BR>配置的内容根据系统的具体情况定。点击Launch启动Target
Sever,随后在主界<BR>面下选择已启动的Target Sever就可以下载
*.o或*.out程序。<BR><BR></P></BLOCKQUOTE></BLOCKQUOTE></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -