mirror of
https://github.com/Fishwaldo/bl_mcu_sdk.git
synced 2025-07-21 20:28:43 +00:00
[docs] update doc
This commit is contained in:
parent
ee237e8197
commit
a703cb54ff
74 changed files with 74 additions and 128 deletions
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -107,26 +107,16 @@ API 概述
|
||||||
**device_register**
|
**device_register**
|
||||||
^^^^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
``device_register`` 用于设备的注册,将设备信息注册到链表当中。
|
``device_register`` 用于设备标准驱动的注册,并将设备信息注册到链表当中。
|
||||||
|
|
||||||
.. code-block:: C
|
.. code-block:: C
|
||||||
|
|
||||||
int device_register(struct device *dev, const char *name, uint16_t flag);
|
int device_register(struct device *dev, const char *name);
|
||||||
|
|
||||||
- dev 设备句柄。
|
- dev 设备句柄。
|
||||||
- name 设备名称。
|
- name 设备名称。
|
||||||
- flag 设备的读写属性
|
|
||||||
- return 返回错误码,0 表示注册成功,其他表示错误。
|
- return 返回错误码,0 表示注册成功,其他表示错误。
|
||||||
|
|
||||||
``flag`` 可以写入以下参数,表示:**只读**、**只写**、**可读可写**。
|
|
||||||
|
|
||||||
.. code-block:: C
|
|
||||||
|
|
||||||
#define DEVICE_OFLAG_RDONLY 0x1000 /* 以只读方式打开设备 */
|
|
||||||
#define DEVICE_OFLAG_WRONLY 0x2000 /* 以只写方式打开设备 */
|
|
||||||
#define DEVICE_OFLAG_RDWR 0x3000 /* 以读写方式打开设备 */
|
|
||||||
|
|
||||||
|
|
||||||
**device_unregister**
|
**device_unregister**
|
||||||
^^^^^^^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
|
|
@ -79,17 +79,16 @@ ADC 设备接口
|
||||||
ADC 设备接口全部遵循标准设备驱动管理层提供的接口。
|
ADC 设备接口全部遵循标准设备驱动管理层提供的接口。
|
||||||
|
|
||||||
|
|
||||||
**ADC_register**
|
**adc_register**
|
||||||
^^^^^^^^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
``adc_register`` 用来注册 ADC 设备标准驱动接口,在注册之前需要打开对应 ADC 设备的宏定义。例如定义宏 ``BSP_USING_ADC0`` 方可使用 ``ADC0`` 设备,注册完成以后才可以使用其他接口,如果没有定义宏,则无法使用 ``ADC0`` 设备。
|
``adc_register`` 用来注册 ADC 设备标准驱动接口,在注册之前需要打开对应 ADC 设备的宏定义。例如定义宏 ``BSP_USING_ADC0`` 方可使用 ``ADC0`` 设备,注册完成以后才可以使用其他接口,如果没有定义宏,则无法使用 ``ADC0`` 设备。
|
||||||
|
|
||||||
.. code-block:: C
|
.. code-block:: C
|
||||||
|
|
||||||
int ADC_register(enum ADC_index_type index, const char *name, uint16_t flag);
|
int adc_register(enum ADC_index_type index, const char *name);
|
||||||
|
|
||||||
- index 要注册的设备索引
|
- index 要注册的设备索引
|
||||||
- name 为注册的设备命名
|
|
||||||
- flag 默认可读可写属性
|
- flag 默认可读可写属性
|
||||||
|
|
||||||
``index`` 用来选择 ADC 设备配置,一个 index 对应一个 ADC 设备配置,比如 ``ADC0_INDEX`` 对应 ``ADC0_CONFIG`` 配置,``index`` 有如下可选类型
|
``index`` 用来选择 ADC 设备配置,一个 index 对应一个 ADC 设备配置,比如 ``ADC0_INDEX`` 对应 ``ADC0_CONFIG`` 配置,``index`` 有如下可选类型
|
||||||
|
|
|
@ -217,11 +217,10 @@ DMA 设备接口全部遵循标准设备驱动管理层提供的接口。并且
|
||||||
|
|
||||||
.. code-block:: C
|
.. code-block:: C
|
||||||
|
|
||||||
int dma_register(enum dma_index_type index, const char *name, uint16_t flag);
|
int dma_register(enum dma_index_type index, const char *name);
|
||||||
|
|
||||||
- index 要注册的设备索引
|
- index 要注册的设备索引
|
||||||
- name 为注册的设备命名
|
- name 为注册的设备命名
|
||||||
- flag 默认可读可写属性
|
|
||||||
|
|
||||||
``index`` 用来选择 DMA 设备某个通道的配置,一个 index 对应一个 DMA 设备的一个通道配置,比如 ``DMA_CH0_INDEX`` 对应 DMA 通道0 配置,``index`` 有如下可选类型
|
``index`` 用来选择 DMA 设备某个通道的配置,一个 index 对应一个 DMA 设备的一个通道配置,比如 ``DMA_CH0_INDEX`` 对应 DMA 通道0 配置,``index`` 有如下可选类型
|
||||||
|
|
||||||
|
|
|
@ -75,11 +75,10 @@ I2C 设备标准接口当前仅使用 ``device_open`` , 并提供标准的数据
|
||||||
|
|
||||||
.. code-block:: C
|
.. code-block:: C
|
||||||
|
|
||||||
int i2c_register(enum i2c_index_type index, const char *name, uint16_t flag);
|
int i2c_register(enum i2c_index_type index, const char *name);
|
||||||
|
|
||||||
- index 要注册的设备索引
|
- index 要注册的设备索引
|
||||||
- name 为注册的设备命名
|
- name 为注册的设备命名
|
||||||
- flag 默认可读可写属性
|
|
||||||
|
|
||||||
``index`` 用来选择 I2C 设备,一个 index 对应一个 I2C 设备配置,比如 ``I2C0_INDEX`` 对应 ``I2C0_CONFIG`` 配置,``index`` 有如下可选类型
|
``index`` 用来选择 I2C 设备,一个 index 对应一个 I2C 设备配置,比如 ``I2C0_INDEX`` 对应 ``I2C0_CONFIG`` 配置,``index`` 有如下可选类型
|
||||||
|
|
||||||
|
|
|
@ -144,11 +144,10 @@ I2S 设备接口全部遵循标准设备驱动管理层提供的接口。
|
||||||
|
|
||||||
.. code-block:: C
|
.. code-block:: C
|
||||||
|
|
||||||
int i2s_register(enum i2s_index_type index, const char *name, uint16_t flag);
|
int i2s_register(enum i2s_index_type index, const char *name);
|
||||||
|
|
||||||
- index 要注册的设备索引
|
- index 要注册的设备索引
|
||||||
- name 为注册的设备命名
|
- name 为注册的设备命名
|
||||||
- flag 默认可读可写属性
|
|
||||||
|
|
||||||
``index`` 用来选择 I2S 设备配置,一个 index 对应一个 I2S 设备配置,比如 ``I2S0_INDEX`` 对应 ``I2S0_CONFIG`` 配置。index 有如下可选类型
|
``index`` 用来选择 I2S 设备配置,一个 index 对应一个 I2S 设备配置,比如 ``I2S0_INDEX`` 对应 ``I2S0_CONFIG`` 配置。index 有如下可选类型
|
||||||
|
|
||||||
|
|
|
@ -94,11 +94,10 @@ PWM 设备接口全部遵循标准设备驱动管理层提供的接口。并且
|
||||||
|
|
||||||
.. code-block:: C
|
.. code-block:: C
|
||||||
|
|
||||||
int pwm_register(enum pwm_index_type index, const char *name, uint16_t flag);
|
int pwm_register(enum pwm_index_type index, const char *name);
|
||||||
|
|
||||||
- index 要注册的设备索引
|
- index 要注册的设备索引
|
||||||
- name 为注册的设备命名
|
- name 为注册的设备命名
|
||||||
- flag 默认可读可写属性
|
|
||||||
|
|
||||||
``index`` 用来选择 PWM 设备某个通道的配置,一个 index 对应一个 PWM 设备的一个通道配置,比如 ``PWM_CH0_INDEX`` 对应 PWM 通道0 配置,``index`` 有如下可选类型
|
``index`` 用来选择 PWM 设备某个通道的配置,一个 index 对应一个 PWM 设备的一个通道配置,比如 ``PWM_CH0_INDEX`` 对应 PWM 通道0 配置,``index`` 有如下可选类型
|
||||||
|
|
||||||
|
|
|
@ -137,11 +137,10 @@ SPI 设备接口全部遵循标准设备驱动管理层提供的接口。
|
||||||
|
|
||||||
.. code-block:: C
|
.. code-block:: C
|
||||||
|
|
||||||
int spi_register(enum spi_index_type index, const char *name, uint16_t flag);
|
int spi_register(enum spi_index_type index, const char *name);
|
||||||
|
|
||||||
- index 要注册的设备索引
|
- index 要注册的设备索引
|
||||||
- name 为注册的设备命名
|
- name 为注册的设备命名
|
||||||
- flag 默认可读可写属性
|
|
||||||
|
|
||||||
``index`` 用来选择 SPI 设备配置,一个 index 对应一个 SPI 设备配置,比如 ``SPI0_INDEX`` 对应 ``SPI0_CONFIG`` 配置,``index`` 有如下可选类型
|
``index`` 用来选择 SPI 设备配置,一个 index 对应一个 SPI 设备配置,比如 ``SPI0_INDEX`` 对应 ``SPI0_CONFIG`` 配置,``index`` 有如下可选类型
|
||||||
|
|
||||||
|
|
|
@ -124,11 +124,10 @@ TIMER 设备接口全部遵循标准设备驱动管理层提供的接口。
|
||||||
|
|
||||||
.. code-block:: C
|
.. code-block:: C
|
||||||
|
|
||||||
int timer_register(enum timer_index_type index, const char *name, uint16_t flag);
|
int timer_register(enum timer_index_type index, const char *name);
|
||||||
|
|
||||||
- index 要注册的设备索引
|
- index 要注册的设备索引
|
||||||
- name 为注册的设备命名
|
- name 为注册的设备命名
|
||||||
- flag 默认可读可写属性
|
|
||||||
|
|
||||||
``index`` 用来选择 TIMER 设备配置,一个 index 对应一个 TIMER 设备配置,比如 ``TIMER_CH0_INDEX`` 对应 ``TIMER_CH0_CONFIG`` 配置,``index`` 有如下可选类型
|
``index`` 用来选择 TIMER 设备配置,一个 index 对应一个 TIMER 设备配置,比如 ``TIMER_CH0_INDEX`` 对应 ``TIMER_CH0_CONFIG`` 配置,``index`` 有如下可选类型
|
||||||
|
|
||||||
|
|
|
@ -125,11 +125,10 @@ UART 设备接口全部遵循标准设备驱动管理层提供的接口。
|
||||||
|
|
||||||
.. code-block:: C
|
.. code-block:: C
|
||||||
|
|
||||||
int uart_register(enum uart_index_type index, const char *name, uint16_t flag);
|
int uart_register(enum uart_index_type index, const char *name);
|
||||||
|
|
||||||
- index 要注册的设备索引
|
- index 要注册的设备索引
|
||||||
- name 为注册的设备命名
|
- name 为注册的设备命名
|
||||||
- flag 默认可读可写属性
|
|
||||||
|
|
||||||
``index`` 用来选择 UART 设备配置,一个 index 对应一个 UART 设备配置,比如 ``UART0_INDEX`` 对应 ``UART0_CONFIG`` 配置,``index`` 有如下可选类型
|
``index`` 用来选择 UART 设备配置,一个 index 对应一个 UART 设备配置,比如 ``UART0_INDEX`` 对应 ``UART0_CONFIG`` 配置,``index`` 有如下可选类型
|
||||||
|
|
||||||
|
|
|
@ -81,11 +81,10 @@ USB 设备接口遵循标准设备驱动管理层提供的接口。
|
||||||
|
|
||||||
.. code-block:: C
|
.. code-block:: C
|
||||||
|
|
||||||
int usb_dc_register(enum usb_index_type index, const char *name, uint16_t flag);
|
int usb_dc_register(enum usb_index_type index, const char *name);
|
||||||
|
|
||||||
- index 要注册的设备索引
|
- index 要注册的设备索引
|
||||||
- name 为注册的设备命名
|
- name 为注册的设备命名
|
||||||
- flag 默认可读可写属性
|
|
||||||
- return 错误码,0表示成功,其他表示失败
|
- return 错误码,0表示成功,其他表示失败
|
||||||
|
|
||||||
**device_open**
|
**device_open**
|
||||||
|
|
|
@ -42,7 +42,7 @@ USB DEVICE 控制器接口
|
||||||
|
|
||||||
struct device *usb_dc_init(void)
|
struct device *usb_dc_init(void)
|
||||||
{
|
{
|
||||||
usb_dc_register(USB_INDEX, "usb", DEVICE_OFLAG_RDWR);
|
usb_dc_register(USB_INDEX, "usb");
|
||||||
usb = device_find("usb");
|
usb = device_find("usb");
|
||||||
device_set_callback(usb, usb_dc_event_callback);
|
device_set_callback(usb, usb_dc_event_callback);
|
||||||
device_open(usb, 0);
|
device_open(usb, 0);
|
||||||
|
|
|
@ -77,7 +77,7 @@ shell 移植到串口
|
||||||
.. code-block:: C
|
.. code-block:: C
|
||||||
:linenos:
|
:linenos:
|
||||||
|
|
||||||
uart_register(board_get_debug_uart_index(), "debug_log", DEVICE_OFLAG_RDWR);
|
uart_register(board_get_debug_uart_index(), "debug_log");
|
||||||
struct device *uart = device_find("debug_log");
|
struct device *uart = device_find("debug_log");
|
||||||
|
|
||||||
if (uart)
|
if (uart)
|
||||||
|
|
|
@ -38,7 +38,7 @@ DMA - RAM间数据搬运
|
||||||
.. code-block:: C
|
.. code-block:: C
|
||||||
:linenos:
|
:linenos:
|
||||||
|
|
||||||
dma_register(DMA0_CH0_INDEX, "DMA", DEVICE_OFLAG_RDWR);
|
dma_register(DMA0_CH0_INDEX, "DMA");
|
||||||
|
|
||||||
struct device *dma = device_find("DMA");
|
struct device *dma = device_find("DMA");
|
||||||
|
|
||||||
|
|
|
@ -33,7 +33,7 @@ I2C - AT24CXX 读写
|
||||||
#define CONFIG_GPIO11_FUNC GPIO_FUN_I2C
|
#define CONFIG_GPIO11_FUNC GPIO_FUN_I2C
|
||||||
#define CONFIG_GPIO16_FUNC GPIO_FUN_I2C
|
#define CONFIG_GPIO16_FUNC GPIO_FUN_I2C
|
||||||
|
|
||||||
- 配置 ``I2C`` 设备复用引脚,见 ``bsp/board/bl706_iot/peripheral_config.h``
|
- 配置 ``I2C`` 设备复用引脚,见 ``bsp/board/bl706_iot/pinmux_config.h``
|
||||||
|
|
||||||
.. code-block:: C
|
.. code-block:: C
|
||||||
:linenos:
|
:linenos:
|
||||||
|
@ -56,7 +56,7 @@ I2C - AT24CXX 读写
|
||||||
.. code-block:: C
|
.. code-block:: C
|
||||||
:linenos:
|
:linenos:
|
||||||
|
|
||||||
i2c_register(I2C0_INDEX, "i2c", DEVICE_OFLAG_RDWR);
|
i2c_register(I2C0_INDEX, "i2c");
|
||||||
struct device *i2c0 = device_find("i2c");
|
struct device *i2c0 = device_find("i2c");
|
||||||
|
|
||||||
if (i2c0)
|
if (i2c0)
|
||||||
|
|
|
@ -59,7 +59,7 @@ PWM - 呼吸灯
|
||||||
.. code-block:: C
|
.. code-block:: C
|
||||||
:linenos:
|
:linenos:
|
||||||
|
|
||||||
pwm_register(PWM_CH2_INDEX, "led_breath", DEVICE_OFLAG_RDWR);
|
pwm_register(PWM_CH2_INDEX, "led_breath");
|
||||||
|
|
||||||
struct device *led_breath = device_find("led_breath");
|
struct device *led_breath = device_find("led_breath");
|
||||||
|
|
||||||
|
|
|
@ -151,10 +151,10 @@ PWM - 驱动步进电机
|
||||||
.. code-block:: C
|
.. code-block:: C
|
||||||
:linenos:
|
:linenos:
|
||||||
|
|
||||||
pwm_register(PWM_CH0_INDEX, "motor_ch0", DEVICE_OFLAG_RDWR);
|
pwm_register(PWM_CH0_INDEX, "motor_ch0");
|
||||||
pwm_register(PWM_CH1_INDEX, "motor_ch1", DEVICE_OFLAG_RDWR);
|
pwm_register(PWM_CH1_INDEX, "motor_ch1");
|
||||||
pwm_register(PWM_CH2_INDEX, "motor_ch2", DEVICE_OFLAG_RDWR);
|
pwm_register(PWM_CH2_INDEX, "motor_ch2");
|
||||||
pwm_register(PWM_CH3_INDEX, "motor_ch3", DEVICE_OFLAG_RDWR);
|
pwm_register(PWM_CH3_INDEX, "motor_ch3");
|
||||||
|
|
||||||
motor_ch0 = device_find("motor_ch0");
|
motor_ch0 = device_find("motor_ch0");
|
||||||
motor_ch1 = device_find("motor_ch1");
|
motor_ch1 = device_find("motor_ch1");
|
||||||
|
|
|
@ -80,7 +80,7 @@ SPI - TFT LCD 显示
|
||||||
device_close(spi0);
|
device_close(spi0);
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
spi_register(SPI0_INDEX,"spi0",DEVICE_OFLAG_RDWR);
|
spi_register(SPI0_INDEX,"spi0");
|
||||||
spi0 = device_find("spi0");
|
spi0 = device_find("spi0");
|
||||||
}
|
}
|
||||||
if(spi0)
|
if(spi0)
|
||||||
|
|
|
@ -67,7 +67,7 @@ UART - 数据自收发
|
||||||
.. code-block:: C
|
.. code-block:: C
|
||||||
:linenos:
|
:linenos:
|
||||||
|
|
||||||
uart_register(board_get_debug_uart_index(), "debug_log", DEVICE_OFLAG_RDWR);
|
uart_register(board_get_debug_uart_index(), "debug_log");
|
||||||
struct device *uart = device_find("debug_log");
|
struct device *uart = device_find("debug_log");
|
||||||
|
|
||||||
if (uart)
|
if (uart)
|
||||||
|
|
|
@ -303,22 +303,15 @@
|
||||||
<h2><span class="section-number">1.3. </span>设备驱动管理层标准接口<a class="headerlink" href="#id3" title="永久链接至标题">¶</a></h2>
|
<h2><span class="section-number">1.3. </span>设备驱动管理层标准接口<a class="headerlink" href="#id3" title="永久链接至标题">¶</a></h2>
|
||||||
<div class="section" id="device-register">
|
<div class="section" id="device-register">
|
||||||
<h3><span class="section-number">1.3.1. </span><strong>device_register</strong><a class="headerlink" href="#device-register" title="永久链接至标题">¶</a></h3>
|
<h3><span class="section-number">1.3.1. </span><strong>device_register</strong><a class="headerlink" href="#device-register" title="永久链接至标题">¶</a></h3>
|
||||||
<p><code class="docutils literal notranslate"><span class="pre">device_register</span></code> 用于设备的注册,将设备信息注册到链表当中。</p>
|
<p><code class="docutils literal notranslate"><span class="pre">device_register</span></code> 用于设备标准驱动的注册,并将设备信息注册到链表当中。</p>
|
||||||
<div class="highlight-C notranslate"><div class="highlight"><pre><span></span><span class="kt">int</span> <span class="nf">device_register</span><span class="p">(</span><span class="k">struct</span> <span class="nc">device</span> <span class="o">*</span><span class="n">dev</span><span class="p">,</span> <span class="k">const</span> <span class="kt">char</span> <span class="o">*</span><span class="n">name</span><span class="p">,</span> <span class="kt">uint16_t</span> <span class="n">flag</span><span class="p">);</span>
|
<div class="highlight-C notranslate"><div class="highlight"><pre><span></span><span class="kt">int</span> <span class="nf">device_register</span><span class="p">(</span><span class="k">struct</span> <span class="nc">device</span> <span class="o">*</span><span class="n">dev</span><span class="p">,</span> <span class="k">const</span> <span class="kt">char</span> <span class="o">*</span><span class="n">name</span><span class="p">);</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
</div>
|
</div>
|
||||||
<ul class="simple">
|
<ul class="simple">
|
||||||
<li><p>dev 设备句柄。</p></li>
|
<li><p>dev 设备句柄。</p></li>
|
||||||
<li><p>name 设备名称。</p></li>
|
<li><p>name 设备名称。</p></li>
|
||||||
<li><p>flag 设备的读写属性</p></li>
|
|
||||||
<li><p>return 返回错误码,0 表示注册成功,其他表示错误。</p></li>
|
<li><p>return 返回错误码,0 表示注册成功,其他表示错误。</p></li>
|
||||||
</ul>
|
</ul>
|
||||||
<p><code class="docutils literal notranslate"><span class="pre">flag</span></code> 可以写入以下参数,表示:<strong>只读</strong>、<strong>只写</strong>、<strong>可读可写</strong>。</p>
|
|
||||||
<div class="highlight-C notranslate"><div class="highlight"><pre><span></span><span class="cp">#define DEVICE_OFLAG_RDONLY 0x1000 </span><span class="cm">/* 以只读方式打开设备 */</span><span class="cp"></span>
|
|
||||||
<span class="cp">#define DEVICE_OFLAG_WRONLY 0x2000 </span><span class="cm">/* 以只写方式打开设备 */</span><span class="cp"></span>
|
|
||||||
<span class="cp">#define DEVICE_OFLAG_RDWR 0x3000 </span><span class="cm">/* 以读写方式打开设备 */</span><span class="cp"></span>
|
|
||||||
</pre></div>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="section" id="device-unregister">
|
<div class="section" id="device-unregister">
|
||||||
<h3><span class="section-number">1.3.2. </span><strong>device_unregister</strong><a class="headerlink" href="#device-unregister" title="永久链接至标题">¶</a></h3>
|
<h3><span class="section-number">1.3.2. </span><strong>device_unregister</strong><a class="headerlink" href="#device-unregister" title="永久链接至标题">¶</a></h3>
|
||||||
|
|
|
@ -116,7 +116,7 @@
|
||||||
<li class="toctree-l3"><a class="reference internal" href="#id2">3.9.2. ADC 设备结构体定义</a></li>
|
<li class="toctree-l3"><a class="reference internal" href="#id2">3.9.2. ADC 设备结构体定义</a></li>
|
||||||
<li class="toctree-l3"><a class="reference internal" href="#id3">3.9.3. ADC 设备参数配置表</a></li>
|
<li class="toctree-l3"><a class="reference internal" href="#id3">3.9.3. ADC 设备参数配置表</a></li>
|
||||||
<li class="toctree-l3"><a class="reference internal" href="#id4">3.9.4. ADC 设备接口</a><ul>
|
<li class="toctree-l3"><a class="reference internal" href="#id4">3.9.4. ADC 设备接口</a><ul>
|
||||||
<li class="toctree-l4"><a class="reference internal" href="#adc-register">3.9.4.1. <strong>ADC_register</strong></a></li>
|
<li class="toctree-l4"><a class="reference internal" href="#adc-register">3.9.4.1. <strong>adc_register</strong></a></li>
|
||||||
<li class="toctree-l4"><a class="reference internal" href="#device-open">3.9.4.2. <strong>device_open</strong></a></li>
|
<li class="toctree-l4"><a class="reference internal" href="#device-open">3.9.4.2. <strong>device_open</strong></a></li>
|
||||||
<li class="toctree-l4"><a class="reference internal" href="#device-close">3.9.4.3. <strong>device_close</strong></a></li>
|
<li class="toctree-l4"><a class="reference internal" href="#device-close">3.9.4.3. <strong>device_close</strong></a></li>
|
||||||
<li class="toctree-l4"><a class="reference internal" href="#device-control">3.9.4.4. <strong>device_control</strong></a></li>
|
<li class="toctree-l4"><a class="reference internal" href="#device-control">3.9.4.4. <strong>device_control</strong></a></li>
|
||||||
|
@ -304,14 +304,13 @@
|
||||||
<h2><span class="section-number">3.9.4. </span>ADC 设备接口<a class="headerlink" href="#id4" title="永久链接至标题">¶</a></h2>
|
<h2><span class="section-number">3.9.4. </span>ADC 设备接口<a class="headerlink" href="#id4" title="永久链接至标题">¶</a></h2>
|
||||||
<p>ADC 设备接口全部遵循标准设备驱动管理层提供的接口。</p>
|
<p>ADC 设备接口全部遵循标准设备驱动管理层提供的接口。</p>
|
||||||
<div class="section" id="adc-register">
|
<div class="section" id="adc-register">
|
||||||
<h3><span class="section-number">3.9.4.1. </span><strong>ADC_register</strong><a class="headerlink" href="#adc-register" title="永久链接至标题">¶</a></h3>
|
<h3><span class="section-number">3.9.4.1. </span><strong>adc_register</strong><a class="headerlink" href="#adc-register" title="永久链接至标题">¶</a></h3>
|
||||||
<p><code class="docutils literal notranslate"><span class="pre">adc_register</span></code> 用来注册 ADC 设备标准驱动接口,在注册之前需要打开对应 ADC 设备的宏定义。例如定义宏 <code class="docutils literal notranslate"><span class="pre">BSP_USING_ADC0</span></code> 方可使用 <code class="docutils literal notranslate"><span class="pre">ADC0</span></code> 设备,注册完成以后才可以使用其他接口,如果没有定义宏,则无法使用 <code class="docutils literal notranslate"><span class="pre">ADC0</span></code> 设备。</p>
|
<p><code class="docutils literal notranslate"><span class="pre">adc_register</span></code> 用来注册 ADC 设备标准驱动接口,在注册之前需要打开对应 ADC 设备的宏定义。例如定义宏 <code class="docutils literal notranslate"><span class="pre">BSP_USING_ADC0</span></code> 方可使用 <code class="docutils literal notranslate"><span class="pre">ADC0</span></code> 设备,注册完成以后才可以使用其他接口,如果没有定义宏,则无法使用 <code class="docutils literal notranslate"><span class="pre">ADC0</span></code> 设备。</p>
|
||||||
<div class="highlight-C notranslate"><div class="highlight"><pre><span></span><span class="kt">int</span> <span class="nf">ADC_register</span><span class="p">(</span><span class="k">enum</span> <span class="n">ADC_index_type</span> <span class="n">index</span><span class="p">,</span> <span class="k">const</span> <span class="kt">char</span> <span class="o">*</span><span class="n">name</span><span class="p">,</span> <span class="kt">uint16_t</span> <span class="n">flag</span><span class="p">);</span>
|
<div class="highlight-C notranslate"><div class="highlight"><pre><span></span><span class="kt">int</span> <span class="nf">adc_register</span><span class="p">(</span><span class="k">enum</span> <span class="n">ADC_index_type</span> <span class="n">index</span><span class="p">,</span> <span class="k">const</span> <span class="kt">char</span> <span class="o">*</span><span class="n">name</span><span class="p">);</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
</div>
|
</div>
|
||||||
<ul class="simple">
|
<ul class="simple">
|
||||||
<li><p>index 要注册的设备索引</p></li>
|
<li><p>index 要注册的设备索引</p></li>
|
||||||
<li><p>name 为注册的设备命名</p></li>
|
|
||||||
<li><p>flag 默认可读可写属性</p></li>
|
<li><p>flag 默认可读可写属性</p></li>
|
||||||
</ul>
|
</ul>
|
||||||
<p><code class="docutils literal notranslate"><span class="pre">index</span></code> 用来选择 ADC 设备配置,一个 index 对应一个 ADC 设备配置,比如 <code class="docutils literal notranslate"><span class="pre">ADC0_INDEX</span></code> 对应 <code class="docutils literal notranslate"><span class="pre">ADC0_CONFIG</span></code> 配置,<code class="docutils literal notranslate"><span class="pre">index</span></code> 有如下可选类型</p>
|
<p><code class="docutils literal notranslate"><span class="pre">index</span></code> 用来选择 ADC 设备配置,一个 index 对应一个 ADC 设备配置,比如 <code class="docutils literal notranslate"><span class="pre">ADC0_INDEX</span></code> 对应 <code class="docutils literal notranslate"><span class="pre">ADC0_CONFIG</span></code> 配置,<code class="docutils literal notranslate"><span class="pre">index</span></code> 有如下可选类型</p>
|
||||||
|
|
|
@ -424,13 +424,12 @@
|
||||||
<div class="section" id="dma-register">
|
<div class="section" id="dma-register">
|
||||||
<h3><span class="section-number">3.5.4.1. </span><strong>dma_register</strong><a class="headerlink" href="#dma-register" title="永久链接至标题">¶</a></h3>
|
<h3><span class="section-number">3.5.4.1. </span><strong>dma_register</strong><a class="headerlink" href="#dma-register" title="永久链接至标题">¶</a></h3>
|
||||||
<p><code class="docutils literal notranslate"><span class="pre">dma_register</span></code> 用来注册 DMA 设备标准驱动接口,在注册之前需要打开对应 DMA 设备的通道宏定义。例如定义宏 <code class="docutils literal notranslate"><span class="pre">BSP_USING_DMA_CH0</span></code> 方可使用 <code class="docutils literal notranslate"><span class="pre">DMA</span></code> 设备的 0 通道,注册完成以后才可以使用其他接口,如果没有定义宏,则无法使用 <code class="docutils literal notranslate"><span class="pre">DMA</span></code> 设备的 0 通道。</p>
|
<p><code class="docutils literal notranslate"><span class="pre">dma_register</span></code> 用来注册 DMA 设备标准驱动接口,在注册之前需要打开对应 DMA 设备的通道宏定义。例如定义宏 <code class="docutils literal notranslate"><span class="pre">BSP_USING_DMA_CH0</span></code> 方可使用 <code class="docutils literal notranslate"><span class="pre">DMA</span></code> 设备的 0 通道,注册完成以后才可以使用其他接口,如果没有定义宏,则无法使用 <code class="docutils literal notranslate"><span class="pre">DMA</span></code> 设备的 0 通道。</p>
|
||||||
<div class="highlight-C notranslate"><div class="highlight"><pre><span></span><span class="kt">int</span> <span class="nf">dma_register</span><span class="p">(</span><span class="k">enum</span> <span class="n">dma_index_type</span> <span class="n">index</span><span class="p">,</span> <span class="k">const</span> <span class="kt">char</span> <span class="o">*</span><span class="n">name</span><span class="p">,</span> <span class="kt">uint16_t</span> <span class="n">flag</span><span class="p">);</span>
|
<div class="highlight-C notranslate"><div class="highlight"><pre><span></span><span class="kt">int</span> <span class="nf">dma_register</span><span class="p">(</span><span class="k">enum</span> <span class="n">dma_index_type</span> <span class="n">index</span><span class="p">,</span> <span class="k">const</span> <span class="kt">char</span> <span class="o">*</span><span class="n">name</span><span class="p">);</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
</div>
|
</div>
|
||||||
<ul class="simple">
|
<ul class="simple">
|
||||||
<li><p>index 要注册的设备索引</p></li>
|
<li><p>index 要注册的设备索引</p></li>
|
||||||
<li><p>name 为注册的设备命名</p></li>
|
<li><p>name 为注册的设备命名</p></li>
|
||||||
<li><p>flag 默认可读可写属性</p></li>
|
|
||||||
</ul>
|
</ul>
|
||||||
<p><code class="docutils literal notranslate"><span class="pre">index</span></code> 用来选择 DMA 设备某个通道的配置,一个 index 对应一个 DMA 设备的一个通道配置,比如 <code class="docutils literal notranslate"><span class="pre">DMA_CH0_INDEX</span></code> 对应 DMA 通道0 配置,<code class="docutils literal notranslate"><span class="pre">index</span></code> 有如下可选类型</p>
|
<p><code class="docutils literal notranslate"><span class="pre">index</span></code> 用来选择 DMA 设备某个通道的配置,一个 index 对应一个 DMA 设备的一个通道配置,比如 <code class="docutils literal notranslate"><span class="pre">DMA_CH0_INDEX</span></code> 对应 DMA 通道0 配置,<code class="docutils literal notranslate"><span class="pre">index</span></code> 有如下可选类型</p>
|
||||||
<div class="highlight-C notranslate"><div class="highlight"><pre><span></span><span class="k">enum</span> <span class="n">dma_index_type</span>
|
<div class="highlight-C notranslate"><div class="highlight"><pre><span></span><span class="k">enum</span> <span class="n">dma_index_type</span>
|
||||||
|
|
|
@ -289,13 +289,12 @@
|
||||||
<div class="section" id="i2c-register">
|
<div class="section" id="i2c-register">
|
||||||
<h3><span class="section-number">3.6.4.1. </span><strong>i2c_register</strong><a class="headerlink" href="#i2c-register" title="永久链接至标题">¶</a></h3>
|
<h3><span class="section-number">3.6.4.1. </span><strong>i2c_register</strong><a class="headerlink" href="#i2c-register" title="永久链接至标题">¶</a></h3>
|
||||||
<p><code class="docutils literal notranslate"><span class="pre">i2c_register</span></code> 用来注册 I2C 设备标准驱动接口,在注册之前需要打开对应 I2C 设备的宏定义。例如定义宏 <code class="docutils literal notranslate"><span class="pre">BSP_USING_I2C0</span></code> 方可使用 <code class="docutils literal notranslate"><span class="pre">I2C0</span></code> 设备,注册完成以后才可以使用其他接口,如果没有定义宏,则无法使用 <code class="docutils literal notranslate"><span class="pre">I2C0</span></code> 设备。</p>
|
<p><code class="docutils literal notranslate"><span class="pre">i2c_register</span></code> 用来注册 I2C 设备标准驱动接口,在注册之前需要打开对应 I2C 设备的宏定义。例如定义宏 <code class="docutils literal notranslate"><span class="pre">BSP_USING_I2C0</span></code> 方可使用 <code class="docutils literal notranslate"><span class="pre">I2C0</span></code> 设备,注册完成以后才可以使用其他接口,如果没有定义宏,则无法使用 <code class="docutils literal notranslate"><span class="pre">I2C0</span></code> 设备。</p>
|
||||||
<div class="highlight-C notranslate"><div class="highlight"><pre><span></span><span class="kt">int</span> <span class="nf">i2c_register</span><span class="p">(</span><span class="k">enum</span> <span class="n">i2c_index_type</span> <span class="n">index</span><span class="p">,</span> <span class="k">const</span> <span class="kt">char</span> <span class="o">*</span><span class="n">name</span><span class="p">,</span> <span class="kt">uint16_t</span> <span class="n">flag</span><span class="p">);</span>
|
<div class="highlight-C notranslate"><div class="highlight"><pre><span></span><span class="kt">int</span> <span class="nf">i2c_register</span><span class="p">(</span><span class="k">enum</span> <span class="n">i2c_index_type</span> <span class="n">index</span><span class="p">,</span> <span class="k">const</span> <span class="kt">char</span> <span class="o">*</span><span class="n">name</span><span class="p">);</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
</div>
|
</div>
|
||||||
<ul class="simple">
|
<ul class="simple">
|
||||||
<li><p>index 要注册的设备索引</p></li>
|
<li><p>index 要注册的设备索引</p></li>
|
||||||
<li><p>name 为注册的设备命名</p></li>
|
<li><p>name 为注册的设备命名</p></li>
|
||||||
<li><p>flag 默认可读可写属性</p></li>
|
|
||||||
</ul>
|
</ul>
|
||||||
<p><code class="docutils literal notranslate"><span class="pre">index</span></code> 用来选择 I2C 设备,一个 index 对应一个 I2C 设备配置,比如 <code class="docutils literal notranslate"><span class="pre">I2C0_INDEX</span></code> 对应 <code class="docutils literal notranslate"><span class="pre">I2C0_CONFIG</span></code> 配置,<code class="docutils literal notranslate"><span class="pre">index</span></code> 有如下可选类型</p>
|
<p><code class="docutils literal notranslate"><span class="pre">index</span></code> 用来选择 I2C 设备,一个 index 对应一个 I2C 设备配置,比如 <code class="docutils literal notranslate"><span class="pre">I2C0_INDEX</span></code> 对应 <code class="docutils literal notranslate"><span class="pre">I2C0_CONFIG</span></code> 配置,<code class="docutils literal notranslate"><span class="pre">index</span></code> 有如下可选类型</p>
|
||||||
<div class="highlight-C notranslate"><div class="highlight"><pre><span></span><span class="k">enum</span> <span class="n">i2c_index_type</span>
|
<div class="highlight-C notranslate"><div class="highlight"><pre><span></span><span class="k">enum</span> <span class="n">i2c_index_type</span>
|
||||||
|
|
|
@ -354,13 +354,12 @@
|
||||||
<div class="section" id="i2s-register">
|
<div class="section" id="i2s-register">
|
||||||
<h3><span class="section-number">3.7.4.1. </span><strong>i2s_register</strong><a class="headerlink" href="#i2s-register" title="永久链接至标题">¶</a></h3>
|
<h3><span class="section-number">3.7.4.1. </span><strong>i2s_register</strong><a class="headerlink" href="#i2s-register" title="永久链接至标题">¶</a></h3>
|
||||||
<p><code class="docutils literal notranslate"><span class="pre">i2s_register</span></code> 用来注册 I2S 标准驱动接口,在注册之前需要打开对应 I2S 设备的宏定义,例如定义宏 <code class="docutils literal notranslate"><span class="pre">BSP_USING_I2S0</span></code> 方可使用 I2S0 设备。注册完成以后才可以使用其他接口,如果没有定义宏,则无法使用 I2S 设备。</p>
|
<p><code class="docutils literal notranslate"><span class="pre">i2s_register</span></code> 用来注册 I2S 标准驱动接口,在注册之前需要打开对应 I2S 设备的宏定义,例如定义宏 <code class="docutils literal notranslate"><span class="pre">BSP_USING_I2S0</span></code> 方可使用 I2S0 设备。注册完成以后才可以使用其他接口,如果没有定义宏,则无法使用 I2S 设备。</p>
|
||||||
<div class="highlight-C notranslate"><div class="highlight"><pre><span></span><span class="kt">int</span> <span class="nf">i2s_register</span><span class="p">(</span><span class="k">enum</span> <span class="n">i2s_index_type</span> <span class="n">index</span><span class="p">,</span> <span class="k">const</span> <span class="kt">char</span> <span class="o">*</span><span class="n">name</span><span class="p">,</span> <span class="kt">uint16_t</span> <span class="n">flag</span><span class="p">);</span>
|
<div class="highlight-C notranslate"><div class="highlight"><pre><span></span><span class="kt">int</span> <span class="nf">i2s_register</span><span class="p">(</span><span class="k">enum</span> <span class="n">i2s_index_type</span> <span class="n">index</span><span class="p">,</span> <span class="k">const</span> <span class="kt">char</span> <span class="o">*</span><span class="n">name</span><span class="p">);</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
</div>
|
</div>
|
||||||
<ul class="simple">
|
<ul class="simple">
|
||||||
<li><p>index 要注册的设备索引</p></li>
|
<li><p>index 要注册的设备索引</p></li>
|
||||||
<li><p>name 为注册的设备命名</p></li>
|
<li><p>name 为注册的设备命名</p></li>
|
||||||
<li><p>flag 默认可读可写属性</p></li>
|
|
||||||
</ul>
|
</ul>
|
||||||
<p><code class="docutils literal notranslate"><span class="pre">index</span></code> 用来选择 I2S 设备配置,一个 index 对应一个 I2S 设备配置,比如 <code class="docutils literal notranslate"><span class="pre">I2S0_INDEX</span></code> 对应 <code class="docutils literal notranslate"><span class="pre">I2S0_CONFIG</span></code> 配置。index 有如下可选类型</p>
|
<p><code class="docutils literal notranslate"><span class="pre">index</span></code> 用来选择 I2S 设备配置,一个 index 对应一个 I2S 设备配置,比如 <code class="docutils literal notranslate"><span class="pre">I2S0_INDEX</span></code> 对应 <code class="docutils literal notranslate"><span class="pre">I2S0_CONFIG</span></code> 配置。index 有如下可选类型</p>
|
||||||
<div class="highlight-C notranslate"><div class="highlight"><pre><span></span><span class="k">enum</span> <span class="n">i2s_index_type</span> <span class="p">{</span>
|
<div class="highlight-C notranslate"><div class="highlight"><pre><span></span><span class="k">enum</span> <span class="n">i2s_index_type</span> <span class="p">{</span>
|
||||||
|
|
|
@ -321,13 +321,12 @@
|
||||||
<div class="section" id="pwm-register">
|
<div class="section" id="pwm-register">
|
||||||
<h3><span class="section-number">3.4.4.1. </span><strong>pwm_register</strong><a class="headerlink" href="#pwm-register" title="永久链接至标题">¶</a></h3>
|
<h3><span class="section-number">3.4.4.1. </span><strong>pwm_register</strong><a class="headerlink" href="#pwm-register" title="永久链接至标题">¶</a></h3>
|
||||||
<p><code class="docutils literal notranslate"><span class="pre">pwm_register</span></code> 用来注册 PWM 设备的一个通道的标准驱动接口,在注册之前需要打开对应 PWM 设备某个通道的宏定义,例如定义 <code class="docutils literal notranslate"><span class="pre">BSP_USING_PWM_CH0</span></code> 方可使用 <code class="docutils literal notranslate"><span class="pre">PWM</span></code> 通道0 设备。注册完成以后才可以使用其他接口,如果没有定义宏,则无法使用 PWM 设备。</p>
|
<p><code class="docutils literal notranslate"><span class="pre">pwm_register</span></code> 用来注册 PWM 设备的一个通道的标准驱动接口,在注册之前需要打开对应 PWM 设备某个通道的宏定义,例如定义 <code class="docutils literal notranslate"><span class="pre">BSP_USING_PWM_CH0</span></code> 方可使用 <code class="docutils literal notranslate"><span class="pre">PWM</span></code> 通道0 设备。注册完成以后才可以使用其他接口,如果没有定义宏,则无法使用 PWM 设备。</p>
|
||||||
<div class="highlight-C notranslate"><div class="highlight"><pre><span></span><span class="kt">int</span> <span class="nf">pwm_register</span><span class="p">(</span><span class="k">enum</span> <span class="n">pwm_index_type</span> <span class="n">index</span><span class="p">,</span> <span class="k">const</span> <span class="kt">char</span> <span class="o">*</span><span class="n">name</span><span class="p">,</span> <span class="kt">uint16_t</span> <span class="n">flag</span><span class="p">);</span>
|
<div class="highlight-C notranslate"><div class="highlight"><pre><span></span><span class="kt">int</span> <span class="nf">pwm_register</span><span class="p">(</span><span class="k">enum</span> <span class="n">pwm_index_type</span> <span class="n">index</span><span class="p">,</span> <span class="k">const</span> <span class="kt">char</span> <span class="o">*</span><span class="n">name</span><span class="p">);</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
</div>
|
</div>
|
||||||
<ul class="simple">
|
<ul class="simple">
|
||||||
<li><p>index 要注册的设备索引</p></li>
|
<li><p>index 要注册的设备索引</p></li>
|
||||||
<li><p>name 为注册的设备命名</p></li>
|
<li><p>name 为注册的设备命名</p></li>
|
||||||
<li><p>flag 默认可读可写属性</p></li>
|
|
||||||
</ul>
|
</ul>
|
||||||
<p><code class="docutils literal notranslate"><span class="pre">index</span></code> 用来选择 PWM 设备某个通道的配置,一个 index 对应一个 PWM 设备的一个通道配置,比如 <code class="docutils literal notranslate"><span class="pre">PWM_CH0_INDEX</span></code> 对应 PWM 通道0 配置,<code class="docutils literal notranslate"><span class="pre">index</span></code> 有如下可选类型</p>
|
<p><code class="docutils literal notranslate"><span class="pre">index</span></code> 用来选择 PWM 设备某个通道的配置,一个 index 对应一个 PWM 设备的一个通道配置,比如 <code class="docutils literal notranslate"><span class="pre">PWM_CH0_INDEX</span></code> 对应 PWM 通道0 配置,<code class="docutils literal notranslate"><span class="pre">index</span></code> 有如下可选类型</p>
|
||||||
<div class="highlight-C notranslate"><div class="highlight"><pre><span></span><span class="k">enum</span> <span class="n">pwm_index_type</span>
|
<div class="highlight-C notranslate"><div class="highlight"><pre><span></span><span class="k">enum</span> <span class="n">pwm_index_type</span>
|
||||||
|
|
|
@ -348,13 +348,12 @@ SDI(数据输入)、SDO(数据输出)、SCLK(时钟)、CS(片选
|
||||||
<div class="section" id="spi-register">
|
<div class="section" id="spi-register">
|
||||||
<h3><span class="section-number">3.8.4.1. </span><strong>spi_register</strong><a class="headerlink" href="#spi-register" title="永久链接至标题">¶</a></h3>
|
<h3><span class="section-number">3.8.4.1. </span><strong>spi_register</strong><a class="headerlink" href="#spi-register" title="永久链接至标题">¶</a></h3>
|
||||||
<p><code class="docutils literal notranslate"><span class="pre">spi_register</span></code> 用来注册 SPI 设备标准驱动接口,在注册之前需要打开对应 SPI 设备的宏定义,例如定义宏 <code class="docutils literal notranslate"><span class="pre">BSP_USING_SPI0</span></code> 方可使用 SPI0 设备。注册完成以后才可以使用其他接口,如果没有定义宏,则无法使用 SPI 设备。</p>
|
<p><code class="docutils literal notranslate"><span class="pre">spi_register</span></code> 用来注册 SPI 设备标准驱动接口,在注册之前需要打开对应 SPI 设备的宏定义,例如定义宏 <code class="docutils literal notranslate"><span class="pre">BSP_USING_SPI0</span></code> 方可使用 SPI0 设备。注册完成以后才可以使用其他接口,如果没有定义宏,则无法使用 SPI 设备。</p>
|
||||||
<div class="highlight-C notranslate"><div class="highlight"><pre><span></span><span class="kt">int</span> <span class="nf">spi_register</span><span class="p">(</span><span class="k">enum</span> <span class="n">spi_index_type</span> <span class="n">index</span><span class="p">,</span> <span class="k">const</span> <span class="kt">char</span> <span class="o">*</span><span class="n">name</span><span class="p">,</span> <span class="kt">uint16_t</span> <span class="n">flag</span><span class="p">);</span>
|
<div class="highlight-C notranslate"><div class="highlight"><pre><span></span><span class="kt">int</span> <span class="nf">spi_register</span><span class="p">(</span><span class="k">enum</span> <span class="n">spi_index_type</span> <span class="n">index</span><span class="p">,</span> <span class="k">const</span> <span class="kt">char</span> <span class="o">*</span><span class="n">name</span><span class="p">);</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
</div>
|
</div>
|
||||||
<ul class="simple">
|
<ul class="simple">
|
||||||
<li><p>index 要注册的设备索引</p></li>
|
<li><p>index 要注册的设备索引</p></li>
|
||||||
<li><p>name 为注册的设备命名</p></li>
|
<li><p>name 为注册的设备命名</p></li>
|
||||||
<li><p>flag 默认可读可写属性</p></li>
|
|
||||||
</ul>
|
</ul>
|
||||||
<p><code class="docutils literal notranslate"><span class="pre">index</span></code> 用来选择 SPI 设备配置,一个 index 对应一个 SPI 设备配置,比如 <code class="docutils literal notranslate"><span class="pre">SPI0_INDEX</span></code> 对应 <code class="docutils literal notranslate"><span class="pre">SPI0_CONFIG</span></code> 配置,<code class="docutils literal notranslate"><span class="pre">index</span></code> 有如下可选类型</p>
|
<p><code class="docutils literal notranslate"><span class="pre">index</span></code> 用来选择 SPI 设备配置,一个 index 对应一个 SPI 设备配置,比如 <code class="docutils literal notranslate"><span class="pre">SPI0_INDEX</span></code> 对应 <code class="docutils literal notranslate"><span class="pre">SPI0_CONFIG</span></code> 配置,<code class="docutils literal notranslate"><span class="pre">index</span></code> 有如下可选类型</p>
|
||||||
<div class="highlight-C notranslate"><div class="highlight"><pre><span></span><span class="k">enum</span> <span class="n">spi_index_type</span>
|
<div class="highlight-C notranslate"><div class="highlight"><pre><span></span><span class="k">enum</span> <span class="n">spi_index_type</span>
|
||||||
|
|
|
@ -335,13 +335,12 @@
|
||||||
<div class="section" id="timer-register">
|
<div class="section" id="timer-register">
|
||||||
<h3><span class="section-number">3.11.4.1. </span><strong>timer_register</strong><a class="headerlink" href="#timer-register" title="永久链接至标题">¶</a></h3>
|
<h3><span class="section-number">3.11.4.1. </span><strong>timer_register</strong><a class="headerlink" href="#timer-register" title="永久链接至标题">¶</a></h3>
|
||||||
<p><code class="docutils literal notranslate"><span class="pre">timer_register</span></code> 用来注册 TIMER 设备标准驱动接口,在注册之前需要打开对应 TIMER 设备的宏定义。例如定义宏 <code class="docutils literal notranslate"><span class="pre">BSP_USING_TIMER_CH0</span></code> 方可使用 <code class="docutils literal notranslate"><span class="pre">TIMER_CH0_INDEX</span></code> 设备,注册完成以后才可以使用其他接口,如果没有定义宏,则无法使用 <code class="docutils literal notranslate"><span class="pre">TIMER_CH0_INDEX</span></code> 设备。</p>
|
<p><code class="docutils literal notranslate"><span class="pre">timer_register</span></code> 用来注册 TIMER 设备标准驱动接口,在注册之前需要打开对应 TIMER 设备的宏定义。例如定义宏 <code class="docutils literal notranslate"><span class="pre">BSP_USING_TIMER_CH0</span></code> 方可使用 <code class="docutils literal notranslate"><span class="pre">TIMER_CH0_INDEX</span></code> 设备,注册完成以后才可以使用其他接口,如果没有定义宏,则无法使用 <code class="docutils literal notranslate"><span class="pre">TIMER_CH0_INDEX</span></code> 设备。</p>
|
||||||
<div class="highlight-C notranslate"><div class="highlight"><pre><span></span><span class="kt">int</span> <span class="nf">timer_register</span><span class="p">(</span><span class="k">enum</span> <span class="n">timer_index_type</span> <span class="n">index</span><span class="p">,</span> <span class="k">const</span> <span class="kt">char</span> <span class="o">*</span><span class="n">name</span><span class="p">,</span> <span class="kt">uint16_t</span> <span class="n">flag</span><span class="p">);</span>
|
<div class="highlight-C notranslate"><div class="highlight"><pre><span></span><span class="kt">int</span> <span class="nf">timer_register</span><span class="p">(</span><span class="k">enum</span> <span class="n">timer_index_type</span> <span class="n">index</span><span class="p">,</span> <span class="k">const</span> <span class="kt">char</span> <span class="o">*</span><span class="n">name</span><span class="p">);</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
</div>
|
</div>
|
||||||
<ul class="simple">
|
<ul class="simple">
|
||||||
<li><p>index 要注册的设备索引</p></li>
|
<li><p>index 要注册的设备索引</p></li>
|
||||||
<li><p>name 为注册的设备命名</p></li>
|
<li><p>name 为注册的设备命名</p></li>
|
||||||
<li><p>flag 默认可读可写属性</p></li>
|
|
||||||
</ul>
|
</ul>
|
||||||
<p><code class="docutils literal notranslate"><span class="pre">index</span></code> 用来选择 TIMER 设备配置,一个 index 对应一个 TIMER 设备配置,比如 <code class="docutils literal notranslate"><span class="pre">TIMER_CH0_INDEX</span></code> 对应 <code class="docutils literal notranslate"><span class="pre">TIMER_CH0_CONFIG</span></code> 配置,<code class="docutils literal notranslate"><span class="pre">index</span></code> 有如下可选类型</p>
|
<p><code class="docutils literal notranslate"><span class="pre">index</span></code> 用来选择 TIMER 设备配置,一个 index 对应一个 TIMER 设备配置,比如 <code class="docutils literal notranslate"><span class="pre">TIMER_CH0_INDEX</span></code> 对应 <code class="docutils literal notranslate"><span class="pre">TIMER_CH0_CONFIG</span></code> 配置,<code class="docutils literal notranslate"><span class="pre">index</span></code> 有如下可选类型</p>
|
||||||
<div class="highlight-C notranslate"><div class="highlight"><pre><span></span><span class="k">enum</span> <span class="n">timer_index_type</span> <span class="p">{</span>
|
<div class="highlight-C notranslate"><div class="highlight"><pre><span></span><span class="k">enum</span> <span class="n">timer_index_type</span> <span class="p">{</span>
|
||||||
|
|
|
@ -339,13 +339,12 @@
|
||||||
<div class="section" id="uart-register">
|
<div class="section" id="uart-register">
|
||||||
<h3><span class="section-number">3.3.4.1. </span><strong>uart_register</strong><a class="headerlink" href="#uart-register" title="永久链接至标题">¶</a></h3>
|
<h3><span class="section-number">3.3.4.1. </span><strong>uart_register</strong><a class="headerlink" href="#uart-register" title="永久链接至标题">¶</a></h3>
|
||||||
<p><code class="docutils literal notranslate"><span class="pre">uart_register</span></code> 用来注册 UART 设备标准驱动接口,在注册之前需要打开对应 UART 设备的宏定义。例如定义宏 <code class="docutils literal notranslate"><span class="pre">BSP_USING_UART0</span></code> 方可使用 <code class="docutils literal notranslate"><span class="pre">UART0</span></code> 设备,注册完成以后才可以使用其他接口,如果没有定义宏,则无法使用 <code class="docutils literal notranslate"><span class="pre">UART0</span></code> 设备。</p>
|
<p><code class="docutils literal notranslate"><span class="pre">uart_register</span></code> 用来注册 UART 设备标准驱动接口,在注册之前需要打开对应 UART 设备的宏定义。例如定义宏 <code class="docutils literal notranslate"><span class="pre">BSP_USING_UART0</span></code> 方可使用 <code class="docutils literal notranslate"><span class="pre">UART0</span></code> 设备,注册完成以后才可以使用其他接口,如果没有定义宏,则无法使用 <code class="docutils literal notranslate"><span class="pre">UART0</span></code> 设备。</p>
|
||||||
<div class="highlight-C notranslate"><div class="highlight"><pre><span></span><span class="kt">int</span> <span class="nf">uart_register</span><span class="p">(</span><span class="k">enum</span> <span class="n">uart_index_type</span> <span class="n">index</span><span class="p">,</span> <span class="k">const</span> <span class="kt">char</span> <span class="o">*</span><span class="n">name</span><span class="p">,</span> <span class="kt">uint16_t</span> <span class="n">flag</span><span class="p">);</span>
|
<div class="highlight-C notranslate"><div class="highlight"><pre><span></span><span class="kt">int</span> <span class="nf">uart_register</span><span class="p">(</span><span class="k">enum</span> <span class="n">uart_index_type</span> <span class="n">index</span><span class="p">,</span> <span class="k">const</span> <span class="kt">char</span> <span class="o">*</span><span class="n">name</span><span class="p">);</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
</div>
|
</div>
|
||||||
<ul class="simple">
|
<ul class="simple">
|
||||||
<li><p>index 要注册的设备索引</p></li>
|
<li><p>index 要注册的设备索引</p></li>
|
||||||
<li><p>name 为注册的设备命名</p></li>
|
<li><p>name 为注册的设备命名</p></li>
|
||||||
<li><p>flag 默认可读可写属性</p></li>
|
|
||||||
</ul>
|
</ul>
|
||||||
<p><code class="docutils literal notranslate"><span class="pre">index</span></code> 用来选择 UART 设备配置,一个 index 对应一个 UART 设备配置,比如 <code class="docutils literal notranslate"><span class="pre">UART0_INDEX</span></code> 对应 <code class="docutils literal notranslate"><span class="pre">UART0_CONFIG</span></code> 配置,<code class="docutils literal notranslate"><span class="pre">index</span></code> 有如下可选类型</p>
|
<p><code class="docutils literal notranslate"><span class="pre">index</span></code> 用来选择 UART 设备配置,一个 index 对应一个 UART 设备配置,比如 <code class="docutils literal notranslate"><span class="pre">UART0_INDEX</span></code> 对应 <code class="docutils literal notranslate"><span class="pre">UART0_CONFIG</span></code> 配置,<code class="docutils literal notranslate"><span class="pre">index</span></code> 有如下可选类型</p>
|
||||||
<div class="highlight-C notranslate"><div class="highlight"><pre><span></span><span class="k">enum</span> <span class="n">uart_index_type</span>
|
<div class="highlight-C notranslate"><div class="highlight"><pre><span></span><span class="k">enum</span> <span class="n">uart_index_type</span>
|
||||||
|
|
|
@ -307,13 +307,12 @@
|
||||||
<div class="section" id="usb-dc-register">
|
<div class="section" id="usb-dc-register">
|
||||||
<h3><span class="section-number">3.12.3.1. </span><strong>usb_dc_register</strong><a class="headerlink" href="#usb-dc-register" title="永久链接至标题">¶</a></h3>
|
<h3><span class="section-number">3.12.3.1. </span><strong>usb_dc_register</strong><a class="headerlink" href="#usb-dc-register" title="永久链接至标题">¶</a></h3>
|
||||||
<p><code class="docutils literal notranslate"><span class="pre">usb_dc_register</span></code> 用来注册 USB 设备标准驱动接口,在注册之前需要打开对应 USB 设备的宏定义,例如定义宏 <code class="docutils literal notranslate"><span class="pre">BSP_USING_USB</span></code> 方可使用 USB 设备。注册完成以后才可以使用其他接口,如果没有定义宏,则无法使用 USB 设备。</p>
|
<p><code class="docutils literal notranslate"><span class="pre">usb_dc_register</span></code> 用来注册 USB 设备标准驱动接口,在注册之前需要打开对应 USB 设备的宏定义,例如定义宏 <code class="docutils literal notranslate"><span class="pre">BSP_USING_USB</span></code> 方可使用 USB 设备。注册完成以后才可以使用其他接口,如果没有定义宏,则无法使用 USB 设备。</p>
|
||||||
<div class="highlight-C notranslate"><div class="highlight"><pre><span></span><span class="kt">int</span> <span class="nf">usb_dc_register</span><span class="p">(</span><span class="k">enum</span> <span class="n">usb_index_type</span> <span class="n">index</span><span class="p">,</span> <span class="k">const</span> <span class="kt">char</span> <span class="o">*</span><span class="n">name</span><span class="p">,</span> <span class="kt">uint16_t</span> <span class="n">flag</span><span class="p">);</span>
|
<div class="highlight-C notranslate"><div class="highlight"><pre><span></span><span class="kt">int</span> <span class="nf">usb_dc_register</span><span class="p">(</span><span class="k">enum</span> <span class="n">usb_index_type</span> <span class="n">index</span><span class="p">,</span> <span class="k">const</span> <span class="kt">char</span> <span class="o">*</span><span class="n">name</span><span class="p">);</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
</div>
|
</div>
|
||||||
<ul class="simple">
|
<ul class="simple">
|
||||||
<li><p>index 要注册的设备索引</p></li>
|
<li><p>index 要注册的设备索引</p></li>
|
||||||
<li><p>name 为注册的设备命名</p></li>
|
<li><p>name 为注册的设备命名</p></li>
|
||||||
<li><p>flag 默认可读可写属性</p></li>
|
|
||||||
<li><p>return 错误码,0表示成功,其他表示失败</p></li>
|
<li><p>return 错误码,0表示成功,其他表示失败</p></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -260,7 +260,7 @@
|
||||||
<p><code class="docutils literal notranslate"><span class="pre">usb_dc_init</span></code> 用来注册 USB 设备和初始化 USB 硬件相关寄存器,注册 usb 中断回调函数。在注册之前需要打开对应 USB 设备的宏定义,例如定义宏 <code class="docutils literal notranslate"><span class="pre">BSP_USING_USB</span></code> 方可使用 USB 设备。</p>
|
<p><code class="docutils literal notranslate"><span class="pre">usb_dc_init</span></code> 用来注册 USB 设备和初始化 USB 硬件相关寄存器,注册 usb 中断回调函数。在注册之前需要打开对应 USB 设备的宏定义,例如定义宏 <code class="docutils literal notranslate"><span class="pre">BSP_USING_USB</span></code> 方可使用 USB 设备。</p>
|
||||||
<div class="highlight-C notranslate"><div class="highlight"><pre><span></span><span class="k">struct</span> <span class="nc">device</span> <span class="o">*</span><span class="n">usb_dc_init</span><span class="p">(</span><span class="kt">void</span><span class="p">)</span>
|
<div class="highlight-C notranslate"><div class="highlight"><pre><span></span><span class="k">struct</span> <span class="nc">device</span> <span class="o">*</span><span class="n">usb_dc_init</span><span class="p">(</span><span class="kt">void</span><span class="p">)</span>
|
||||||
<span class="p">{</span>
|
<span class="p">{</span>
|
||||||
<span class="n">usb_dc_register</span><span class="p">(</span><span class="n">USB_INDEX</span><span class="p">,</span> <span class="s">"usb"</span><span class="p">,</span> <span class="n">DEVICE_OFLAG_RDWR</span><span class="p">);</span>
|
<span class="n">usb_dc_register</span><span class="p">(</span><span class="n">USB_INDEX</span><span class="p">,</span> <span class="s">"usb"</span><span class="p">);</span>
|
||||||
<span class="n">usb</span> <span class="o">=</span> <span class="n">device_find</span><span class="p">(</span><span class="s">"usb"</span><span class="p">);</span>
|
<span class="n">usb</span> <span class="o">=</span> <span class="n">device_find</span><span class="p">(</span><span class="s">"usb"</span><span class="p">);</span>
|
||||||
<span class="n">device_set_callback</span><span class="p">(</span><span class="n">usb</span><span class="p">,</span> <span class="n">usb_dc_event_callback</span><span class="p">);</span>
|
<span class="n">device_set_callback</span><span class="p">(</span><span class="n">usb</span><span class="p">,</span> <span class="n">usb_dc_event_callback</span><span class="p">);</span>
|
||||||
<span class="n">device_open</span><span class="p">(</span><span class="n">usb</span><span class="p">,</span> <span class="mi">0</span><span class="p">);</span>
|
<span class="n">device_open</span><span class="p">(</span><span class="n">usb</span><span class="p">,</span> <span class="mi">0</span><span class="p">);</span>
|
||||||
|
|
|
@ -296,7 +296,7 @@
|
||||||
<span class="normal">6</span>
|
<span class="normal">6</span>
|
||||||
<span class="normal">7</span>
|
<span class="normal">7</span>
|
||||||
<span class="normal">8</span>
|
<span class="normal">8</span>
|
||||||
<span class="normal">9</span></pre></div></td><td class="code"><div class="highlight"><pre><span></span> <span class="n">uart_register</span><span class="p">(</span><span class="n">board_get_debug_uart_index</span><span class="p">(),</span> <span class="s">"debug_log"</span><span class="p">,</span> <span class="n">DEVICE_OFLAG_RDWR</span><span class="p">);</span>
|
<span class="normal">9</span></pre></div></td><td class="code"><div class="highlight"><pre><span></span> <span class="n">uart_register</span><span class="p">(</span><span class="n">board_get_debug_uart_index</span><span class="p">(),</span> <span class="s">"debug_log"</span><span class="p">);</span>
|
||||||
<span class="k">struct</span> <span class="nc">device</span> <span class="o">*</span><span class="n">uart</span> <span class="o">=</span> <span class="n">device_find</span><span class="p">(</span><span class="s">"debug_log"</span><span class="p">);</span>
|
<span class="k">struct</span> <span class="nc">device</span> <span class="o">*</span><span class="n">uart</span> <span class="o">=</span> <span class="n">device_find</span><span class="p">(</span><span class="s">"debug_log"</span><span class="p">);</span>
|
||||||
|
|
||||||
<span class="k">if</span> <span class="p">(</span><span class="n">uart</span><span class="p">)</span>
|
<span class="k">if</span> <span class="p">(</span><span class="n">uart</span><span class="p">)</span>
|
||||||
|
|
|
@ -264,7 +264,7 @@
|
||||||
<span class="normal"> 7</span>
|
<span class="normal"> 7</span>
|
||||||
<span class="normal"> 8</span>
|
<span class="normal"> 8</span>
|
||||||
<span class="normal"> 9</span>
|
<span class="normal"> 9</span>
|
||||||
<span class="normal">10</span></pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="n">dma_register</span><span class="p">(</span><span class="n">DMA0_CH0_INDEX</span><span class="p">,</span> <span class="s">"DMA"</span><span class="p">,</span> <span class="n">DEVICE_OFLAG_RDWR</span><span class="p">);</span>
|
<span class="normal">10</span></pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="n">dma_register</span><span class="p">(</span><span class="n">DMA0_CH0_INDEX</span><span class="p">,</span> <span class="s">"DMA"</span><span class="p">);</span>
|
||||||
|
|
||||||
<span class="k">struct</span> <span class="nc">device</span> <span class="o">*</span><span class="n">dma</span> <span class="o">=</span> <span class="n">device_find</span><span class="p">(</span><span class="s">"DMA"</span><span class="p">);</span>
|
<span class="k">struct</span> <span class="nc">device</span> <span class="o">*</span><span class="n">dma</span> <span class="o">=</span> <span class="n">device_find</span><span class="p">(</span><span class="s">"DMA"</span><span class="p">);</span>
|
||||||
|
|
||||||
|
|
|
@ -236,7 +236,7 @@
|
||||||
</pre></div>
|
</pre></div>
|
||||||
</td></tr></table></div>
|
</td></tr></table></div>
|
||||||
<ul class="simple">
|
<ul class="simple">
|
||||||
<li><p>配置 <code class="docutils literal notranslate"><span class="pre">I2C</span></code> 设备复用引脚,见 <code class="docutils literal notranslate"><span class="pre">bsp/board/bl706_iot/peripheral_config.h</span></code></p></li>
|
<li><p>配置 <code class="docutils literal notranslate"><span class="pre">I2C</span></code> 设备复用引脚,见 <code class="docutils literal notranslate"><span class="pre">bsp/board/bl706_iot/pinmux_config.h</span></code></p></li>
|
||||||
</ul>
|
</ul>
|
||||||
<div class="highlight-C notranslate"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal"> 1</span>
|
<div class="highlight-C notranslate"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal"> 1</span>
|
||||||
<span class="normal"> 2</span>
|
<span class="normal"> 2</span>
|
||||||
|
@ -273,7 +273,7 @@
|
||||||
<span class="normal">5</span>
|
<span class="normal">5</span>
|
||||||
<span class="normal">6</span>
|
<span class="normal">6</span>
|
||||||
<span class="normal">7</span>
|
<span class="normal">7</span>
|
||||||
<span class="normal">8</span></pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="n">i2c_register</span><span class="p">(</span><span class="n">I2C0_INDEX</span><span class="p">,</span> <span class="s">"i2c"</span><span class="p">,</span> <span class="n">DEVICE_OFLAG_RDWR</span><span class="p">);</span>
|
<span class="normal">8</span></pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="n">i2c_register</span><span class="p">(</span><span class="n">I2C0_INDEX</span><span class="p">,</span> <span class="s">"i2c"</span><span class="p">);</span>
|
||||||
<span class="k">struct</span> <span class="nc">device</span> <span class="o">*</span><span class="n">i2c0</span> <span class="o">=</span> <span class="n">device_find</span><span class="p">(</span><span class="s">"i2c"</span><span class="p">);</span>
|
<span class="k">struct</span> <span class="nc">device</span> <span class="o">*</span><span class="n">i2c0</span> <span class="o">=</span> <span class="n">device_find</span><span class="p">(</span><span class="s">"i2c"</span><span class="p">);</span>
|
||||||
|
|
||||||
<span class="k">if</span> <span class="p">(</span><span class="n">i2c0</span><span class="p">)</span>
|
<span class="k">if</span> <span class="p">(</span><span class="n">i2c0</span><span class="p">)</span>
|
||||||
|
|
|
@ -282,7 +282,7 @@
|
||||||
<span class="normal"> 8</span>
|
<span class="normal"> 8</span>
|
||||||
<span class="normal"> 9</span>
|
<span class="normal"> 9</span>
|
||||||
<span class="normal">10</span>
|
<span class="normal">10</span>
|
||||||
<span class="normal">11</span></pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="n">pwm_register</span><span class="p">(</span><span class="n">PWM_CH2_INDEX</span><span class="p">,</span> <span class="s">"led_breath"</span><span class="p">,</span> <span class="n">DEVICE_OFLAG_RDWR</span><span class="p">);</span>
|
<span class="normal">11</span></pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="n">pwm_register</span><span class="p">(</span><span class="n">PWM_CH2_INDEX</span><span class="p">,</span> <span class="s">"led_breath"</span><span class="p">);</span>
|
||||||
|
|
||||||
<span class="k">struct</span> <span class="nc">device</span> <span class="o">*</span><span class="n">led_breath</span> <span class="o">=</span> <span class="n">device_find</span><span class="p">(</span><span class="s">"led_breath"</span><span class="p">);</span>
|
<span class="k">struct</span> <span class="nc">device</span> <span class="o">*</span><span class="n">led_breath</span> <span class="o">=</span> <span class="n">device_find</span><span class="p">(</span><span class="s">"led_breath"</span><span class="p">);</span>
|
||||||
|
|
||||||
|
|
|
@ -445,10 +445,10 @@
|
||||||
<span class="normal">36</span>
|
<span class="normal">36</span>
|
||||||
<span class="normal">37</span>
|
<span class="normal">37</span>
|
||||||
<span class="normal">38</span>
|
<span class="normal">38</span>
|
||||||
<span class="normal">39</span></pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="n">pwm_register</span><span class="p">(</span><span class="n">PWM_CH0_INDEX</span><span class="p">,</span> <span class="s">"motor_ch0"</span><span class="p">,</span> <span class="n">DEVICE_OFLAG_RDWR</span><span class="p">);</span>
|
<span class="normal">39</span></pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="n">pwm_register</span><span class="p">(</span><span class="n">PWM_CH0_INDEX</span><span class="p">,</span> <span class="s">"motor_ch0"</span><span class="p">);</span>
|
||||||
<span class="n">pwm_register</span><span class="p">(</span><span class="n">PWM_CH1_INDEX</span><span class="p">,</span> <span class="s">"motor_ch1"</span><span class="p">,</span> <span class="n">DEVICE_OFLAG_RDWR</span><span class="p">);</span>
|
<span class="n">pwm_register</span><span class="p">(</span><span class="n">PWM_CH1_INDEX</span><span class="p">,</span> <span class="s">"motor_ch1"</span><span class="p">);</span>
|
||||||
<span class="n">pwm_register</span><span class="p">(</span><span class="n">PWM_CH2_INDEX</span><span class="p">,</span> <span class="s">"motor_ch2"</span><span class="p">,</span> <span class="n">DEVICE_OFLAG_RDWR</span><span class="p">);</span>
|
<span class="n">pwm_register</span><span class="p">(</span><span class="n">PWM_CH2_INDEX</span><span class="p">,</span> <span class="s">"motor_ch2"</span><span class="p">);</span>
|
||||||
<span class="n">pwm_register</span><span class="p">(</span><span class="n">PWM_CH3_INDEX</span><span class="p">,</span> <span class="s">"motor_ch3"</span><span class="p">,</span> <span class="n">DEVICE_OFLAG_RDWR</span><span class="p">);</span>
|
<span class="n">pwm_register</span><span class="p">(</span><span class="n">PWM_CH3_INDEX</span><span class="p">,</span> <span class="s">"motor_ch3"</span><span class="p">);</span>
|
||||||
|
|
||||||
<span class="n">motor_ch0</span> <span class="o">=</span> <span class="n">device_find</span><span class="p">(</span><span class="s">"motor_ch0"</span><span class="p">);</span>
|
<span class="n">motor_ch0</span> <span class="o">=</span> <span class="n">device_find</span><span class="p">(</span><span class="s">"motor_ch0"</span><span class="p">);</span>
|
||||||
<span class="n">motor_ch1</span> <span class="o">=</span> <span class="n">device_find</span><span class="p">(</span><span class="s">"motor_ch1"</span><span class="p">);</span>
|
<span class="n">motor_ch1</span> <span class="o">=</span> <span class="n">device_find</span><span class="p">(</span><span class="s">"motor_ch1"</span><span class="p">);</span>
|
||||||
|
|
|
@ -314,7 +314,7 @@
|
||||||
<span class="n">device_close</span><span class="p">(</span><span class="n">spi0</span><span class="p">);</span>
|
<span class="n">device_close</span><span class="p">(</span><span class="n">spi0</span><span class="p">);</span>
|
||||||
<span class="p">}</span>
|
<span class="p">}</span>
|
||||||
<span class="k">else</span><span class="p">{</span>
|
<span class="k">else</span><span class="p">{</span>
|
||||||
<span class="n">spi_register</span><span class="p">(</span><span class="n">SPI0_INDEX</span><span class="p">,</span><span class="s">"spi0"</span><span class="p">,</span><span class="n">DEVICE_OFLAG_RDWR</span><span class="p">);</span>
|
<span class="n">spi_register</span><span class="p">(</span><span class="n">SPI0_INDEX</span><span class="p">,</span><span class="s">"spi0"</span><span class="p">);</span>
|
||||||
<span class="n">spi0</span> <span class="o">=</span> <span class="n">device_find</span><span class="p">(</span><span class="s">"spi0"</span><span class="p">);</span>
|
<span class="n">spi0</span> <span class="o">=</span> <span class="n">device_find</span><span class="p">(</span><span class="s">"spi0"</span><span class="p">);</span>
|
||||||
<span class="p">}</span>
|
<span class="p">}</span>
|
||||||
<span class="k">if</span><span class="p">(</span><span class="n">spi0</span><span class="p">)</span>
|
<span class="k">if</span><span class="p">(</span><span class="n">spi0</span><span class="p">)</span>
|
||||||
|
|
|
@ -287,7 +287,7 @@
|
||||||
<span class="normal">6</span>
|
<span class="normal">6</span>
|
||||||
<span class="normal">7</span>
|
<span class="normal">7</span>
|
||||||
<span class="normal">8</span>
|
<span class="normal">8</span>
|
||||||
<span class="normal">9</span></pre></div></td><td class="code"><div class="highlight"><pre><span></span> <span class="n">uart_register</span><span class="p">(</span><span class="n">board_get_debug_uart_index</span><span class="p">(),</span> <span class="s">"debug_log"</span><span class="p">,</span> <span class="n">DEVICE_OFLAG_RDWR</span><span class="p">);</span>
|
<span class="normal">9</span></pre></div></td><td class="code"><div class="highlight"><pre><span></span> <span class="n">uart_register</span><span class="p">(</span><span class="n">board_get_debug_uart_index</span><span class="p">(),</span> <span class="s">"debug_log"</span><span class="p">);</span>
|
||||||
<span class="k">struct</span> <span class="nc">device</span> <span class="o">*</span><span class="n">uart</span> <span class="o">=</span> <span class="n">device_find</span><span class="p">(</span><span class="s">"debug_log"</span><span class="p">);</span>
|
<span class="k">struct</span> <span class="nc">device</span> <span class="o">*</span><span class="n">uart</span> <span class="o">=</span> <span class="n">device_find</span><span class="p">(</span><span class="s">"debug_log"</span><span class="p">);</span>
|
||||||
|
|
||||||
<span class="k">if</span> <span class="p">(</span><span class="n">uart</span><span class="p">)</span>
|
<span class="k">if</span> <span class="p">(</span><span class="n">uart</span><span class="p">)</span>
|
||||||
|
|
File diff suppressed because one or more lines are too long
|
@ -107,26 +107,16 @@ API 概述
|
||||||
**device_register**
|
**device_register**
|
||||||
^^^^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
``device_register`` 用于设备的注册,将设备信息注册到链表当中。
|
``device_register`` 用于设备标准驱动的注册,并将设备信息注册到链表当中。
|
||||||
|
|
||||||
.. code-block:: C
|
.. code-block:: C
|
||||||
|
|
||||||
int device_register(struct device *dev, const char *name, uint16_t flag);
|
int device_register(struct device *dev, const char *name);
|
||||||
|
|
||||||
- dev 设备句柄。
|
- dev 设备句柄。
|
||||||
- name 设备名称。
|
- name 设备名称。
|
||||||
- flag 设备的读写属性
|
|
||||||
- return 返回错误码,0 表示注册成功,其他表示错误。
|
- return 返回错误码,0 表示注册成功,其他表示错误。
|
||||||
|
|
||||||
``flag`` 可以写入以下参数,表示:**只读**、**只写**、**可读可写**。
|
|
||||||
|
|
||||||
.. code-block:: C
|
|
||||||
|
|
||||||
#define DEVICE_OFLAG_RDONLY 0x1000 /* 以只读方式打开设备 */
|
|
||||||
#define DEVICE_OFLAG_WRONLY 0x2000 /* 以只写方式打开设备 */
|
|
||||||
#define DEVICE_OFLAG_RDWR 0x3000 /* 以读写方式打开设备 */
|
|
||||||
|
|
||||||
|
|
||||||
**device_unregister**
|
**device_unregister**
|
||||||
^^^^^^^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
|
|
@ -79,17 +79,16 @@ ADC 设备接口
|
||||||
ADC 设备接口全部遵循标准设备驱动管理层提供的接口。
|
ADC 设备接口全部遵循标准设备驱动管理层提供的接口。
|
||||||
|
|
||||||
|
|
||||||
**ADC_register**
|
**adc_register**
|
||||||
^^^^^^^^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
``adc_register`` 用来注册 ADC 设备标准驱动接口,在注册之前需要打开对应 ADC 设备的宏定义。例如定义宏 ``BSP_USING_ADC0`` 方可使用 ``ADC0`` 设备,注册完成以后才可以使用其他接口,如果没有定义宏,则无法使用 ``ADC0`` 设备。
|
``adc_register`` 用来注册 ADC 设备标准驱动接口,在注册之前需要打开对应 ADC 设备的宏定义。例如定义宏 ``BSP_USING_ADC0`` 方可使用 ``ADC0`` 设备,注册完成以后才可以使用其他接口,如果没有定义宏,则无法使用 ``ADC0`` 设备。
|
||||||
|
|
||||||
.. code-block:: C
|
.. code-block:: C
|
||||||
|
|
||||||
int ADC_register(enum ADC_index_type index, const char *name, uint16_t flag);
|
int adc_register(enum ADC_index_type index, const char *name);
|
||||||
|
|
||||||
- index 要注册的设备索引
|
- index 要注册的设备索引
|
||||||
- name 为注册的设备命名
|
|
||||||
- flag 默认可读可写属性
|
- flag 默认可读可写属性
|
||||||
|
|
||||||
``index`` 用来选择 ADC 设备配置,一个 index 对应一个 ADC 设备配置,比如 ``ADC0_INDEX`` 对应 ``ADC0_CONFIG`` 配置,``index`` 有如下可选类型
|
``index`` 用来选择 ADC 设备配置,一个 index 对应一个 ADC 设备配置,比如 ``ADC0_INDEX`` 对应 ``ADC0_CONFIG`` 配置,``index`` 有如下可选类型
|
||||||
|
|
|
@ -217,11 +217,10 @@ DMA 设备接口全部遵循标准设备驱动管理层提供的接口。并且
|
||||||
|
|
||||||
.. code-block:: C
|
.. code-block:: C
|
||||||
|
|
||||||
int dma_register(enum dma_index_type index, const char *name, uint16_t flag);
|
int dma_register(enum dma_index_type index, const char *name);
|
||||||
|
|
||||||
- index 要注册的设备索引
|
- index 要注册的设备索引
|
||||||
- name 为注册的设备命名
|
- name 为注册的设备命名
|
||||||
- flag 默认可读可写属性
|
|
||||||
|
|
||||||
``index`` 用来选择 DMA 设备某个通道的配置,一个 index 对应一个 DMA 设备的一个通道配置,比如 ``DMA_CH0_INDEX`` 对应 DMA 通道0 配置,``index`` 有如下可选类型
|
``index`` 用来选择 DMA 设备某个通道的配置,一个 index 对应一个 DMA 设备的一个通道配置,比如 ``DMA_CH0_INDEX`` 对应 DMA 通道0 配置,``index`` 有如下可选类型
|
||||||
|
|
||||||
|
|
|
@ -75,11 +75,10 @@ I2C 设备标准接口当前仅使用 ``device_open`` , 并提供标准的数据
|
||||||
|
|
||||||
.. code-block:: C
|
.. code-block:: C
|
||||||
|
|
||||||
int i2c_register(enum i2c_index_type index, const char *name, uint16_t flag);
|
int i2c_register(enum i2c_index_type index, const char *name);
|
||||||
|
|
||||||
- index 要注册的设备索引
|
- index 要注册的设备索引
|
||||||
- name 为注册的设备命名
|
- name 为注册的设备命名
|
||||||
- flag 默认可读可写属性
|
|
||||||
|
|
||||||
``index`` 用来选择 I2C 设备,一个 index 对应一个 I2C 设备配置,比如 ``I2C0_INDEX`` 对应 ``I2C0_CONFIG`` 配置,``index`` 有如下可选类型
|
``index`` 用来选择 I2C 设备,一个 index 对应一个 I2C 设备配置,比如 ``I2C0_INDEX`` 对应 ``I2C0_CONFIG`` 配置,``index`` 有如下可选类型
|
||||||
|
|
||||||
|
|
|
@ -144,11 +144,10 @@ I2S 设备接口全部遵循标准设备驱动管理层提供的接口。
|
||||||
|
|
||||||
.. code-block:: C
|
.. code-block:: C
|
||||||
|
|
||||||
int i2s_register(enum i2s_index_type index, const char *name, uint16_t flag);
|
int i2s_register(enum i2s_index_type index, const char *name);
|
||||||
|
|
||||||
- index 要注册的设备索引
|
- index 要注册的设备索引
|
||||||
- name 为注册的设备命名
|
- name 为注册的设备命名
|
||||||
- flag 默认可读可写属性
|
|
||||||
|
|
||||||
``index`` 用来选择 I2S 设备配置,一个 index 对应一个 I2S 设备配置,比如 ``I2S0_INDEX`` 对应 ``I2S0_CONFIG`` 配置。index 有如下可选类型
|
``index`` 用来选择 I2S 设备配置,一个 index 对应一个 I2S 设备配置,比如 ``I2S0_INDEX`` 对应 ``I2S0_CONFIG`` 配置。index 有如下可选类型
|
||||||
|
|
||||||
|
|
|
@ -94,11 +94,10 @@ PWM 设备接口全部遵循标准设备驱动管理层提供的接口。并且
|
||||||
|
|
||||||
.. code-block:: C
|
.. code-block:: C
|
||||||
|
|
||||||
int pwm_register(enum pwm_index_type index, const char *name, uint16_t flag);
|
int pwm_register(enum pwm_index_type index, const char *name);
|
||||||
|
|
||||||
- index 要注册的设备索引
|
- index 要注册的设备索引
|
||||||
- name 为注册的设备命名
|
- name 为注册的设备命名
|
||||||
- flag 默认可读可写属性
|
|
||||||
|
|
||||||
``index`` 用来选择 PWM 设备某个通道的配置,一个 index 对应一个 PWM 设备的一个通道配置,比如 ``PWM_CH0_INDEX`` 对应 PWM 通道0 配置,``index`` 有如下可选类型
|
``index`` 用来选择 PWM 设备某个通道的配置,一个 index 对应一个 PWM 设备的一个通道配置,比如 ``PWM_CH0_INDEX`` 对应 PWM 通道0 配置,``index`` 有如下可选类型
|
||||||
|
|
||||||
|
|
|
@ -137,11 +137,10 @@ SPI 设备接口全部遵循标准设备驱动管理层提供的接口。
|
||||||
|
|
||||||
.. code-block:: C
|
.. code-block:: C
|
||||||
|
|
||||||
int spi_register(enum spi_index_type index, const char *name, uint16_t flag);
|
int spi_register(enum spi_index_type index, const char *name);
|
||||||
|
|
||||||
- index 要注册的设备索引
|
- index 要注册的设备索引
|
||||||
- name 为注册的设备命名
|
- name 为注册的设备命名
|
||||||
- flag 默认可读可写属性
|
|
||||||
|
|
||||||
``index`` 用来选择 SPI 设备配置,一个 index 对应一个 SPI 设备配置,比如 ``SPI0_INDEX`` 对应 ``SPI0_CONFIG`` 配置,``index`` 有如下可选类型
|
``index`` 用来选择 SPI 设备配置,一个 index 对应一个 SPI 设备配置,比如 ``SPI0_INDEX`` 对应 ``SPI0_CONFIG`` 配置,``index`` 有如下可选类型
|
||||||
|
|
||||||
|
|
|
@ -124,11 +124,10 @@ TIMER 设备接口全部遵循标准设备驱动管理层提供的接口。
|
||||||
|
|
||||||
.. code-block:: C
|
.. code-block:: C
|
||||||
|
|
||||||
int timer_register(enum timer_index_type index, const char *name, uint16_t flag);
|
int timer_register(enum timer_index_type index, const char *name);
|
||||||
|
|
||||||
- index 要注册的设备索引
|
- index 要注册的设备索引
|
||||||
- name 为注册的设备命名
|
- name 为注册的设备命名
|
||||||
- flag 默认可读可写属性
|
|
||||||
|
|
||||||
``index`` 用来选择 TIMER 设备配置,一个 index 对应一个 TIMER 设备配置,比如 ``TIMER_CH0_INDEX`` 对应 ``TIMER_CH0_CONFIG`` 配置,``index`` 有如下可选类型
|
``index`` 用来选择 TIMER 设备配置,一个 index 对应一个 TIMER 设备配置,比如 ``TIMER_CH0_INDEX`` 对应 ``TIMER_CH0_CONFIG`` 配置,``index`` 有如下可选类型
|
||||||
|
|
||||||
|
|
|
@ -125,11 +125,10 @@ UART 设备接口全部遵循标准设备驱动管理层提供的接口。
|
||||||
|
|
||||||
.. code-block:: C
|
.. code-block:: C
|
||||||
|
|
||||||
int uart_register(enum uart_index_type index, const char *name, uint16_t flag);
|
int uart_register(enum uart_index_type index, const char *name);
|
||||||
|
|
||||||
- index 要注册的设备索引
|
- index 要注册的设备索引
|
||||||
- name 为注册的设备命名
|
- name 为注册的设备命名
|
||||||
- flag 默认可读可写属性
|
|
||||||
|
|
||||||
``index`` 用来选择 UART 设备配置,一个 index 对应一个 UART 设备配置,比如 ``UART0_INDEX`` 对应 ``UART0_CONFIG`` 配置,``index`` 有如下可选类型
|
``index`` 用来选择 UART 设备配置,一个 index 对应一个 UART 设备配置,比如 ``UART0_INDEX`` 对应 ``UART0_CONFIG`` 配置,``index`` 有如下可选类型
|
||||||
|
|
||||||
|
|
|
@ -81,11 +81,10 @@ USB 设备接口遵循标准设备驱动管理层提供的接口。
|
||||||
|
|
||||||
.. code-block:: C
|
.. code-block:: C
|
||||||
|
|
||||||
int usb_dc_register(enum usb_index_type index, const char *name, uint16_t flag);
|
int usb_dc_register(enum usb_index_type index, const char *name);
|
||||||
|
|
||||||
- index 要注册的设备索引
|
- index 要注册的设备索引
|
||||||
- name 为注册的设备命名
|
- name 为注册的设备命名
|
||||||
- flag 默认可读可写属性
|
|
||||||
- return 错误码,0表示成功,其他表示失败
|
- return 错误码,0表示成功,其他表示失败
|
||||||
|
|
||||||
**device_open**
|
**device_open**
|
||||||
|
|
|
@ -42,7 +42,7 @@ USB DEVICE 控制器接口
|
||||||
|
|
||||||
struct device *usb_dc_init(void)
|
struct device *usb_dc_init(void)
|
||||||
{
|
{
|
||||||
usb_dc_register(USB_INDEX, "usb", DEVICE_OFLAG_RDWR);
|
usb_dc_register(USB_INDEX, "usb");
|
||||||
usb = device_find("usb");
|
usb = device_find("usb");
|
||||||
device_set_callback(usb, usb_dc_event_callback);
|
device_set_callback(usb, usb_dc_event_callback);
|
||||||
device_open(usb, 0);
|
device_open(usb, 0);
|
||||||
|
|
|
@ -77,7 +77,7 @@ shell 移植到串口
|
||||||
.. code-block:: C
|
.. code-block:: C
|
||||||
:linenos:
|
:linenos:
|
||||||
|
|
||||||
uart_register(board_get_debug_uart_index(), "debug_log", DEVICE_OFLAG_RDWR);
|
uart_register(board_get_debug_uart_index(), "debug_log");
|
||||||
struct device *uart = device_find("debug_log");
|
struct device *uart = device_find("debug_log");
|
||||||
|
|
||||||
if (uart)
|
if (uart)
|
||||||
|
|
|
@ -38,7 +38,7 @@ DMA - RAM间数据搬运
|
||||||
.. code-block:: C
|
.. code-block:: C
|
||||||
:linenos:
|
:linenos:
|
||||||
|
|
||||||
dma_register(DMA0_CH0_INDEX, "DMA", DEVICE_OFLAG_RDWR);
|
dma_register(DMA0_CH0_INDEX, "DMA");
|
||||||
|
|
||||||
struct device *dma = device_find("DMA");
|
struct device *dma = device_find("DMA");
|
||||||
|
|
||||||
|
|
|
@ -33,7 +33,7 @@ I2C - AT24CXX 读写
|
||||||
#define CONFIG_GPIO11_FUNC GPIO_FUN_I2C
|
#define CONFIG_GPIO11_FUNC GPIO_FUN_I2C
|
||||||
#define CONFIG_GPIO16_FUNC GPIO_FUN_I2C
|
#define CONFIG_GPIO16_FUNC GPIO_FUN_I2C
|
||||||
|
|
||||||
- 配置 ``I2C`` 设备复用引脚,见 ``bsp/board/bl706_iot/peripheral_config.h``
|
- 配置 ``I2C`` 设备复用引脚,见 ``bsp/board/bl706_iot/pinmux_config.h``
|
||||||
|
|
||||||
.. code-block:: C
|
.. code-block:: C
|
||||||
:linenos:
|
:linenos:
|
||||||
|
@ -56,7 +56,7 @@ I2C - AT24CXX 读写
|
||||||
.. code-block:: C
|
.. code-block:: C
|
||||||
:linenos:
|
:linenos:
|
||||||
|
|
||||||
i2c_register(I2C0_INDEX, "i2c", DEVICE_OFLAG_RDWR);
|
i2c_register(I2C0_INDEX, "i2c");
|
||||||
struct device *i2c0 = device_find("i2c");
|
struct device *i2c0 = device_find("i2c");
|
||||||
|
|
||||||
if (i2c0)
|
if (i2c0)
|
||||||
|
|
|
@ -59,7 +59,7 @@ PWM - 呼吸灯
|
||||||
.. code-block:: C
|
.. code-block:: C
|
||||||
:linenos:
|
:linenos:
|
||||||
|
|
||||||
pwm_register(PWM_CH2_INDEX, "led_breath", DEVICE_OFLAG_RDWR);
|
pwm_register(PWM_CH2_INDEX, "led_breath");
|
||||||
|
|
||||||
struct device *led_breath = device_find("led_breath");
|
struct device *led_breath = device_find("led_breath");
|
||||||
|
|
||||||
|
|
|
@ -151,10 +151,10 @@ PWM - 驱动步进电机
|
||||||
.. code-block:: C
|
.. code-block:: C
|
||||||
:linenos:
|
:linenos:
|
||||||
|
|
||||||
pwm_register(PWM_CH0_INDEX, "motor_ch0", DEVICE_OFLAG_RDWR);
|
pwm_register(PWM_CH0_INDEX, "motor_ch0");
|
||||||
pwm_register(PWM_CH1_INDEX, "motor_ch1", DEVICE_OFLAG_RDWR);
|
pwm_register(PWM_CH1_INDEX, "motor_ch1");
|
||||||
pwm_register(PWM_CH2_INDEX, "motor_ch2", DEVICE_OFLAG_RDWR);
|
pwm_register(PWM_CH2_INDEX, "motor_ch2");
|
||||||
pwm_register(PWM_CH3_INDEX, "motor_ch3", DEVICE_OFLAG_RDWR);
|
pwm_register(PWM_CH3_INDEX, "motor_ch3");
|
||||||
|
|
||||||
motor_ch0 = device_find("motor_ch0");
|
motor_ch0 = device_find("motor_ch0");
|
||||||
motor_ch1 = device_find("motor_ch1");
|
motor_ch1 = device_find("motor_ch1");
|
||||||
|
|
|
@ -80,7 +80,7 @@ SPI - TFT LCD 显示
|
||||||
device_close(spi0);
|
device_close(spi0);
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
spi_register(SPI0_INDEX,"spi0",DEVICE_OFLAG_RDWR);
|
spi_register(SPI0_INDEX,"spi0");
|
||||||
spi0 = device_find("spi0");
|
spi0 = device_find("spi0");
|
||||||
}
|
}
|
||||||
if(spi0)
|
if(spi0)
|
||||||
|
|
|
@ -67,7 +67,7 @@ UART - 数据自收发
|
||||||
.. code-block:: C
|
.. code-block:: C
|
||||||
:linenos:
|
:linenos:
|
||||||
|
|
||||||
uart_register(board_get_debug_uart_index(), "debug_log", DEVICE_OFLAG_RDWR);
|
uart_register(board_get_debug_uart_index(), "debug_log");
|
||||||
struct device *uart = device_find("debug_log");
|
struct device *uart = device_find("debug_log");
|
||||||
|
|
||||||
if (uart)
|
if (uart)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue