c语言sscanf函数的用法是什么
308
2022-11-08
基于三星S3C44B0芯片实现VxWorks网络接口的软硬件设计
1、 硬件设计
S3C4480与RTL8019AS的硬件接口原理如图1所示。从图1中可以看出,RTL8019AS的使能端连到S3C44B0的nGCS3,因此它的地址映射在系统的Bank3上,基地址为0x06000000。RTL8019AS支持8位/16位数据总线,在本电路中采用16位方式。
RTL8019AS共有32个输入/输出地址,对应地址偏移量为0x00~0x1f。现分别说明如下:
②0x10~0xl7的8个地址,为数据读写端口地址。它们都是一样的,每个都可以用来做数据读写端口,只要用其中一个就可以了。
③0x18~0x1f的8个地址,为复位端口。它们的功能都是一样的。但需要注意,实际上只有0x18、0x1a、0x1c、0xle这几个复位端口是有效的,其他不要使用;因为有些兼容卡不支持0xl9、0xlb、Oxld等奇数地址的复位。
在软件设计时,尤其要注意以下两点:
②RTL8019AS使用EXINT1中断,且上升沿触发。
2 、软件实现
2.1 VxWorks的网络协议栈和MUX接口
VxWorks中的网络协议栈叫作“SENS(Scalable En-hanced Network STack)”,即可裁减增强网络协议栈。SENS是基于4.4BSDTCP/IP协议栈发展而来的。它包含了许多4.4BSDTCP/IP协议栈没有的协议;而且SENS在实现一些协议功能时增加了许多新特性。如在IP协议实现时增加了多播功能。SENS协议栈层次如图2所示。
2.2 END设备驱动程序装载过程
当网络设备产生中断时,VxWorks调用驱动程序先前注册的中断服务程序。中断服务程序应做尽可能少的工作,以完成将数据包从本地网络设备送出/取出的操作。
2.3 文件配置
由于RTL8019兼容NE2000网卡芯片,只需要在其基础上完成必要的修改。首先将Tornado2.2\target\src\drv\end目录下的ne2000End.c和Tornado2.2\target\h\dry\end目录下的ne2000End.h拷贝到bsp目录下,然后修改以下文件。
(1) 修改ne2000End.C
①修改头文件包含目录;
②sysIntConnect修改为intConnect;
③sysLanIntenable修改为intEnable,并修改返回类型void为STATUS。
(2) 修改ne2000End.h
将寄存器地址左移1位,如:
(3) 修改config.h
添加网络宏定义:
①#define INCLUDE_NETWORK
②#define INCLUDE_END
#undef INCLUDE_SNGKS32C_END
#define INCLUDE_NE2000_END
#endif/*INCLUDE_END*/[page]
(4) 修改configNet.h
在endDevTbl[ ]表中添加新的装载函数(其函数命名格式为xxLoad( ))入口点及相关参数。
(5) 修改Makefile
添加MACH_EXTRA=ne2000End.o
(6) 修改sysLib.c
①添加MAC地址定义:
③在sysHwInit()中添加CPU端口初始化:
④在sysHwInit()中添加RTL8019芯片的复位和初始化函数。相关代码如下(有关寄存器的宏定义请参照RTL8019数据手册):
3、结 语
本文在VxWorks嵌入式实时操作系统下,提出了网络接口的解决方案,即以ARM7(S3C44B0)为核心CPU,控制网络控制器TRL8019实现网络通信。本文首先简单介绍了几款主要芯片,给出了硬件原理图;然后简要分析了VxWorks下的网络协议和驱动装载过程;最后,针对此网络接口,详细列出了VxWorks下文件配置过程,提供了部分软件源程序,对开发人员有一定的参考价值。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~