[doc] update doc
This commit is contained in:
parent
5ff36fc813
commit
8742503a9e
@ -164,6 +164,7 @@ ADC 设备除了标准的控制命令,还具有自己特殊的控制命令。
|
||||
#define DEVICE_CTRL_ADC_VBAT_OFF 0x14
|
||||
#define DEVICE_CTRL_ADC_TSEN_ON 0x15
|
||||
#define DEVICE_CTRL_ADC_TSEN_OFF 0x16
|
||||
#define DEVICE_CTRL_ADC_DATA_PARSE 0x17
|
||||
|
||||
``args`` 根据不同的 ``cmd`` 传入不同,具体如下:
|
||||
|
||||
@ -207,6 +208,9 @@ ADC 设备除了标准的控制命令,还具有自己特殊的控制命令。
|
||||
* - DEVICE_CTRL_ADC_TSEN_OFF
|
||||
- NULL
|
||||
- 关闭内部温度测量电路(需硬件支持)
|
||||
* - DEVICE_CTRL_ADC_DATA_PARSE
|
||||
- adc_data_parse_t
|
||||
- 对原始数据进行解析,解析成电压形式
|
||||
|
||||
**device_read**
|
||||
^^^^^^^^^^^^^^^^
|
||||
|
@ -7,58 +7,63 @@
|
||||
博流系列芯片拥有丰富的时钟源选择,为方便用户配置,提供了时钟树配置表,不需要用户手动调用时钟设置接口,用户只需要关心最终的系统时钟和外设时钟频率即可。时钟配置表位于 ``bsp/board/xxx_board`` 目录下 ``clock_config.h`` 文件。
|
||||
|
||||
|
||||
时钟频率获取接口
|
||||
------------------------
|
||||
**XTAL_TYPE** 有以下选择:
|
||||
|
||||
**system_clock_get**
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
- EXTERNAL_XTAL_32M
|
||||
- INTERNAL_RC_32M
|
||||
|
||||
``system_clock_get`` 用来获取系统时钟频率。
|
||||
**XTAL_32K_TYPE** 有以下选择:
|
||||
|
||||
.. code-block:: C
|
||||
- EXTERNAL_XTAL_32K
|
||||
- INTERNAL_RC_32K
|
||||
|
||||
uint32_t system_clock_get(enum system_clock_type type);
|
||||
**BSP_ROOT_CLOCK_SOURCE** 有以下选择:
|
||||
|
||||
- **type** 获取的系统时钟频率类型
|
||||
- ROOT_CLOCK_SOURCE_XCLK
|
||||
- ROOT_CLOCK_SOURCE_PLL_57P6M
|
||||
- ROOT_CLOCK_SOURCE_PLL_96M
|
||||
- ROOT_CLOCK_SOURCE_PLL_144M
|
||||
|
||||
``type`` 提供以下几种类型
|
||||
**BSP_AUDIO_PLL_CLOCK_SOURCE** 有以下选择:
|
||||
|
||||
.. code-block:: C
|
||||
- ROOT_CLOCK_SOURCE_AUPLL_12288000_HZ
|
||||
- ROOT_CLOCK_SOURCE_AUPLL_11289600_HZ
|
||||
- ROOT_CLOCK_SOURCE_AUPLL_5644800_HZ
|
||||
- ROOT_CLOCK_SOURCE_AUPLL_24576000_HZ
|
||||
- ROOT_CLOCK_SOURCE_AUPLL_24000000_HZ
|
||||
|
||||
enum system_clock_type
|
||||
{
|
||||
SYSTEM_CLOCK_ROOT_CLOCK = 0,
|
||||
SYSTEM_CLOCK_FCLK,
|
||||
SYSTEM_CLOCK_BCLK,
|
||||
SYSTEM_CLOCK_XCLK,
|
||||
SYSTEM_CLOCK_32K_CLK,
|
||||
SYSTEM_CLOCK_AUPLL,
|
||||
};
|
||||
**BSP_UART_CLOCK_SOURCE** 有以下选择:
|
||||
|
||||
- ROOT_CLOCK_SOURCE_PLL_96M
|
||||
- ROOT_CLOCK_SOURCE_FCLK
|
||||
|
||||
**peripheral_clock_get**
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
**BSP_I2C_CLOCK_SOURCE** 有以下选择:
|
||||
|
||||
``peripheral_clock_get`` 用来获取外设时钟频率。
|
||||
- ROOT_CLOCK_SOURCE_BCLK
|
||||
|
||||
.. code-block:: C
|
||||
**BSP_SPI_CLOCK_SOURCE** 有以下选择:
|
||||
|
||||
uint32_t peripheral_clock_get(enum peripheral_clock_type type);
|
||||
- ROOT_CLOCK_SOURCE_BCLK
|
||||
|
||||
- **type** 获取的外设时钟频率类型
|
||||
**BSP_USING_TIMER0** 有以下选择,TIMER1、WDT同理:
|
||||
|
||||
``type`` 提供以下几种类型
|
||||
- ROOT_CLOCK_SOURCE_FCLK
|
||||
- ROOT_CLOCK_SOURCE_XCLK
|
||||
- ROOT_CLOCK_SOURCE_32K_CLK
|
||||
- ROOT_CLOCK_SOURCE_1K_CLK
|
||||
|
||||
.. code-block:: C
|
||||
**BSP_USING_PWM_CHx** 有以下选择:
|
||||
|
||||
enum peripheral_clock_type
|
||||
{
|
||||
PERIPHERAL_CLOCK_UART = 0,
|
||||
PERIPHERAL_CLOCK_SPI,
|
||||
PERIPHERAL_CLOCK_I2C,
|
||||
PERIPHERAL_CLOCK_ADC,
|
||||
PERIPHERAL_CLOCK_DAC,
|
||||
PERIPHERAL_CLOCK_I2S,
|
||||
PERIPHERAL_CLOCK_PWM,
|
||||
PERIPHERAL_CLOCK_CAM,
|
||||
};
|
||||
- ROOT_CLOCK_SOURCE_32K_CLK
|
||||
- ROOT_CLOCK_SOURCE_BCLK
|
||||
- ROOT_CLOCK_SOURCE_XCLK
|
||||
|
||||
**BSP_USING_ADC0** 有以下选择:
|
||||
|
||||
- ROOT_CLOCK_SOURCE_XCLK
|
||||
- BSP_AUDIO_PLL_CLOCK_SOURCE
|
||||
|
||||
**BSP_USING_DAC0** 有以下选择:
|
||||
|
||||
- ROOT_CLOCK_SOURCE_XCLK
|
||||
- BSP_AUDIO_PLL_CLOCK_SOURCE
|
@ -331,10 +331,10 @@ DMA 设备除了标准的控制命令,还具有自己特殊的控制命令。
|
||||
|
||||
.. code-block:: C
|
||||
|
||||
#define DMA_CHANNEL_GET_STATUS 0x10
|
||||
#define DMA_CHANNEL_START 0x11
|
||||
#define DMA_CHANNEL_STOP 0x12
|
||||
#define DMA_CHANNEL_UPDATE 0x13
|
||||
#define DEVICE_CTRL_DMA_CHANNEL_GET_STATUS 0x10
|
||||
#define DEVICE_CTRL_DMA_CHANNEL_START 0x11
|
||||
#define DEVICE_CTRL_DMA_CHANNEL_STOP 0x12
|
||||
#define DEVICE_CTRL_DMA_CHANNEL_UPDATE 0x13
|
||||
|
||||
``args`` 根据不同的 ``cmd`` 传入不同,具体如下:
|
||||
|
||||
@ -351,16 +351,16 @@ DMA 设备除了标准的控制命令,还具有自己特殊的控制命令。
|
||||
* - DEVICE_CTRL_CLR_INT
|
||||
- NULL
|
||||
- 关闭 dma 传输完成中断
|
||||
* - DMA_CHANNEL_GET_STATUS
|
||||
* - DEVICE_CTRL_DMA_CHANNEL_GET_STATUS
|
||||
- NULL
|
||||
- 获取 dma 通道完成状态
|
||||
* - DMA_CHANNEL_START
|
||||
* - DEVICE_CTRL_DMA_CHANNEL_START
|
||||
- NULL
|
||||
- 开启 dma 通道
|
||||
* - DMA_CHANNEL_STOP
|
||||
* - DEVICE_CTRL_DMA_CHANNEL_STOP
|
||||
- NULL
|
||||
- 关闭 dma 通道
|
||||
* - DMA_CHANNEL_UPDATE
|
||||
* - DEVICE_CTRL_DMA_CHANNEL_UPDATE
|
||||
- NULL
|
||||
- 更新 dma 传输配置
|
||||
|
||||
@ -394,7 +394,7 @@ DMA 设备除了标准的控制命令,还具有自己特殊的控制命令。
|
||||
**dma_channel_start**
|
||||
^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
``dma_channel_start`` 用于开启 DMA 通道。实际是调用 ``device_control`` ,其中 ``cmd`` 为 ``DMA_CHANNEL_START``。
|
||||
``dma_channel_start`` 用于开启 DMA 通道。实际是调用 ``device_control`` ,其中 ``cmd`` 为 ``DEVICE_CTRL_DMA_CHANNEL_START``。
|
||||
|
||||
.. code-block:: C
|
||||
|
||||
@ -406,7 +406,7 @@ DMA 设备除了标准的控制命令,还具有自己特殊的控制命令。
|
||||
**dma_channel_stop**
|
||||
^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
``dma_channel_stop`` 用于关闭一个 DMA 通道。实际是调用 ``device_control`` ,其中 ``cmd`` 为 ``DMA_CHANNEL_STOP``。
|
||||
``dma_channel_stop`` 用于关闭一个 DMA 通道。实际是调用 ``device_control`` ,其中 ``cmd`` 为 ``DEVICE_CTRL_DMA_CHANNEL_STOP``。
|
||||
|
||||
.. code-block:: C
|
||||
|
||||
@ -418,7 +418,7 @@ DMA 设备除了标准的控制命令,还具有自己特殊的控制命令。
|
||||
**dma_channel_update**
|
||||
^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
``dma_channel_update`` 用于更新 DMA 的一个通道配置。实际是调用 ``device_control`` ,其中 ``cmd`` 为 ``DMA_CHANNEL_UPDATE``。
|
||||
``dma_channel_update`` 用于更新 DMA 的一个通道配置。实际是调用 ``device_control`` ,其中 ``cmd`` 为 ``DEVICE_CTRL_DMA_CHANNEL_UPDATE``。
|
||||
|
||||
.. code-block:: C
|
||||
|
||||
@ -431,7 +431,7 @@ DMA 设备除了标准的控制命令,还具有自己特殊的控制命令。
|
||||
**dma_channel_check_busy**
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
``dma_channel_check_busy`` 用于查询当前使用的 DMA 通道是否传输完成。实际是调用 ``device_control`` ,其中 ``cmd`` 为 ``DMA_CHANNEL_GET_STATUS``。
|
||||
``dma_channel_check_busy`` 用于查询当前使用的 DMA 通道是否传输完成。实际是调用 ``device_control`` ,其中 ``cmd`` 为 ``DEVICE_CTRL_DMA_CHANNEL_GET_STATUS``。
|
||||
|
||||
.. code-block:: C
|
||||
|
||||
|
@ -111,8 +111,7 @@ Linux OR WSL 环境开发指南
|
||||
烧写 Hello World
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
- 烧写前请先确认烧写方式,若采用串口烧写,请先按住板子上的 ``boot`` 键不要释放,此时在按下 ``rst`` 键,然后释放两个键,此时板子进入 boot_rom 状态。
|
||||
- 这时在终端中输入以下命令进行烧写
|
||||
- 输入下面命令进行烧录,默认使用串口烧录,烧录之前需要进入烧录模式,参考 :ref:`bl_dev_cube`。
|
||||
|
||||
.. code-block:: bash
|
||||
:linenos:
|
||||
|
@ -13,10 +13,8 @@ Windows 下使用 CDK (类 MDK Keil)开发指南
|
||||
-----------------------------
|
||||
|
||||
- 剑池 CDK 软件
|
||||
- 一根 USB Type-A 数据线、一根 Type-C 数据线
|
||||
- 一个 CK-Link 仿真器 or 一个 Sipeed RV-Debugger Plus 调试器
|
||||
- 一个 USB-TTL 串口模块
|
||||
- 杜邦线若干
|
||||
- 一个 支持 risc-v 的 jtag 调试器
|
||||
- 一个 USB-TTL 串口模块(如果调试器自带,忽略)
|
||||
|
||||
|
||||
下载剑池 CDK 软件安装包
|
||||
|
@ -8,11 +8,8 @@ Windows 下使用 Eclipse 开发指南
|
||||
-----------------------------
|
||||
|
||||
- Eclipse 免安装软件包
|
||||
- 串口助手软件
|
||||
- 一根 USB Type-A 数据线
|
||||
- 一个 j-link 仿真器
|
||||
- 一个 USB-TTL 串口模块
|
||||
- 杜邦线若干
|
||||
- 一个 支持 risc-v 的 jtag 调试器
|
||||
- 一个 USB-TTL 串口模块(如果调试器自带,忽略)
|
||||
|
||||
|
||||
下载 Eclipse 安装包
|
||||
@ -123,7 +120,7 @@ Windows 下使用 Eclipse 开发指南
|
||||
烧写 Hello World
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
- 双击 ``download`` 即可烧写 helloworld 工程 ``bin`` 文件到芯片中
|
||||
- 双击 ``download`` 即可烧写 helloworld 工程 ``bin`` 文件到芯片中,默认使用串口烧录,烧录之前需要进入烧录模式,参考 :ref:`bl_dev_cube`。
|
||||
|
||||
- 下载成功后 ``Console`` 窗口可以看到如下图所示的 log 信息
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
Board 配置系统使用指南
|
||||
=======================
|
||||
|
||||
为了践行 **一切皆文件** 的思想,我们针对嵌入式应用不同的硬件配置需求,提出了一套 Board 配置系统。 **Board 配置系统** 主要是用于嵌入式应用中的时钟、GPIO 、外设默认配置三个基本元素进行初始化的配置系统。
|
||||
**Board 配置系统** 主要是用于嵌入式应用中的时钟、GPIO 、外设默认配置三个基本元素进行初始化的配置系统,方便用户统一管理,省去在写多个 case 的时候重复配置。
|
||||
|
||||
**Board 配置系统** 包含三个配置文件,以及一个 ``bl_config_wizard`` 图形化配置软件
|
||||
|
||||
@ -32,7 +32,7 @@ Board 系统主要针对不同的板子来使用,不同的板子创建不同
|
||||
**board.c**
|
||||
^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
``board.c`` 主要对时钟、引脚进行初始化
|
||||
``board.c`` 主要对时钟、引脚进行初始化,这个也是 board 配置系统中的核心文件。
|
||||
|
||||
**blxxx_config.h**
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
@ -15,7 +15,9 @@
|
||||
|
||||
helloworld.cdkproj
|
||||
|
||||
- 在活动工程下拉菜单可以选择 ``CK_Link_Debug`` 或者 ``OpenOCD_Debug`` 工程,本教程基于 ``CK_Link_Debug`` 工程
|
||||
- 在活动工程下拉菜单可以选择 ``CK_Link_Debug`` 或者 ``OpenOCD_Debug`` 工程,本教程基于 ``CK_Link_Debug`` 工程, ``CK_Link_Debug`` 菜单已经选择好了 cklink 调试器,如果没有 ``CK_Link_Debug`` 菜单,其他的菜单只需要在 `Debug` 栏选择 `ICE` 即可。
|
||||
|
||||
.. figure:: img/cdk12.png
|
||||
|
||||
- 在 CDK 工具栏中,点击编译图标即可编译工程
|
||||
|
||||
|
BIN
docs/development_guide/source/get_started/img/cdk12.png
Normal file
BIN
docs/development_guide/source/get_started/img/cdk12.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 19 KiB |
@ -112,10 +112,12 @@ shell 移植到串口
|
||||
{
|
||||
uint8_t data;
|
||||
if (state == UART_EVENT_RX_FIFO) {
|
||||
data = *(uint8_t *)args;
|
||||
for (size_t i = 0; i < size; i++) {
|
||||
data = *(uint8_t *)(args + i);
|
||||
shell_handler(data);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
- 中断回调函数中,判断 ``state`` 是否是 ``UART_EVENT_RX_FIFO``,是的话就将接收的字节传入 ``shell_handler`` 函数。
|
||||
|
||||
|
@ -219,7 +219,7 @@ USB 协议栈可以参考 API 手册下的 USB Stack 章节的说明。
|
||||
while (1) {
|
||||
/* Waiting for record data update */
|
||||
if (record_updata_flag) {
|
||||
if (!device_control(dma_ch4_usb_tx, DMA_CHANNEL_GET_STATUS, NULL)) {
|
||||
if (!device_control(dma_ch4_usb_tx, DEVICE_CTRL_DMA_CHANNEL_GET_STATUS, NULL)) {
|
||||
device_write(usb_fs, AUDIO_IN_EP, record_data_buff[!record_buff_using_num], BUFF_SIZE);
|
||||
record_updata_flag = 0;
|
||||
record_buff_using_num = !record_buff_using_num;
|
||||
@ -228,7 +228,7 @@ USB 协议栈可以参考 API 手册下的 USB Stack 章节的说明。
|
||||
}
|
||||
|
||||
if (play_updata_flag) {
|
||||
device_control(dma_ch2_i2s_tx, DMA_CHANNEL_STOP, NULL);
|
||||
device_control(dma_ch2_i2s_tx, DEVICE_CTRL_DMA_CHANNEL_STOP, NULL);
|
||||
play_buff_using_num = !play_buff_using_num;
|
||||
device_write(i2s, 0, play_data_buff[play_buff_using_num], BUFF_SIZE);
|
||||
play_updata_flag = 0;
|
||||
|
Reference in New Issue
Block a user