《基于PPC8247芯片的网络芯片8841移植与挂接流程详解》 在嵌入式系统开发中,网络接口芯片的移植与挂接是至关重要的环节,尤其是对于基于特定处理器架构的系统,如PPC8247。本文将详细探讨网络芯片8841在VxWorks操作系统中的挂接流程,这一流程同样适用于其他类型的网络芯片,如82551,具有很强的通用性。 网络芯片8841是一款基于PCI接口的以太网控制器,其初始化和挂接过程分为Boot阶段和系统启动后的阶段。在Boot阶段,初始化工作主要由底层的Bootrom负责。在syslib.c文件中,系统会扫描并初始化所有PCI设备,包括8841。在sysKs884xPciInit函数中,会启用PCI中断并挂接中断处理函数。此阶段,通过PCI底层API函数,系统对芯片的内存和IO地址空间进行配置,并设置884x的寄存器。 当VxWorks操作系统加载完毕,网络芯片8841的进一步初始化在usrEndLibInit函数中进行,位于prjConfig.c文件内。在这个过程中,endDevTbl变量起着关键作用,它是一个END_TBL_ENTRY结构体数组,用于存储设备信息。在Bootrom阶段,通过INCLUDE_FEI_END宏控制,884x设备的初始化被推迟到操作系统加载后执行,Bootrom阶段仅初始化MOTFCC设备。 sysKs884xEndLoad函数是884x设备装载和挂接的核心,它通过muxDevLoad函数将加载函数挂接到MUX层。在第一次调用endLoad(参数为空)时,实际是为设备初始化做准备,而第二次调用(参数非空)则执行实际的设备加载和初始化。ks884xEndLoad函数在解析设备参数并进行初始化的过程中,会设置如device unit、memory mapped IO address base等关键参数,并通过对gpDrvCtrl的赋值来管理和区分不同的以太网卡。 在设备初始化过程中,ks884xInitParse函数用于解析设备配置字符串,提取并赋值关键参数。这些参数包括设备ID、内存映射的IO基地址、Intel IO空间基地址、中断向量、中断级别等。初始化完成后,硬件结构体会被填充,以确保设备能够正确地与操作系统交互并执行网络通信功能。 8841网络芯片在PPC8247上的移植与挂接涉及Boot阶段的PCI初始化、操作系统启动后的设备加载,以及一系列复杂的参数配置和初始化操作。理解这一流程对于开发者来说至关重要,不仅有助于理解网络设备的运行机制,也方便进行其他类似芯片的移植工作。
- 粉丝: 6
- 资源: 19
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 此存储库适用于 Linkedin Learning 课程学习 Java.zip
- (源码)基于STM32和AD9850的无线电信标系统.zip
- (源码)基于Android的新闻推荐系统.zip
- 本资源库是关于“Java Collection Framework API”的参考资料,是 Java 开发社区的重要贡献,旨在提供有关 Java 语言学院 API 的实践示例和递归教育关系 .zip
- 插件: e2eFood.dll
- 打造最强的Java安全研究与安全开发面试题库,帮助师傅们找到满意的工作.zip
- (源码)基于Spark的实时用户行为分析系统.zip
- (源码)基于Spring Boot和Vue的个人博客后台管理系统.zip
- 将流行的 ruby faker gem 引入 Java.zip
- (源码)基于C#和ArcGIS Engine的房屋管理系统.zip