我是靠谱客的博主 着急硬币,最近开发中收集的这篇文章主要介绍高通 8x26 android sensor 初始化,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

初始化从adsp_proc/Sensors/dsps/src/common/sns_pd.c的main函数开始
0. main()
  1. coremain_main()//看不到函数原型
  1. sns_init()  //主线
    2. sns_profiling_init() //电源初始化
    2. sns_init_once()//主线
      3. 用for循环依次执行宏SNS_INIT_FUNCTIONS定义的函数:
      sns_init_dsps,           // 初始化DSPS services
      sns_em_init,             //初始化Event Manager
      sns_smgr_init,           //主线,starts smgr task
      sns_sam_init,            //Creates the SAM task and internal databases.
      sns_scm_init,            //Creates the SCM task and internal databases.
      sns_debug_init,          //Creates the debug task
      smgr_qmi_ping_client_start//?貌似是创建与主芯片通信线程

1. sns_smgr_task()//sns_smgr_init创建此task
  2.跳过各种初始化,直接进入main loop的while(1)循环中:
  sns_smgr_process_msg()按顺序smgr_ssi_devinfo[],先处理注册表数据的devinfo,把设备和驱动对应起来,存储到smgr_sensor_cfg中,按顺序smgr_ssi_devinfo[]
    3. sns_smgr_process_reg_data()
      4. sns_smgr_process_reg_devinfo()
        5. sns_smgr_parse_reg_devinfo_resp()//只处理一类sensor
      6. 一类sensor最多可兼容6种芯片,循环6次:
            如果支持probe,就使用probe函数检测,如果检测到设备就调用:
        7. sns_smgr_populate_cfg_from_devinfo(),退出循环,返回。
            如果不支持probe,就假设已经连接,直接调用:
        7. sns_smgr_populate_cfg_from_devinfo(),退出循环,返回。//??不理解,这样只会填充第一个此类型的sensor的配置,又不知道对不对。

        5. 处理完smgr_ssi_devinfo[]中最后一个设备后调用:
        for(3){
    5. sns_smgr_populate_ssi_cfg_from_smgr_cfg()//将全局结构smgr_sensor_cfg拷贝到一个临时变量中
        5. sns_smgr_update_reg_data()
      6. sns_smgr_send_req(smgr_reg_cl_user_handle)
        5. sns_hw_update_ssi_reg_items()//初始化GPIO,I2C
          如果是SSI:初始化sns_smgr_hw_gpio_cfg和sns_smgr_hw
      6.最后一个smgr_ssi_cfg初始化后:
      sns_hw_init_i2c_bus_config()
      SMGR_BIT_SET(sns_smgr.flags, SMGR_FLAGS_HW_INIT_B);
      如果是SNS_REG_GROUP_SSI_GPIO_CFG_V02:初始化sns_smgr_hw_gpio_cfg
          6. sns_smgr_req_reg_data(SNS_SMGR_REG_ITEM_TYPE_GROUP)
    }
      5. sns_smgr_req_reg_data

前面已将SMGR_FLAGS_HW_INIT_B置true,回到sns_smgr_task()的while(1)执行:
1. sns_smgr_dd_init()//初始化所有sensor

最后

以上就是着急硬币为你收集整理的高通 8x26 android sensor 初始化的全部内容,希望文章能够帮你解决高通 8x26 android sensor 初始化所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(69)

评论列表共有 0 条评论

立即
投稿
返回
顶部