This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] Linux/AM5718:双摄像头分段故障(转储内核)演示示示示示例

Guru**** 2589280 points
Other Parts Discussed in Thread: AM5718

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/587349/linux-am5718-segmentation-fault-core-dumped-for-dual-camera-demo-example

器件型号:AM5718

工具/软件:Linux

尊敬的 TI 专家:

我将 AM5718 IDK 板与 RT Linux SDK 配合使用、 摄像头模块为 Ov2659、在 Linux 登录期间、我可以获取 Ov2659驱动程序初始化信息、并通过 Linux 内核中的 v4l2框架进行注册:  

[7.259926]   ov2659 0-0030:Nemo ov2659_probe entry!!                        
[7.260085]   ov2659 0-0030:GPIO 查找消费类断电                    
[7.260090]   ov2659 0-0030:使用器件树进行 GPIO 查找                 
[7.260121]   of_get_named_gpio_FLAGS:解析了节点的'Pwrdn-GPIO'属性)
[7.260133]   ov2659 0-0030:Nemo 开始到 v4l2_Ctrl_handler_init!!            
[7.262740]   ov2659 0-0030:找到 OV2656传感器                               
[7.287523]   ov2659 0-0030:已注册 ov2659 0-0030传感器驱动器!!         
[8.898506]   vip1-s0:端口 B:使用 subdev ov2659 0-0030进行捕获

但目前我们没有显示模块(显示模块正在订购)、因此我们无法运行双摄像头演示示例、此时我们仅使用一个摄像头模块。

我在 main.cpp 中修改了双摄像头演示、如下所示:

#include 
#include 
#include 
#include "loopback.h"

int main (int argc、char * argv[])
{
printf ("Nemo start camera\n");
if (init_loopback ()<0){
/* TODO:确保退出正确发生*/
}
睡眠(5);
status.jpeg = true;
printf ("Nemo 进程框架!\n");
process_FRAME();
睡眠(1);
printf ("Nemo End streaming\n");
end_streaming();
printf ("Nemo 关闭摄像头\n");
exit_devices();

返回1;
} 

然后、我遇到了分割故障:

root@am57xx-EVM:~#./dual_cameramera                                                
Nemo 启动摄像头                                                               
                                                                               
捕捉0:打开的通道                                                       
                                                                               
捕捉0:能够流式传输                                                 
                                                                               
捕捉0:初始化成功完成                                               
                                                                               
导出的缓冲区 FD = 6[13161.780648] Nemo v4l2_ctrl_handler_init_class          
                                                                               
                                                                               
导出的缓冲区 FD = 8                                                          
                                                                               
导出的缓冲区 FD = 10                                                         
                                                                               
                                                                               
捕捉1:打开的通道                                                       
                                                                               
捕捉1:能够流式传输                                                 
                                                                               
VIDIoc_G_parm:器件的 ioctl 不合适                                   
仅检测到一个摄像头                                                        
在 am57xx 处理器上运行演示                                            
分段故障(转储内核)                                                
root@am57xx-EVM:~#


在摄像机1上看起来失败、摄像机0看起来正常。 我想在文件夹/usr/share/camera-images 上创建相同的 jpeg 图像,如何修改代码以获得此预期结果?


非常感谢!

此致、
Nemo

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    您是如何交叉编译双摄像头演示的?
    您还能在分割故障后显示 dmesg 日志吗?

    此致、
    Yordan