当前位置: 首页 > news >正文

建设网站需要购买数据库吗淘宝关键词热度查询工具

建设网站需要购买数据库吗,淘宝关键词热度查询工具,阜阳营销型网站建设,宁德城乡建设网站camera成像原理: 景物通过镜头生产光学图像投射到sensor表面上,然后转为模拟电信号,经过数模变成数字图像信号,在经过DSP加工出来,然后在通过IO接口传输到CPU处理。 由于摄像头满足总线、驱动、设备模型,…

camera成像原理:

景物通过镜头生产光学图像投射到sensor表面上,然后转为模拟电信号,经过数模变成数字图像信号,在经过DSP加工出来,然后在通过IO接口传输到CPU处理。  由于摄像头满足总线、驱动、设备模型,那么看看andorid是怎么去实现摄像头的流程。

1.  注册Camera的platform平台设备

点击(此处)折叠或打开

  1. CAMERA_HW_i2C_init
  2. platform_driver_register(&g_stCAMERA_HW_Driver)
  3. static struct platform_driver g_stCAMERA_HW_Driver = {
  4. .probe        = CAMERA_HW_probe,
  5. .remove     = CAMERA_HW_remove,
  6. .suspend    = CAMERA_HW_suspend,
  7. .resume     = CAMERA_HW_resume,
  8. .driver        = {
  9. .name    = "image_sensor",
  10. .owner    = THIS_MODULE,
  11. }
  12. };

2.  注册Camera的platform平台设备驱动

点击(此处)折叠或打开

  1. platform_device_register(&sensor_dev);
  2. static struct platform_device sensor_dev = {
  3. .name         = "image_sensor",
  4. .id         = -1,
  5. };

在    在mt6575_board_init这个函数中注册了很多平台设备,包括上面的平台设备。camera的平台设备与平台驱动匹配后,就会调用drv的probe函数,其probe函数主要完成的是i2c平台驱动的注册

点击(此处)折叠或打开

  1. static int CAMERA_HW_probe(struct platform_device *pdev)
  2. {
  3. return i2c_add_driver(&CAMERA_HW_i2c_driver);
  4. }
  5. struct i2c_driver CAMERA_HW_i2c_driver = {
  6. .probe = CAMERA_HW_i2c_probe,
  7. .remove = CAMERA_HW_i2c_remove,
  8. .detect = CAMERA_HW_i2c_detect,
  9. .driver.name = CAMERA_HW_DRVNAME,
  10. .id_table = CAMERA_HW_i2c_id,
  11. .address_data = &addr_data,
  12. };

怎么去做i2c驱动与设备的匹配呢?内核中对于这块有详细的讲解,文件为instantiating-devices,现在i2c的平台驱动已经注册了,下面来分析下是怎么注册平台设备的。应该使用内核的第3种方法,在内核注册i2c驱动的时候,最终会遍历总线设备的driver成员,调用__attach_adapter函数。

点击(此处)折叠或打开

  1. static int __attach_adapter(struct device *dev, void *data)
  2. {
  3. struct i2c_adapter *adapter;
  4. struct i2c_driver *driver = data;
  5. if (dev->type != &i2c_adapter_type)
  6. return 0;
  7. adapter = to_i2c_adapter(dev);
  8. i2c_detect(adapter, driver);
  9. /* Legacy drivers scan i2c busses directly */
  10. if (driver->attach_adapter)
  11. driver->attach_adapter(adapter);
  12. return 0;
  13. }

这个函数最主要的是调用了CAMERA_HW_i2c_driver的detect函数,完成设备与驱动的匹配,最终会调用CAMERA_HW_i2c_probe。

点击(此处)折叠或打开

  1. static int CAMERA_HW_i2c_detect(struct i2c_client *client, int kind, struct i2c_board_info*info)
  2. {
  3. strcpy(info->type, CAMERA_HW_DRVNAME);
  4. return 0;
  5. }

在probe函数中最只做了一件事件RegisterCAMERA_HWCharDrv,这个函数会注册字符设备,注册设备节点,并在设备节点下创建类,重点的东西出现了

点击(此处)折叠或打开

  1. static const struct file_operations g_stCAMERA_HW_fops =
  2. {
  3. .owner = THIS_MODULE,
  4. .open = CAMERA_HW_Open,
  5. .release = CAMERA_HW_Release,
  6. #ifdef USE_NEW_IOCTL
  7. .unlocked_ioctl = CAMERA_HW_Ioctl
  8. #else
  9. .ioctl = CAMERA_HW_Ioctl
  10. #endif
  11. };

Open只是初始化一个原子变量留给系统调用,ioctrl才是核心,CAMERA_HW_Ioctl是上层文件操作底层硬件的方法。以上是andorid上摄像头i2c设备的过程。

http://www.mmbaike.com/news/27541.html

相关文章:

  • 企业网站的一般要素包括哪里有营销策划培训班
  • wordpress搬到谷歌服务器网站优化关键词公司
  • 邪恶东做图网站百度营销登录平台
  • 织梦网站为什么容易被注入网站优化一年多少钱
  • 响应式网站建设哪里有百度推广公司电话
  • 网站开发主要语言百度 营销推广多少钱
  • 蚌埠市做家教网站效果最好的推广软件
  • 自建社区网站网站推广平台排行
  • 如何做视频网站it培训机构哪个好
  • 石家庄网站建设是什么意思百度热搜 百度指数
  • linux上上线wordpress湛江seo
  • wordpress做企业网站怎么建立个人网站
  • 网站跳转怎么做360关键词优化 搜索引擎
  • 网站建设费用模板快速seo软件
  • oa系统网站建设方案整合营销策划方案模板
  • 成都代运营公司上海企业seo
  • 网站建设网站徒手整形培训网上电商怎么做
  • 哪个网站做货车专业网络营销推广有哪些方法
  • 建立一个网站的步骤seo网站优化培训怎么样
  • 物流公司网站建设有什么要点开发定制软件公司
  • 圣诞节网站怎么做百度官网下载电脑版
  • 公司网站抬头用什么软件做江苏做网站的公司有哪些
  • 杭州网站排名优化工具百度客服24小时人工电话
  • 新网站应该怎么做外贸网站搭建推广
  • 建设微信商城网站制作怎么做一个网站
  • 吉林省人民政府发展研究中心友情链接seo
  • 做百度网站需要什么条件搜索引擎优化核心
  • 做网站品牌小程序开发系统
  • 北京环球影城寄存柜刷关键词排名seo
  • 江西哪家网站建设公司好重庆网站建设外包