Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(https://www.javaxxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:点击进入购买VIP会员
JAVA高级面试进阶视频教程Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程

Go语言视频零基础入门到精通

Java架构师3期(课件+源码)

Java开发全终端实战租房项目视频教程

SpringBoot2.X入门到高级使用教程

大数据培训第六期全套视频教程

深度学习(CNN RNN GAN)算法原理

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程 MySQL入门到精通教程
查看: 541|回复: 0

[实例教程]Android tegra2中添加一个camera

[复制链接]

该用户从未签到

发表于 2011-10-22 12:30:09 | 显示全部楼层 |阅读模式
  在这种情况下,camera的驱动当然也就不会放在kernel下了,目前她被放在hardware/tegra/odm/product***/下,要具体地添加一个camera及其驱动,主要步骤如下:

       1)odm_kit/query/include/nvodm_query_discovery_imager.h
       定义一个标识序列,例如
       #define QQ1234_GUID         NV_ODM_GUID('s','_','Q','Q','1','2','3','4')

       2)odm_kit/query/subboards/nvodm_query_discovery_e***_addresses.h 配置camera的硬件连接参数

java代码: #define QQ1234_PINS (NVODM_CAMERA_DEVICE_IS_DEFAULT)

static const NvOdmIoAddress s_ffaImagerQQ1234Addresses[] =

{

I2C配置;

Reset GPIO 配置;

powerdown GPIO 配置;

Camera VDD 配置;

VCSI 配置;

Video input 配置;

external Clock (CSUS)配置;

};
3)odm_kit/query/subboards/nvodm_query_discovery_e***_peripherals.h camera设备入口地址同GUID关联

java代码: // QQ1234



{

QQ1234_GUID,

s_ffaImagerQQ1234Addresses,

NV_ARRAY_SIZE(s_ffaImagerQQ1234Addresses),

NvOdmPeripheralClass_Imager

},
4)odm_kit/adaptations/imager/Android.mk
LOCAL_SRC_FILES += sensor_yuv_qq1234.c

        5)odm_kit/adaptations/imager/imager_hal.c

        添加Hal层会枚举的camera类型
java代码: #include "sensor_yuv_qq1234.h"

DeviceHalTable g_SensorHalTable[] ={

....

{QQ1234_GUID, SensorYuvQQ1234_GetHal},

....

};
5)odm_kit/adaptations/imager/sensor_yuv_qq1234.c
        odm_kit/adaptations/imager/sensor_yuv_qq1234.h
        NvBool SensorYuvxQQ1234_GetHal(NvOdmImagerHandle hImager);
        这是对camera设备的配置和功能的具体实现的文件。硬件校准之类的工作主要就是修改sensor_yuv_qq1234.c

java代码: NvBool SensorYuvQQ1234_GetHal(NvOdmImagerHandle hImager)

{

if (!hImager || !hImager->pSensor)

return NV_FALSE;



hImager->pSensor->pfnOpen = SensorYuv_Open;

hImager->pSensor->pfnClose = SensorYuv_Close;

hImager->pSensor->pfnGetCapabilities = SensorYuv_GetCapabilities;

hImager->pSensor->pfnListModes = SensorYuv_ListModes;

hImager->pSensor->pfnSetMode = SensorYuv_SetMode;

hImager->pSensor->pfnSetPowerLevel = SensorYuv_SetPowerLevel;

hImager->pSensor->pfnGetPowerLevel = SensorYuv_GetPowerLevel;

hImager->pSensor->pfnSetParameter = SensorYuv_SetParameter;

hImager->pSensor->pfnGetParameter = SensorYuv_GetParameter;



return NV_TRUE;

}
回复

使用道具 举报

该用户从未签到

发表于 2011-10-22 12:30:13 | 显示全部楼层

Re:[实例教程]Android

回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|手机版|Java学习者论坛 ( 声明:本站资料整理自互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

GMT+8, 2025-1-22 17:50 , Processed in 0.522893 second(s), 45 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表