专栏底层软件sensor多进程支持求助

sensor多进程支持求助

已解决
ghy05042022-12-13
47
10

在写 sensor库的时候发现,有的sensor库有 hb_vin_mipi_pre_request 这个函数,而有的库没有,我们在写库的时候,什么时候需要调用这个函数?或者什么场景需要?什么情况不需要调用这个函数?

底层软件
征程5
+1
评论4
0/1000
  • 新手村
    Lv.4

    您好:

    多进程访问同一个deserial上的不同sensor时,需要用到,用来保护deserial只会初始化一遍

    2022-12-13
    0
    2
    • ghy0504回复新手村:

      谢谢

      2022-12-13
      0
    • 新手村回复ghy0504:

      不客气

      2023-01-15
      0
  • 费小财
    Lv.5

    您好,

    这个函数主要是用来保护的,防止deserial被多进程初始化多遍的,单进程的话该函数应该使用不到

    2022-12-13
    0
    2
    • ghy0504回复费小财:

      谢谢

      2022-12-13
      0
    • 费小财回复ghy0504:

      不客气

      2023-01-15
      0
  • 只蓝片羽
    Lv.1

    您好:

    hb_vin_mipi_pre_request函数主要用于判断deserial的单次(首次)操作是否需要,避免重复操作引入问题。

    对于有多路sensor接入同一deserial的场景,且该多路需要分多进程使用时,则需要调用该函数:

    进程1: sensor0 init (hb_vin_mipi_pre_request=0->deserial0 init) - mipi init - sensor0 statr - mipi start

    进程2: sensor1 init (hb_vin_mipi_pre_request!=0->deserial0 drop) - mipi init(drop) - sensor1 start - mipi start(drop)

    若无上述的场景: 没有deserial,或该deserial只被单进程使用(可以通过状态变量判断是否首次),可以不用上述函数。

    谢谢~

    2022-12-13
    0
    1
    • ghy0504回复只蓝片羽:

      谢谢

      2022-12-13
      0
  • wangfenfen
    Lv.1

    您好,

    该接口使用场景: 多进程用同一个接串器,解串器只需初始化一次,哪个进程先来先去初始化解串器,所以hb_vin_mipi_pre_request可以理解为一个计数,确保第一个进程去初始化解串器。后面的进程不去初始化解串器,只需初始化串行器和sensor就可以了。

    如果你的sensor不带解串器或者是单进程,则不需要此接口。

    2022-12-13
    0
    1
    • ghy0504回复wangfenfen:

      感谢回复!明白了!

      2022-12-13
      0