⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 程序示例-bsp配置文件及生成下载.htm

📁 bsp基本概念
💻 HTM
📖 第 1 页 / 共 2 页
字号:
  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&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  <STRONG>// 定义PCI空间起始地址</STRONG><BR># define PMM0_PCI_LOW_ADRS 0x80000000 
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <STRONG>// 
  定义PCI空间低位地址</STRONG><BR># define PMM0_PCI_HIGH_ADRS 
  0x00000000&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <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 
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /* 支持网络 
  */<BR>#define INCLUDE_EMAC_NETWORK&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /* 
  405GP 本地 EMAC 网络 */<BR>#undef 
  INCLUDE_PCI_NETWORK&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /* 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>&nbsp;&nbsp;&nbsp; #define DEFAULT_EMAC_HW_ADDR 
  "xxxxxxxxxxxx" &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /* 网络硬件地址,即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>&nbsp;&nbsp;&nbsp; #define 
  INCLUDE_END<BR>&nbsp;&nbsp;&nbsp; #undef WDB_COMM_TYPE<BR>&nbsp;&nbsp;&nbsp; 
  #define WDB_COMM_TYPE WDB_COMM_END&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <STRONG>/* 
  定义网络通信, END 驱动 */</STRONG><BR>#else<BR>&nbsp;&nbsp;&nbsp; #undef 
  WDB_COMM_TYPE<BR>&nbsp;&nbsp;&nbsp; #define 
  WDB_COMM_TYPE&nbsp;&nbsp;&nbsp;&nbsp; WDB_COMM_SERIAL <STRONG>/* 
  定义串口通信,和PC机串口连接 */ </STRONG><BR>&nbsp;&nbsp;&nbsp; #undef 
  WDB_TTY_CHANNEL<BR>&nbsp;&nbsp;&nbsp; #define WDB_TTY_CHANNEL 0 
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  <STRONG>&nbsp;&nbsp; /* 串口1 */</STRONG><BR>#endif /* INCLUDE_NETWORK 
  */<BR><BR>/*************** 此处定义一些杂项 */<BR><BR>#ifdef NUM_TTY<BR>#undef 
  NUM_TTY<BR>#endif<BR>#define NUM_TTY 
  2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  <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 
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  # ROM 起始地址<BR>ROM_SIZE = 0007f000 
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  # ROM 空间大小<BR><BR>RAM_LOW_ADRS = 00010000 
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  # RAM 低地址 <STRONG>vxWorks</STRONG> */<BR>RAM_HIGH_ADRS = 00C00000 
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  # RAM 高地址存储 <STRONG>bootrom</STRONG> */<BR><BR>HEX_FLAGS = -a 
  100<BR><BR>#ADDED_CFLAGS = -gdwarf -O0 # for debug<BR><BR>MACH_EXTRA = 
  appentry.o 
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  <STRONG># 注意:这里加载用户的程序模块,程序调用在usrRoot()</STRONG><BR><BR>BOOTCONFIG = 
  bootconfig.c 
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  # 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&nbsp;<BR>"elt(0,0)HOST:c:\\Tornado\\target\\config\\pcPentium\\vxWorks&nbsp;<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>&nbsp; 
  pcPentium,建完后编译就可以在相应的目录下生成vxworks的映像文件。<BR><BR><B>3.</B>制作bootrom;选择Build 
  Boot Rom,选择pcPentium,再选择bootrom_uncmp,<BR>&nbsp; 生成 bootrom_uncmp。拷贝 
  bootrom_uncmp到host\x86-win32\bin下,插入空白<BR>&nbsp; 
  盘到软区,在dos界面进入目录host\x86-win32\bin下,用命令"mkboot a:&nbsp;<BR>&nbsp; bootrom_uncmp 
  "生成引导盘&nbsp;<BR><BR><B>4.</B> 在Start &gt; Programs &gt; Tornado2 &gt; FTP 
  Server,点开Security下的<BR>&nbsp; user/rights菜单,新建用户User 
  Name:target,Password:target,Home&nbsp;<BR>&nbsp; Directory为VxWorks映像所在目录如 
  C:\Tornado\target\config\pcPentium\。<BR>&nbsp; 
  注意这些配置要和config.h中的一致。<BR><BR><B>5.</B>将bootrom的启动盘插入目标机的软驱,启动目标机,系统从软驱启动,随后登<BR>&nbsp; 
  陆FTP,从主机下载vxworks文件,目标机提示7秒内按任意键选择Boot方式(手工<BR>&nbsp; 
  ,自动),手工方式可对FTP用户,口令,IP等参数进行修改。<BR>&nbsp; 
  通常是等待7秒后系统autoboot。<BR>&nbsp;&nbsp;</P>
  <P>&nbsp; 屏幕显示:</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&nbsp;<BR>VxWorks: 5.4<BR>BSP version: 1.2/4<BR>Creation date: Jan xx 
    2001<BR>WDB: Ready.<BR><BR></P></BLOCKQUOTE>
  <P>&nbsp;&nbsp;&nbsp;&nbsp; 至此目标机系统启动完成。<BR><BR><BR><B>6.</B>配置Target 
  Server下载应用程序.</P>
  <BLOCKQUOTE>
    <P><BR>打开Tornado,在Tools菜单下选择Target Sever再选择configure进行配置(Tools&nbsp;<BR>&gt; 
    Target Server &gt; Configure &gt; New)给出Target Server名字描述如net00.在<BR>(Target 
    Server Properties &gt; Back End)选择WdbRpc. Target Name/IP 
    Address&nbsp;<BR>框内输入Target的IP: 90.0.0.50.&nbsp;<BR>Core File and 
    Symbols选项(Target Server Properties &gt; Core File and&nbsp;<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 + -