首页 > 嵌入式软件 > WinCE

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

本文引用地址: http://embed.21ic.com/software/wince/201803/51080.html

以下通过在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 使得在不同平台下程序能够顺利运行。

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

先定义

 

10.jpg

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

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

换一批

延伸阅读

[趣科技] 真正符合人类思维方式的“黑科技”--三进制计算机

真正符合人类思维方式的“黑科技”--三进制计算机

相比之下,“三进制”逻辑更接近人类大脑的思维方式。因为在一般情况下,我们对问题的看法不是只有“真”和“假”两种答案,还有一种“不知道”。......

关键字:逻辑思维 二进制 三进制计算机

[新鲜事] 如果你捡到了王思聪的狗,怎么做才能把利益最大化?

如果你捡到了王思聪的狗,怎么做才能把利益最大化?

王思聪家的狗是一只“蠢萌蠢萌”的哈士奇,取名叫做coco。王思聪是一位爱狗人士,他给狗狗买豪车、别墅、玩Cosplay,在朋友圈高调晒出他俩的合照,幸福生活等等,一句话概括就是有钱真好,广大网友调侃:“过的不如狗”。......

关键字:王思聪 COCO

[真心话] 单片机大师郭天祥的大学六年,看看与你的有何不同?

单片机大师郭天祥的大学六年,看看与你的有何不同?

在哈尔滨工程大学五年,我在学校电子创新实验室呆了四年,这四年里创新实验室给我提供了良好的学习环境和完善的实验设备;在这里与众多电子爱好者的交流中,使我学到了更多的专业知识;在学校老师们的教导下,让我学会了如何做一名合格的大学生。......

关键字:单片机 郭天祥

[疯狂史] 涉案金额3.2亿!全国最大刷单案落定,每天最高7000单均价6元

涉案金额3.2亿!全国最大刷单案落定,每天最高7000单均价6元

预售、秒杀、抢购……每逢电商大促,剁手党疯狂下单掀起网络狂欢的同时,网络诚信也在经受着严峻的考验。今天是电商618的决战日,各家电商平台的流量战打得也是如火如荼,交易量、商品评价、信用评价等指......

关键字:电商 网络刷单

[趣科技] 谷歌惊天预言:人类将在2029年开始实现远距离性爱与永生

谷歌惊天预言:人类将在2029年开始实现远距离性爱与永生

作家、发明家、计算机科学家、谷歌首席未来学家雷·库兹韦尔(Ray Kurzweil)在接受《花花公子》杂志专访时表示,在不远的将来,技术将让我们变得更聪明、更健康,人类将在2029年开始实现永生,远距离的性爱将发生。......

关键字:谷歌 人类 永生
条评论

我 要 评 论

网友评论

大家都爱看

  • 扇出型晶圆级封装的优势和挑战!

    我们有能力创造一些能保持前代性能并且更好更小的电子设备,例如今天的可穿戴设备、智能手机或平板电脑,这是由于很多因素超过摩尔定律而快速发展,从而能够从底层的嵌入组件发展到今天把它们封…

    2018-03-29
  • Xilinx推出革命性的新型自适应计算产品

    自适应和智能计算的全球领先企业赛灵思公司(Xilinx, Inc.,(NASDAQ:XLNX)),近日宣布推出一款超越FPGA功能的突破性新型产品,名为ACAP(Adaptive Compute Acceleration Platform,自适应计算加速…

    2018-03-20
  • 赛普拉斯为树莓派3 B+ IoT单板计算机提供强大稳定的无

    先进嵌入式系统解决方案的领导者赛普拉斯(纳斯达克代码:CY)近日宣布其Wi-Fi®和蓝牙®combo解决方案为全新的树莓派 3 B+(Raspberry Pi 3Model B+)IoT单板计算机提供强大稳定的无线连接…

    2018-03-20
  • 观看直播领红包,SEED-A10加速卡助力人工智能

    随着云服务器、云计算的发展,大家对硬件加速的需求越来越多,但是随着设备功耗的上升、性能需求越来越高,常规加速设备以及开始不能满足需求,因此FPGA逐渐在硬件加速中找到了自己的位置,而艾…

    2018-03-19
  • 特朗普:博通不得以任何形式收购高通

    白宫周一(3月12日)晚发出声明,川普(特朗普)总统出于“国家安全”考量、禁止新加坡博通公司(Broadcom)收购美国高通公司(Qualcomm)。

    2018-03-14