当前位置:首页 > 通信技术 > 通信技术
[导读]由于桌面Windows绝大多数情况下运行于X86平台上,也就不存在不同平台的可移植性问题。然而Windows CE运行在四大架构(X86,SHx,MIPS,ARM)的CPU上,编写应用程序时就需要考虑它的移植。  以下通过在WinCE系统下访问

由于桌面Windows绝大多数情况下运行于X86平台上,也就不存在不同平台的可移植性问题。然而Windows CE运行在四大架构(X86,SHx,MIPS,ARM)的CPU上,编写应用程序时就需要考虑它的移植。

  以下通过在WinCE系统下访问物理地址,来看看如何编写可移植性较好的应用程序

  首先必须明确两个概念。

  1. 在X86平台下才有I/O地址这一说,在其他体系的CPU(如ARM/MIPS)下是没有I/O端口的。因为X86下把I/O和存储器分开编址,导致其有两种地址;而别的CPU是把两者统一编址,即把I/O映射到存储器上。

  2. WinCE的存储管理是通过MMU实现的,在系统启动后,我们只能访问虚拟存储空间,必须经过MMU。但是在X86下,访问I/O口和存储器走的地址总线不同,不用经过MMU。

  比如我们想要访问挂在某总线上物理地址为360h的端口,对于X86平台我们可以直接嵌入汇编操作物理地址, 或者使用地址指针访问物理地址。但对于其他平台,我们必须先作一个物理地址到虚拟地址的映射,然后操作其虚拟地址。这样显然程序的可移植性不好,我们需要定义 #ifdef __x86....#elif defined __arm 使得在不同平台下程序能够顺利运行。

  如果使用下面的代码我们就可以不用这么费劲的定义不同平台了:

  先定义

  

 

  随后对于端口的操作( ioPortBase),我们也可以充分挖掘它的可移植性。通过使用READ_PORT_UCHAR, WRITE_PORT_UCHAR这些wince下的宏来实现端口读写。而不是在X86下用指针操作(不仅移植性差,而且容易产生问题)。CE下的宏在内部是封装好的API函数。例如WRITE_PORT_UCHAR这个宏在X86 处理器上转化为一条OUT的汇编指令;而在ARM处理器上会转化成一条对虚拟地址的写指令。

  WinCE5.0下可以使用CreateBusAccessHandle(总线注册表路径)+BusTransBusAddrToVirtual来实现总线物理地址到系统虚拟地址的直接变换。这种方式比起使用OEMAddressTable+VirtualAlloc+VirtualCopy方式更具不同平台的可移植性.

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

多数受访粉丝认为,AI驱动的功能会对他们观看体育赛事的方式产生重大影响 超过半数的受访者希望通过AI技术获得对过去、现在和未来体育赛事的评论和分析 移动体育应用...

关键字: IBM AI 应用程序 移动

台北 2025年7月16日 /美通社/ -- 作为物联网(IoT)智能系统及嵌入式平台领域的全球领导者,研华科技(Advantech)今天宣布推出其AMAX物联网控制平台。这一创新解决方案将可编程逻辑控制器(PLC)、...

关键字: 物联网 控制平台 I/O PLC

高 I/O、低功耗及先进的安全功能,适用于成本敏感型边缘应用

关键字: FPGA I/O 机器视觉

青岛 2025年5月23日 /美通社/ -- 全球领先的消费电子和家电品牌海信今天宣布将谷歌全新Home API集成至其ConnectLife应用程序。今年秋季前,用户可通过该应用程序将第三方智能家居设备接入Conne...

关键字: API NEC 海信 应用程序

-Arya.ai推出MCP应用程序,将通用LLM转化为特定领域专家 印度孟买和纽约 2025年5月13日 /美通社/ -- Arya.ai今天宣布推出APEX MCP(模...

关键字: MCP 应用程序 AI 人工智能

在嵌入式Linux系统编程中,文件I/O(Input/Output)和标准I/O库是实现文件操作不可或缺的两种方式。这两种方法各有特色,适用于不同的应用场景。本文将深入探讨文件I/O和标准I/O库的工作原理、区别及应用,...

关键字: 嵌入式Linux I/O

在Linux操作系统中,文件I/O和标准I/O是两种常见的输入输出(I/O)操作方式。尽管它们的目标都是实现数据的读写,但在数据缓冲的原理和机制上却存在显著的差异。理解这些差异对于优化应用程序的性能至关重要。

关键字: Linux文件 I/O

北京2025年1月15日 /美通社/ -- 2025年1月8日,STIF第五届国际科创节暨新质生产力领航者峰会在北京举行。作为科技创新与数字化服务领域最具影响力的年度盛会之一,本届大会汇聚全球科创品牌,旨在通过构建多元、...

关键字: 数字化 APP 互联网 应用程序

推动技术创新与业务增长 北京2024年12月19日 /美通社/ -- 在亚马逊云科技2024 re:Invent全球大会上,亚马逊云科技与东南亚领先的超级应用程序Grab共同宣布,Grab已选择亚马逊云科技为首选云服务...

关键字: 亚马逊 应用程序 云服务 AI技术

Amazon Aurora DSQL是一款性能卓越的分布式SQL数据库,具备99.999%的多区域可用性、几乎无限的可扩展性、强一致性,且完全消除了基础设施管理的负担。 北京2024年12月13日 /美通社/ -- 亚...

关键字: 亚马逊 分布式 SQL数据库 应用程序
关闭