关 闭

新闻中心

EEPW首页 > 工控自动化 > 设计应用 > 基于龙芯2F架构的PMON分析与优化

基于龙芯2F架构的PMON分析与优化

作者: 时间:2011-03-30 来源:网络 收藏

1.3 在内存中的执行流程
在内存中的执行过程非常复杂,下面按照其执行流程主要的函数:
_init():主要功能是顺序执行初始化。列表上的所有函数,建立必要的数据结构和编译环境。初始化列表上的函数主要可以分为3类:命令初始化函数,文件系统初始化函数,可执行文件初始化函数。
Evenint():环境变量初始化函数,这些环境变量解释并执行不同的命令。它们对来说是必需的,用户可以定义另外的变量来保存任何字符串,如文件名和命令符等。
Tgt_devinit():主要功能是南桥初始化和PCI设备初始化。其中南桥初始化函数是cs5536_init()。PCI设备初始化由函数_pci_businit()完成,分为两步;先是北桥初始化,然后是设备初始化,包括对设备的扫描和设备所需资源的分配。PCI设备的初始化部分是PMON中的难点。
Init_net():主要进行了如下的工作;虚拟内存初始化等;用_pci_deviceinit函数完成了PCI配置空间的参数初始化,并且初始化显卡;网络系统的初始化包括网络设备的初始化和协议的配置等。
最后加载操作系统内核。这里会用到两个重要的命令Load和g。Load命令用于加载文件(内核)到内存,g命令执行内核文件。加载了内核文件之后就可以通过g命令来执行内核。

本文引用地址://m.amcfsurvey.com/article/202462.htm

2 基于的PMON修改与优化
2.1 添加82551网卡驱动
网卡是一个PCI设备,所以其驱动在PCI设备初始化时实现。对于PCI设备,有一个重要的数据结构struct cfdata cfdata,这个数组是根据具体平台的配置文件生成的,以下是配置文件的相关部分:
2.JPG
这个部分描述了设备之间的链接关系,cfdata是这个关系的数组表示。另外还有一个PV数组定义一个设备的父设备,每个节点的父设备都是一个数组,在设备的cfdata结构中定义数组的开始。
上述配置文件中的fxp0表示的就是网卡设备。因为fxp0是PCI子设备,因此在查找PCI子设备时,其4个子设备:fxp0,rtkO,ohci,pci-ide的驱动也会在此时加载。查找设备有一个函数:config_found,其会调用config_serch,config_search从静态设备树cfdata中查找当前设备的子设备,然后对设备调用mapply函数,进行设备的匹配,如果设备存在则会调用该设备的ca_attach函数来加载设备的驱动程序。这里找到网卡设备之后会调用fxp_attach函数。在设计的网卡驱动中,实现了操作系统将怎样通过网卡驱动来讲网络包发送出去,而网卡收到网络数据包之后怎样通过操作系统来做后续处理。在PMON中,网卡中断通过查询来实现。fxp_attach函数会调用pci_intr_establish将中断程序注册到查询列表poll_list上。网口要将数据包发送出去,就必须提供一个网络接口,以提供给发送函数。在这里,将网络数据包放在网络接口的ifp→if_snd队列中,然后启动if_start来开始发送。在网卡发送完一个包后,检查发送队列,如果有剩余则继续发送,直到发送完毕。然后通过函数e100_poll来检查是否收到包,并进行收包处理。先进行缓冲区的清除,使能接收队列,查询是否有数据可接收,有则开始接收。无则继续查询并发出信息。



关键词: PMON 龙芯2F 架构 分析

评论


相关推荐

技术专区

关闭