原来编译的时候老提示:na_ethe地址未定义等问题,仔细跟踪在include/nios2_system.h,而这个文件由系统编译生成。
参考C:/altera/kits/nios2_60/bin/eclipse/plugins/com.microtronix.nios2linux.kernel_1.4.0/linux-2.6.x/arch/nios2nommu/scripts/nios2_system.h下的文件,编写了freedev_lan91c111.pm
下面是我写的freedev_lan91c111.pm文件:
package freedev_lan91c111;
require PTF::SystemPTF;
require PTF::SystemPTF::Module;
use base qw(BasicModule);
use strict;
sub required_module_names {
"enet"
}
sub required_class_name {
"freedev_lan91c111"
}
sub translate {
my $class = shift;
my ($system, $required_module_name, $module_name) = @_;
$class->SUPER::translate (@_);
my $module = $system->getModule ($module_name);
my $offset_keyword = "LAN91C111_REGISTERS_OFFSET";
my $offset = $module->getWSAConstant ($offset_keyword);
printf ("%-41s %30s/n", "#define $offset_keyword", 0);
my $width_keyword = "LAN91C111_DATA_BUS_WIDTH";
my $width = $module->getWSAConstant ($width_keyword);
printf ("%-41s %30s/n", "#define $width_keyword", 16);
print "/n";
}
sub run {
freedev_lan91c111->run2 (@_);
}
1;
编译通过!而且执行ping命令,ok。当然是针对自由电子的freedev_lan91c111,如果是其他类型的板,请根据具体修改。