摘要:
在CE4.2/5.0里面滚打多年的兄弟应该经常用这个函数吧。这个函数方便驱动和应用程序范围任何的物理地址,包括物理内存啊,设备控制器的寄存器啊,甚至GPIO也可以在AP里面随便拉上拉下。这个函数虽然方便,但是并不安全,你想你好不容易把一个功能完善的image给build出来了,结果碰到了一个写AP的“高手”,把你的寄存器和共享内存中的数据修改得一塌糊涂,最后报出bug来说你驱动的你会不会晕倒!还好从CE6.0开始我们可以安枕无忧了,因为AP再也不能调用VirtualCopy函数来直接访问物理地址了,但因此带来了一些应用上的不便。VirtualCopy的限制来源于CE6.0之后kernel的巨大 阅读全文
摘要:
前一篇中简单介绍了进程间通讯的机制之一-------消息机制。本篇中我简要的描述一下进程间通讯的另一种机制----------内存共享机制。WINDOWS中要使用内存共享的方式在进程间通讯需要采用DLL方式。由于WIN32把DLL装入全局内存并把DLL映射到每个程序的地址空间。所有载入DLL的应用程序只能共享程序代码,不能共享数据。要想使DLL的数据区能设计成共享的存储区,可以通过#pragma data_seg指令来建立一个新段来做完成。但是这样还不能够做到数据共享,还要把段中将要共享的变量告诉连接器。以下对这个过程进行介绍:1,新建一个空的DLL工程,向里边添加相应的文件;2,在.def文 阅读全文