让redboot的网络功能重新生效.docx_第1页
让redboot的网络功能重新生效.docx_第2页
让redboot的网络功能重新生效.docx_第3页
让redboot的网络功能重新生效.docx_第4页
全文预览已结束

下载本文档

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

文档简介

让redboot的网络功能重新生效RedBoot_initRedBoot_init(_do_flash_init, RedBoot_INIT_FIRST);RedBoot_init(load_flash_config, RedBoot_INIT_FIRST);RedBoot_init(ide_init, RedBoot_INIT_FIRST);RedBoot_init(_zlib_init, RedBoot_INIT_FIRST);RedBoot_init(net_init, RedBoot_INIT_LAST);voidnet_init(void) ./ Initialize all network devices for (t = &_NETDEVTAB_0; t != &_NETDEVTAB_END_; t+) if (t-init(t) /我的ep9312开发板对应ep93xx_initluther.gliethttp t-status = CYG_NETDEVTAB_STATUS_AVAIL; else / What to do if device init fails? t-status = 0; / Device not currently available CYG_HAL_TABLE_BEGIN( _NETDEVTAB_, netdev );#define NETDEVTAB_ENTRY(_l,_name,_init,_instance) static bool _init(struct cyg_netdevtab_entry *tab); cyg_netdevtab_entry_t _l CYG_HAL_TABLE_ENTRY(netdev) = _name, _init, _instance ;ecos-2.0/packages/devs/eth/arm/ep93xx/v2_0/src/if_ep93xx.c|166| NETDEVTAB_ENTRY(ep93xx_netdev,NETDEVTAB_ENTRY(ep93xx_netdev, ep93xx, ep93xx_init, &ep93xx_sc);ecos-2.0/packages/devs/eth/arm/ep93xx/v2_0/src/if_ep93xx.c|74| ep93xx_esa,ecos-2.0/packages/devs/eth/arm/ep93xx/v2_0/src/if_ep93xx.c|82| ep93xx_esa,ecos-2.0/packages/redboot/v2_0/src/flash.c|1913| diag_printf(Request for config value %s - wrong typen, key);后来在启动时发现一个错误提示:+ep93xx_init. Scan for PHY unitsPHY ID1 = 15/f441, stat = 782d, control = 3000After scan, phys_found 00000002, phys_good 00000002Request for config value ep93xx_esa - wrong type / 从这里看未找到ep93xx_esa定义EP93xx - no EEPROM, static ESA, or RedBoot config option.从代码中查看到ep93xx_esa定义,因为flash_get_config向config中追加内容的函数,只在2个地方对我们用户提供了接口,一个是alias命令,另一个就是fconfig -i命令中config_init函数,config_init函数会将_CONFIG_options_TAB_END_中的所有built-in的config追加到config中,CYG_HAL_TABLE_BEGIN( _CONFIG_options_TAB_, RedBoot_config_options);#define RedBoot_config_option(_t_,_n_,_e_,_ie_,_type_,_dflt_) struct config_option _config_option_#_n_ CYG_HAL_TABLE_QUALIFIED_ENTRY(RedBoot_config_options,_n_) = #_n_,_t_,_e_,_ie_,_type_,(unsigned long)_dflt_;ecos-2.0/packages/devs/eth/arm/ep93xx/v2_0/src/if_ep93xx.cRedBoot_config_option(Set eth0 network hardware address MAC, ep93xx_esa, ALWAYS_ENABLED, true, CONFIG_BOOL, false );RedBoot_config_option(eth0 network hardware address MAC, ep93xx_esa_data, ep93xx_esa, true, CONFIG_ESA, 0 );另外还有如下文件定义了RedBoot_config_option函数.packages/redboot/v2_0/src/flash.cpackages/redboot/v2_0/src/net/net_io.c我们可以使用RedBoot fconfig ep93xx_esa来查看系统中定义了的config key值.所以我们来重新初始化一次RedBoot fconfig -iInitialize non-volatile configuration - continue (y/n)? yRun script at boot: trueBoot script:Enter script, terminate with empty line fis load ramdisk fis load zImage exec -r 0x800000 -s 0x600000Boot script timeout (1000ms resolution): 3Use BOOTP for network configuration: falseGateway IP address: Local IP address: 50Local IP address mask: Default server IP address: 01现在看到下面2个配置都出现了,这下正常了,呵呵luther.gliethttpRedBoot fconfig ep93xx_esaep93xx_esa: trueRedBoot fconfig ep93xx_esa_dataep93xx_esa_data: 0x00:0x00:0x00:0x00:0x30:0x3ARedBoot好了现在,eth需要的2个变量都已经有了,来ping一个试试了luther.gliethttpRedBoot ping -h -vNetwork PING - from 50 to seq: 1, time: 1 (ticks)seq: 2, time: 1 (ticks)seq: 3, time: 1 (ticks)seq: 4, time: 1 (ticks)seq:

温馨提示

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

评论

0/150

提交评论