访问物理内存CEDDK.ppt

上传人:牧羊曲112 文档编号:6344133 上传时间:2023-10-18 格式:PPT 页数:12 大小:285.50KB
返回 下载 相关 举报
访问物理内存CEDDK.ppt_第1页
第1页 / 共12页
访问物理内存CEDDK.ppt_第2页
第2页 / 共12页
访问物理内存CEDDK.ppt_第3页
第3页 / 共12页
访问物理内存CEDDK.ppt_第4页
第4页 / 共12页
访问物理内存CEDDK.ppt_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《访问物理内存CEDDK.ppt》由会员分享,可在线阅读,更多相关《访问物理内存CEDDK.ppt(12页珍藏版)》请在三一办公上搜索。

1、访问物理内存,访问物理内存,嵌入式设备与桌面PC的一个显著不同是 应用程序中可以直接访问某一段物理内存与桌面版本Windows相比,Windows CE提供了相对简单的物理内存访问方式无论是驱动程序还是应用程序都可通过API访问某一段物理内存,访问物理内存,物理内存结构体PHYSICAL_ADDRESStypedef LARGE_INTEGER PHYSICAL_ADDRESS,*PPHYSICAL_ADDRESS;typedef union _LARGE_INTEGER struct DWORD LowPart;LONG HighPart;LONGLONG QuadPart;LARGE_IN

2、TEGER;Windows CE用64位来代表物理地址。对于大多数32位的CPU而言,只需把它的HighPart设置为0即可。,内存管理函数,设备驱动程序是用户态模块 必须将物理内存映射成虚拟内存,内存管理函数,VirtualAlloc用于在当前进程的虚拟地址空间中保留或者提交一段虚拟内存空间 LPVOID VirtualAlloc(LPVOID lpAddress,/希望分配的虚拟内存起始地址 SIZE_T dwSize,/大小,以字节为单位 DWORD flAllocationType,/申请类型,分为MEM_COMMIT和 MEM_RESERVE DWORD flProtect);/访问

3、权限MEM_RESERVE:只是在进程的虚拟地址空间内保留一段,并不分配实际的物理内存。MEM_COMMIT:真正为虚拟内存分配物理内存。,内存管理函数,VirtualCopy用来绑定一段物理内存和虚拟内存BOOL VirtualCopy(LPVOID lpvDest,/虚拟目的地址指针,接受VirtualAlloc的返回值 LPVOID lpvSrc,/源物理地址指针 DWORD cbSize,/要绑定的大小,大小必须与虚拟地址相同 DWORD fdwProtect/访问权限);这里需要注意的是 fdwProtect 参数。如果是驱动程序访问,需要设置为 PAGE_NOCACHE,以访问无缓

4、存段虚拟地址。如果映射的物理地址范围在 0 x1FFFFFFF 之上,必须使用 PAGE_PHYSICAL,此时必须把 lpvSrc 右移八位,实现地址对齐。(这是由内核中 VirtualCopy 的实现决定的,在那个函数中会判断如果是 PAGE_PHYSICAL 就将 PHYSADDR 左移 8 位移回来),内存管理函数,使用VirtualAlloc+VirtualCopy来访问物理内存VirtualAlloc只需对内存保留,VirtualCopy负责把一段物理内存和虚拟内存绑定,内存管理函数,MmMapIoSpace用来把物理地址直接映射到与进程无关的虚拟地址上;MmMapIoSpace申

5、请的内存要用MmUnMapIoSpace释放。PVOID MmMapIoSpace(PHYSICAL_ADDRESS PhysicalAddress,/起始物理地址 ULONG NumberOfBytes,/要映射的字节数 BOOLEAN CacheEnable/是否缓存);MmUnmapIoSpace(PVOIDBaseAddress,/MmMapIoSpace返回的起始虚拟地址 ULONG NumberOfBytes/MmMapIoSpace映射的字节数);,CEDDK,CEDDK.dll exposes functions typically used by drivers for ha

6、ndling bus address translations,allocating and mapping device memory,setting up direct memory access(DMA)buffers,performing I/O,and so on.MSDNCEDDK.DLL:是一个动态链接库,提供大量的函数来完成驱动程序的一些常用操作。总线管理 内存管理I/O管理,CEDDK 简介,设备驱动使用CEDDK,设备管理器,设备驱动,CEDDK.DLL,硬件,CEDDK 内容,CEDDK,CEDDK.dll 源代码位置%_WINCEROOT%PublicCommonOAKDriversCEDDK directory.Library Location Address mapping abstraction DDK_MAP Bus abstraction DDK_BUS DMA abstraction DDK_DMA I/O abstraction DDK_IO Power management abstraction DDK_POWER Time-based abstraction DDK_TIME,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号