62

帖子

0

TA的资源

一粒金砂(初级)

21
 
但是现在有个问题,就是利用摄像头驱动中的XX_IOControl函数提供的Copy_Cam_Image()函数把RGB格式的图像缓存值拷贝到制定地方时,会出现"Data Abort"异常。
Copy_Cam_Image()函数如下:

  1. void Copy_Cam_Image(U8 *pBufOut, U32 size_x, U32 size_y, U8 port)
  2. {
  3.         U8 *buffer_rgb,*pImage;
  4.         U32 y;
  5.         int temp,pic_size;

  6.   RETAILMSG(MSG_EN_1,(_T("++Copy_Cam_Image().\n")));        //add by Rn 20090330
  7.         pic_size = size_x*size_y*2;        //this is use 176*144*2
  8.         pImage = pBufOut;

  9.        
  10.         {
  11.                 temp = (s2440CAM->rCIPRSTATUS>>26)&3;        //FrameCnt_Pr&3
  12.                 temp = (temp + 2) % 4;
  13.                
  14.                 switch (temp)
  15.                 {
  16.                 case 0:
  17.                         buffer_rgb = (U8 *)s2440CAM->rCIPRCLRSA1;        //RGB 1st frame start address for preview DMA
  18.                         break;
  19.                 case 1:
  20.                         buffer_rgb = (U8 *)s2440CAM->rCIPRCLRSA2;        //RGB 2st frame start address for preview DMA
  21.                         break;
  22.                 case 2:
  23.                         buffer_rgb = (U8 *)s2440CAM->rCIPRCLRSA3;        //RGB 3st frame start address for preview DMA
  24.                         break;
  25.                 case 3:
  26.                         buffer_rgb = (U8 *)s2440CAM->rCIPRCLRSA4;        //RGB 4st frame start address for preview DMA
  27.                         break;
  28.                 default :
  29.                         buffer_rgb = (U8 *)s2440CAM->rCIPRCLRSA1;
  30.                         break;
  31.                 }
  32.                
  33.         }
  34.        
  35.         RETAILMSG(MSG_EN_1,(_T("Copy_Cam_Image:temp is %d.\r\n"), temp));        //add by Rn 20090330

  36. //出现“”异常的代码锁定为以下红色字体部分
  37. [color=#FF0000]#if (DOTNET_DRIVER)    //文件开头有定义(#define DOTNET_DRIVER 1 // 0:PPC, 1:CE.NET)
  38.      SetKMode(TRUE);
  39. #endif
  40.         buffer_rgb += VIRTUAL_OFFSET;        //VIRTUAL_OFFSET=0x7C000000~camif.h
  41.        
  42.         memcpy(pImage, buffer_rgb, pic_size);        //pImage=pBufOut;pic_size = size_x*size_y*2;

  43. #if (DOTNET_DRIVER)
  44.      SetKMode(FALSE);
  45. #endif[/color]
  46. RETAILMSG(MSG_EN_1,(_T("--Copy_Cam_Image().\n")));        //add by Rn 20090330
  47. }
复制代码


串口调试得到的异常信息如下:
Data Abort: Thread=8f9f02b4 Proc=8db96160 'device.exe'
AKY=00000045 PC=03fc3ac8(coredll.dll+0x00053ac8) RA=028630e8(camera.dll+0x000030e8) BVA=06000000 FSR=00000007
RaiseException: Thread=8f9f02b4 Proc=8db96160 'device.exe'
AKY=00000045 PC=03f8dff4(coredll.dll+0x0001dff4) RA=8c22a61c(NK.EXE+0x0002a61c) BVA=00000003 FSR=00000003
Data Abort: Thread=8f9f02b4 Proc=8db96520 'OV9650Test.exe'
AKY=00000041 PC=03f929f4(coredll.dll+0x000229f4) RA=50616548(???+0x50616548) BVA=0e000051 FSR=00000003


请教各位高手!谢谢
此帖出自WindowsCE论坛
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

22
 
//出现“异常”的代码锁定为以下部分:

  1. #if (DOTNET_DRIVER)    //文件开头有定义(#define DOTNET_DRIVER 1 // 0:PPC, 1:CE.NET)
  2.      SetKMode(TRUE);
  3. #endif
  4.        buffer_rgb += VIRTUAL_OFFSET;    //VIRTUAL_OFFSET=0x7C000000~camif.h
  5.    
  6.         memcpy(pImage, buffer_rgb, pic_size);    //pImage=pBufOut;pic_size = size_x*size_y*2;

  7. #if (DOTNET_DRIVER)
  8.      SetKMode(FALSE);
复制代码
此帖出自WindowsCE论坛
 
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

23
 
你用pb的远程调试工具检查内存,看看出现异常时,内存的状况,可能是内存不足了。
此帖出自WindowsCE论坛
 
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

24
 
我现在这个系统不能使用PB的远程调试工具,用开发板公司的系统就是郁闷,现在有没有时间去自己做系统。
我现在把 memcpy()函数换成memmove()函数:


  1. memcpy(pImage, buffer_rgb, pic_size);    //pImage=pBufOut;pic_size = size_x*size_y*2;
复制代码


换成:

  1. memmove(pImage, buffer_rgb, pic_size);  //pImage=pBufOut;pic_size = size_x*size_y*2;
复制代码


问题还是出现,奇怪了!

怎么办?
此帖出自WindowsCE论坛
 
 
 

回复

80

帖子

0

TA的资源

一粒金砂(初级)

25
 
我也是怀疑pImage和buffer_rgb地址上有重叠,说一改用memmove()函数。

还是想看看 :立宇泰电子公司的新版2440配套光盘中有:“ARMSYS2440随盘提供的“WINCE应用程序实例”加入了摄像头应用程序,cameratestV1.2。具备了预览显示和图像抓取(保存为BMP)两项功能。”
此帖出自WindowsCE论坛
 
 
 

回复

80

帖子

0

TA的资源

一粒金砂(初级)

26
 
小弟想要270 摄像头测试的源码学习,发下好吗?
kukusamuel@sina.com
谢了。。
此帖出自WindowsCE论坛
 
 
 

回复

55

帖子

0

TA的资源

一粒金砂(初级)

27
 
引用 25 楼 xiaolong666 的回复:
小弟想要270 摄像头测试的源码学习,发下好吗?
kukusamuel@sina.com
谢了。。

好,发到你邮箱了。
此帖出自WindowsCE论坛
 
 
 

回复

59

帖子

0

TA的资源

一粒金砂(初级)

28
 
自己再顶一下
此帖出自WindowsCE论坛
 
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

29
 
偶也想要那个源码,谢谢发给我一份。 michael_business@126.com
此帖出自WindowsCE论坛
 
 
 

回复

89

帖子

0

TA的资源

一粒金砂(初级)

30
 
CameraTest.exe是微软提供的测试程序,代码在:C:\WINCE600\PRIVATE\TEST\MULTIMEDIA\DIRECTX\DSHOW\CAMERA,
如果哪位的大哥的目录下面没有这个源码,那就是你安装的时候,没有选全,要用完全安装
此帖出自WindowsCE论坛
 
 
 

回复

67

帖子

0

TA的资源

一粒金砂(初级)

31
 
自己做就行了,主要就是先读到CAMERA缓冲区的数据(一开始可以读P通道的,直接就是RGB565格式的数据),然后创建一副图片并填充一下图片头信息,再把从CAMERA读到的RGB565数据放进去就行了;C通道的YUV格式转换起来会稍微麻烦一些。
至于预览功能,应该驱动中实现的(摄像头驱动内部应该有个线程,开始采集后会自动把P通道数据拷贝到LCD缓冲)



*******************************************************************
飞凌嵌入式近期将推出300万像素摄像头解决方案(用于S3C2440),敬请关注!
www.witech.com.cn
此帖出自WindowsCE论坛
 
 
 

回复

65

帖子

0

TA的资源

一粒金砂(初级)

32
 
引用 29 楼 xseng526 的回复:
CameraTest.exe是微软提供的测试程序,代码在:C:\WINCE600\PRIVATE\TEST\MULTIMEDIA\DIRECTX\DSHOW\CAMERA,
如果哪位的大哥的目录下面没有这个源码,那就是你安装的时候,没有选全,要用完全安装


大哥,我的是、WinCE4.2或是WinCE5.0的,好像没有找到你说的PB自带的测试源码阿
此帖出自WindowsCE论坛
 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

33
 
现在发现一个问题啊,在两个版本的Camera驱动中,在camera.cpp文件中的CIS_IOControl()函数中,在case CAM_IOCTL_SAMSUNG_PREVIEW_START、case CAM_IOCTL_SAMSUNG_PREVIEW_STOP的分支中,都有这么一个极大的错误语句:

[code]

也就是输出语句中,只有一个输出的参数,为啥输出参数表中列有两个呢?而且编译后也没有出错!郁闷的我好几天!

后来也就学会了使用Remote Process Explorer的Crack Address功能定位程序的崩溃地址[http://www.cnblogs.com/singlerace/archive/2009/02/26/1396366.html]。
此帖出自WindowsCE论坛
 
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

34
 
也就是在
RETAILMSG(MSG_EN_1,(_T("CAM_IOCTL_SAMSUNG_PREVIEW_START(%x)\r\n"),*pBufOut, DRIVER_PREVIEW_ENABLE))
中,前头的输出参数之调用一个,后头的输出参数表就有两个!
编译时有没有出错,到时应用软件一调用,就TMD的就会无情的提示“Data Abort:”,造成崩溃!
此帖出自WindowsCE论坛
 
 
 

回复

83

帖子

0

TA的资源

一粒金砂(初级)

35
 
你为什么不试试前后都输出两个参数呢  %x,%x    - 》 *pBufOut, DRIVER_PREVIEW_ENABLE
你想看哪个参数就输出哪个参数好了
此帖出自WindowsCE论坛
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

36
 
   现在这个WinCE5.0下使用摄像头抓拍保存图片为JPG格式的小项目,已经基本调通。但是有个问题是,摄像头的输出图像不是很稳定,有时清晰,有时模糊或花屏,不知道具体啥原因,还得继续努力调试!
   
    谢谢大家的热心解答,结贴咯。
此帖出自WindowsCE论坛
 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

37
 
楼主,您好,麻烦您给我发一份测试程序吧,我正需要 gaoguilong123@163.com
谢谢了
此帖出自WindowsCE论坛
 
 
 

回复

67

帖子

0

TA的资源

一粒金砂(初级)

38
 
各位高手,我要找一位摄像头编程的人,哪位有兴趣的话,加我qq:100609509,请注明编程
此帖出自WindowsCE论坛
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

39
 
楼主,您好,麻烦您给我发一份测试程序吧,我正需要 hgg5738@163.com
谢谢了
qq:274571716 正在利用mini2440 做个网络监控摄像头。
//SetKMode(TRUE);
memmove(DDBdata,(void *)image.rgb_address,width*height*2);
//SetKMode(FALSE);

ce6 跑到这了跑不动了 !!
此帖出自WindowsCE论坛
 
 
 

回复

80

帖子

0

TA的资源

一粒金砂(初级)

40
 
楼主你好!!麻烦您也发一份测试程序给我,我正需要 xcygdut@163.com
谢谢了
此帖出自WindowsCE论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表