Board logo

标题: LWIP的移植 [打印本页]

作者: wangzhihai    时间: 2008-8-29 10:57     标题: LWIP的移植


小弟目前正在研究NiosII上的以太网传输,我使用的硬件平台是DE2开发板,板上使用DM9000A网卡,altera公司随开发板给出了DM9000A网卡的verilog接口逻辑(随后附上)。
我在sopc builder上建立了一个硬件系统,系统上添加了DM9000的接口逻辑组件,硬件编译通过后生成了硬件系统文件。
随后我在IDE上已刚建立的硬件系统为目标,建立C/C++应用工程,在应用工程上加载了uc/osII操作系统,随后我在system library选项中添加LWIP,但是却添加不上,错误提示是:There is no compatible ethernet MAC in your design.
  我查了很多资料,也搞不清楚问题是出在DM9000的接口逻辑组件的设计上?还是因为没有将DM9000的网络驱动程序上集成到HAL中?
是先添加LWIP协议,再编写网络驱动吗?
  不支持MAC到底是什么意思?
  请各位大哥指点!!!非常感谢!!!

module DM9000A_IF( // HOST Side
iDATA,
oDATA,
iCMD,
iRD_N,
iWR_N,
iCS_N,
iRST_N,
iCLK,
iOSC_50,
oINT,
// DM9000A Side
ENET_DATA,
ENET_CMD,
ENET_RD_N,
ENET_WR_N,
ENET_CS_N,
ENET_RST_N,
ENET_INT,
ENET_CLK );
// HOST Side
input [15:0] iDATA;
input iCMD;
input iRD_N;
input iWR_N;
input iCS_N;
input iRST_N;
input iCLK;
input iOSC_50;
output [15:0] oDATA;
output oINT;
// DM9000A Side
inout [15:0] ENET_DATA;
output ENET_CMD;
output ENET_RD_N;
output ENET_WR_N;
output ENET_CS_N;
output ENET_RST_N;
output ENET_CLK;
input ENET_INT;

reg [15:0] TMP_DATA;
reg ENET_CMD;
reg ENET_RD_N;
reg ENET_WR_N;
reg ENET_CS_N;
reg ENET_CLK;
reg [15:0] oDATA;
reg oINT;

assign ENET_DATA = ENET_WR_N ? 16'hzzzz : TMP_DATA;

always@(posedge iCLK or negedge iRST_N)
begin
if(!iRST_N)
begin
TMP_DATA <= 0;
ENET_CMD <= 0;
ENET_RD_N <= 1;
ENET_WR_N <= 1;
ENET_CS_N <= 1;
oDATA <= 0;
oINT <= 0;
end
else
begin
oDATA <= ENET_DATA;
oINT <= ENET_INT;
TMP_DATA <= iDATA;
ENET_CMD <= iCMD;
ENET_CS_N <= iCS_N;
ENET_RD_N <= iRD_N;
ENET_WR_N <= iWR_N;
end
end

always@(posedge iOSC_50)
ENET_CLK <= ~ENET_CLK;

assign ENET_RST_N = iRST_N;

endmodule

作者: caopengly    时间: 2008-8-29 14:01

Mac是数据链路层的上面部分,下面是phy,一般添加了91c111或者dm9111就是这样的mac支持ip。

之所以报这样的错误我觉得有可能是楼主设置的问题。


作者: wangzhihai    时间: 2008-8-29 14:19

您的意思是说与DM9000A的驱动程序无关,应该是先配置LWIP,再编写网络驱动程序吗?







欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0