-
首先谢谢你的回复~~
RTX是美国Arendce公司开发的基于Windows操作系统的硬件实时解决方案,可以为用户提供优秀的实时控制性能。
实际上我觉得可以把它看作是一个扩展库,提供了一些实时的接口函数,利用这些函数可以完成实时的一些任务。我现在用这个软件是要开发实时的驱动程序,来完成一块FPGA板卡上的实时任务。
因为接触这个也没多久,这段时间也就是在看软件自带的一些例子。但是现在碰到的这个问题,就是不知道错误出在哪里,所以想找熟悉这个软件的大虾请教一下
在rtss程序里,建立了共享内存和信号量,代码如下(只贴了一个建立共享内存的),函数都是RTX库里提供的,参数也都是按照该函数的使用规则写的(其中dwMaximumSizeHigh值是0,MSGSTR是自己定义的一个结构体,MSGSTR_SHM_Ini是共享内存的名称,pMsg是MSGSTR结构体类型的指针)
hShm_Ini = RtCreateSharedMemory( PAGE_READWRITE, dwMaximumSizeHigh, sizeof(MSGSTR), MSGSTR_SHM_Ini, (LPVOID) &pMsg);
if(GetLastError()==ERROR_ALREADY_EXISTS)
MsgAndExit("Warning!\nThe shared memory does already exist.\nThe program may already be running.");
if (hShm_Ini==NULL)
MsgAndExit("RtCreateSharedMemory failed.");
RTSS程序单独运行没有报错,应该共享内存和信号量建立都是正确的
另一个win32程序里打开RTSS进程也是正确的,打开共享内存或者信号量时出错,代码如下(也是只贴了打开共享内存的):
hShm_Ini = RtOpenSharedMemory( PAGE_READWRITE, FALSE, MSGSTR_SHM_Ini, (LPVOID *) &pMsg);
if (hShm_Ini==NULL)
{
printf(" Error: Could not open Shared Memory. GetLastError = %d\n", GetLastError());
turn FALSE;
}
到这里打开就是错误的GetLastError返回值是2
我本来以为是RTSS进程建立的信号量、共享内存win32程序找不到,于是我在win32程序中建立一个共享内存或者信号量,然后再打开,也还是错的,但是在win32中建立了一个互斥体Mutex再打开没报错,换成信号量和共享内存就不行,我不知道问题出在哪,希望大家可以帮帮我(十分感谢!)
-
问题没有说清楚:是什么操作系统?什么芯片?MMU是怎么配置的,有没有添加到数据区?
一般MMU配置正确是可以读取的,有些芯片0位置用于中断等系统用途而被禁用或者禁写。
-
呵呵,俺还以为新来了个ID,原来是老hot又浮出来了。这次潜得蛮久的。
-
楼主的思路是正确的,目前的3G驱动用的也是USB虚拟串口的方式,在wince6.0下有相关的代码实现,就是usbser,5.0系统的话可以把6.0的usbser移植过来用。
-
没有任何影响
-
引用 1 楼 rushonin 的回复:
不知你的OEMAddresstable中有没有对这个空间映射,如果有,就直接访问就行了。
没有,那就要VirtualAlloc+VirtualCopy。
你说的不能成功,是什么现象? 有很多可能 。
问题已经解决,还是出在DM9000芯片本身上,映射操作没有问题。OEMAddresstable有对应的空间映射,VirtualAlloc和VirtualCopy申请分配虚拟地址分配虚拟地址的话内核态的驱动能用,用户态的驱动用不了,谢谢大家的热心回复
-
帮顶,学校里一讲到温度传感器都是DS18B20,不过自己没有跳过
-
学习了,,kyzf果然历害
-
Go On!继续努力!
-
18楼把我看懵了...
-
如果背景不变,可以考虑只刷新字和它的背景
-
顶
-
听说只支持FLASH8版本,FLASH9的支持部分.先确认那些FLASH是那个版本,是不是最新的FLASH10的,目前对FLASH10 CE60下的是不支持的.
-
恩顶一下楼上的噢,说得少但是清楚!
-
可以随时联系我的,全套,一条龙服务,谢谢支持
-
....................
-
友善的BSP包里应该没有这个驱动的
-
时代进步了,技术也进步了,所以PATA边SATA了
以后还要变SSD
-
请高手指教啊
-
最近也是被OTG问题搞得很郁闷。
我的板子无法转换为host状态。
有关OTG相关的资料在哪里会有吗?各位推荐一下吧。