Edit online

关键流程设计

26 Nov 2024
Read time: 1 minute(s)

初始化流程

TSensor 驱动的初始化接口通过 INIT_DEVICE_EXPORT(drv_tsen_init) 完成,会通过调用 Sensor 子系统的接口 rt_hw_sensor_register() 注册一个 Sensor 设备。

TSensor 控制器的初始化过程,主要步骤有:

  1. 初始化模块的 clk。

  2. 注册中断。

  3. 初始化默认参数。

  4. 向设备框架中注册 Sensor 设备。

中断处理流程

TSensor 支持使用中断方式来读取数据,避免应用层的忙等待。


tsen_irq_flow

1. TSensor 非周期模式的数据采集流程
  • 对于非周期模式的数据采集流程:

    1. 用户层触发 ops→fetch_data() 接口,就会启动一次硬件去读数据。
    2. 当硬件准备好数据,会产生一个中断,通知系统数据已经准备好可以读取。
    3. 中断处理函数会响应该中断信号。在中断处理函数中,用 INT Flag 来区分是哪个通道有数据。
    4. 中断处理函数会逐个通道扫描,将每个通道的数据读出,并将数据缓存到一个全局变量中,供后续的用户层应用访问和使用。
  • 对于周期模式:
    1. TSensor 控制器自动按给定周期产生一次数据中断。例如,如果设定周期为 1 秒,则每 1 秒就会触发一次中断。
    2. 中断处理函数会响应该中断信号,并通过 INT Flag 来区分是哪个通道有数据。
    3. 中断处理函数会逐个通道扫描,将每个通道的数据读出,并缓存到全局变量中,供后续的用户层应用访问和使用。