自学做网站可以嘛,建设网站的公司的官网,一个企业可以做几个网站,北京 科技网站建设最近开始接触Vxworks#xff0c;得知Vx中不可对物理地址直接操作#xff0c;需要先转为虚拟地址。 本文则将介绍此实现方法。
1. 物理地址映射为虚拟地址
采用pmapGlobalMap接口#xff0c;对从0xf0000000开始#xff0c;大小为0x1000的地址空间进行映射#xff0c;得到…最近开始接触Vxworks得知Vx中不可对物理地址直接操作需要先转为虚拟地址。 本文则将介绍此实现方法。
1. 物理地址映射为虚拟地址
采用pmapGlobalMap接口对从0xf0000000开始大小为0x1000的地址空间进行映射得到Virtual_Base开始的虚拟地址。
/*初始化变量*/
UINT32 Virtual_Base;
UINT32 mmuAttr MMU_ATTR_SUP_RW | MMU_ATTR_CACHE_OFF;
/*对物理地址映射*/
Virtual_Base pmapGlobalMap((PHYS_ADDR)0xf0000000, (size_t)0x1000, mmuAttr);2. 获取某地址存放的值
根据1.转换为虚拟地址后就要以这个虚拟地址为基址从而获取其他地址的表示。 如下面例子中(Virtual_Base 0x0004) 表示 实际物理地址为 (0xf0000000 0x0004) 的地址对这个地址进行UINT32类型转换、并取值即可得到该地址所存值。
res *(UINT32 *)(Virtual_Base 0x0004);