PMON PCI空间分配解析与开发详解
需积分: 38 172 浏览量
更新于2024-08-25
收藏 186KB PPT 举报
"本文主要介绍了PCI空间分配在PMON中的实现和解读,涉及PMON的版本、编译环境以及PMON2000的目录结构和框架。文章以PCI空间分配为例,阐述了如何在PMON中建立数据结构来管理PCI设备的Memory和IO空间,并提到了相关设备驱动的实现。"
在PMON中,PCI空间分配是一个关键部分,它涉及到PCI设备如何在内存和I/O空间中获取和管理地址。在提供的代码段中,我们可以看到数据结构`pb`被用来存储PCI空间的相关信息。`pci_mem_base`表示Memory空间的基地址,而`pci_io_base`代表IO空间的基地址。`minpciioaddr`和`minipcimemaddr`分别是IO和Memory空间可以分配的最小地址,`nextpcimemaddr`和`nextpciioaddr`则是下次分配时将使用的地址。在PMON中,地址分配采用的是逆序分配策略。
此外,`pb`结构还包含了其他参数,如最大延迟`max_lat`,快速背靠背交易`fast_b2b`,预取标志`prefetch`,带宽`bandwidth`,以及已连接设备的数量`ndev`。这些参数对于理解和优化PCI设备的性能至关重要。
PMON是一个简单的引导加载器,用于启动嵌入式系统。文章提到了两个不同版本的PMON,早期版本不支持硬盘、显卡,且扩展性较差,而PMON2000则增加了对硬盘、显卡和EXT2文件系统的支持,以及对新系统的可移植性。
PMON2000的目录结构清晰,包括了`Conf`、`Target`、`Sys`等多个子目录,便于针对不同系统进行定制。`Dev`目录下包含设备驱动,如IDE的ATA驱动,北桥的网卡IC,以及PCI设备。`Kern`包含了系统调用的实现,而`Cmds`则包含shell命令的实现。`Lib`提供了基本的库函数,如内存拷贝和打印函数。`X86emu`用于模拟X86指令,以便初始化显卡。
在`Targets`目录下,每个系统都有一个单独的子目录,如`Bonito`,其中的`start.S`是C环境建立前的启动汇编代码,`tgt_machdep.c`包含特定板子的函数,而`pci_machdep.c`则涉及PCI空间分配的特定实现。
通过这些信息,我们可以了解到在PMON中进行PCI空间分配的细节,以及如何通过源码管理和控制PCI设备,这对于开发和调试基于PMON的嵌入式系统非常有用。
2024-07-04 上传
2023-06-03 上传
2023-10-18 上传
2023-08-13 上传
2024-05-18 上传
2023-05-19 上传
2024-07-24 上传
顾阑
- 粉丝: 15
- 资源: 2万+
最新资源
- 十种常见电感线圈电感量计算公式详解
- 军用车辆:CAN总线的集成与优势
- CAN总线在汽车智能换档系统中的作用与实现
- CAN总线数据超载问题及解决策略
- 汽车车身系统CAN总线设计与应用
- SAP企业需求深度剖析:财务会计与供应链的关键流程与改进策略
- CAN总线在发动机电控系统中的通信设计实践
- Spring与iBATIS整合:快速开发与比较分析
- CAN总线驱动的整车管理系统硬件设计详解
- CAN总线通讯智能节点设计与实现
- DSP实现电动汽车CAN总线通讯技术
- CAN协议网关设计:自动位速率检测与互连
- Xcode免证书调试iPad程序开发指南
- 分布式数据库查询优化算法探讨
- Win7安装VC++6.0完全指南:解决兼容性与Office冲突
- MFC实现学生信息管理系统:登录与数据库操作