diff --git a/docs/development_guide/source/api_reference/peripheral/api_adc.rst b/docs/development_guide/source/api_reference/peripheral/api_adc.rst index 946909f0..6a6c5199 100644 --- a/docs/development_guide/source/api_reference/peripheral/api_adc.rst +++ b/docs/development_guide/source/api_reference/peripheral/api_adc.rst @@ -157,13 +157,14 @@ ADC 设备除了标准的控制命令,还具有自己特殊的控制命令。 .. code-block:: C - #define DEVICE_CTRL_ADC_CHANNEL_START 0x10 - #define DEVICE_CTRL_ADC_CHANNEL_STOP 0x11 - #define DEVICE_CTRL_ADC_CHANNEL_CONFIG 0x12 - #define DEVICE_CTRL_ADC_VBAT_ON 0x13 - #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_CHANNEL_START 0x10 + #define DEVICE_CTRL_ADC_CHANNEL_STOP 0x11 + #define DEVICE_CTRL_ADC_CHANNEL_CONFIG 0x12 + #define DEVICE_CTRL_ADC_VBAT_ON 0x13 + #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** ^^^^^^^^^^^^^^^^ diff --git a/docs/development_guide/source/api_reference/peripheral/api_clock.rst b/docs/development_guide/source/api_reference/peripheral/api_clock.rst index 3ddaef3a..9eb30c9e 100644 --- a/docs/development_guide/source/api_reference/peripheral/api_clock.rst +++ b/docs/development_guide/source/api_reference/peripheral/api_clock.rst @@ -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, - }; \ No newline at end of file +- 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 \ No newline at end of file diff --git a/docs/development_guide/source/api_reference/peripheral/api_dma.rst b/docs/development_guide/source/api_reference/peripheral/api_dma.rst index 171cce1f..55cd3573 100644 --- a/docs/development_guide/source/api_reference/peripheral/api_dma.rst +++ b/docs/development_guide/source/api_reference/peripheral/api_dma.rst @@ -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 diff --git a/docs/development_guide/source/get_started/Linux_quick_start_ubuntu.rst b/docs/development_guide/source/get_started/Linux_quick_start_ubuntu.rst index 70048171..f2ad007c 100644 --- a/docs/development_guide/source/get_started/Linux_quick_start_ubuntu.rst +++ b/docs/development_guide/source/get_started/Linux_quick_start_ubuntu.rst @@ -111,8 +111,7 @@ Linux OR WSL 环境开发指南 烧写 Hello World ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -- 烧写前请先确认烧写方式,若采用串口烧写,请先按住板子上的 ``boot`` 键不要释放,此时在按下 ``rst`` 键,然后释放两个键,此时板子进入 boot_rom 状态。 -- 这时在终端中输入以下命令进行烧写 +- 输入下面命令进行烧录,默认使用串口烧录,烧录之前需要进入烧录模式,参考 :ref:`bl_dev_cube`。 .. code-block:: bash :linenos: diff --git a/docs/development_guide/source/get_started/Windows_quick_start_cdk.rst b/docs/development_guide/source/get_started/Windows_quick_start_cdk.rst index ba1696a2..96a4c7e8 100644 --- a/docs/development_guide/source/get_started/Windows_quick_start_cdk.rst +++ b/docs/development_guide/source/get_started/Windows_quick_start_cdk.rst @@ -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 软件安装包 diff --git a/docs/development_guide/source/get_started/Windows_quick_start_eclipse.rst b/docs/development_guide/source/get_started/Windows_quick_start_eclipse.rst index 2034fd73..c4378c6a 100644 --- a/docs/development_guide/source/get_started/Windows_quick_start_eclipse.rst +++ b/docs/development_guide/source/get_started/Windows_quick_start_eclipse.rst @@ -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 信息 diff --git a/docs/development_guide/source/get_started/board.rst b/docs/development_guide/source/get_started/board.rst index 57628589..21ca6da4 100644 --- a/docs/development_guide/source/get_started/board.rst +++ b/docs/development_guide/source/get_started/board.rst @@ -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** ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/docs/development_guide/source/get_started/cdk_ck_link.rst b/docs/development_guide/source/get_started/cdk_ck_link.rst index 196b1fe6..dffb9a07 100644 --- a/docs/development_guide/source/get_started/cdk_ck_link.rst +++ b/docs/development_guide/source/get_started/cdk_ck_link.rst @@ -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 工具栏中,点击编译图标即可编译工程 diff --git a/docs/development_guide/source/get_started/img/cdk12.png b/docs/development_guide/source/get_started/img/cdk12.png new file mode 100644 index 00000000..2460236a Binary files /dev/null and b/docs/development_guide/source/get_started/img/cdk12.png differ diff --git a/docs/development_guide/source/samples/advance samples/shell_demo.rst b/docs/development_guide/source/samples/advance samples/shell_demo.rst index 63f9b839..db438a1f 100644 --- a/docs/development_guide/source/samples/advance samples/shell_demo.rst +++ b/docs/development_guide/source/samples/advance samples/shell_demo.rst @@ -112,8 +112,10 @@ shell 移植到串口 { uint8_t data; if (state == UART_EVENT_RX_FIFO) { - data = *(uint8_t *)args; - shell_handler(data); + for (size_t i = 0; i < size; i++) { + data = *(uint8_t *)(args + i); + shell_handler(data); + } } } diff --git a/docs/development_guide/source/samples/advance samples/usb/usbd_audio.rst b/docs/development_guide/source/samples/advance samples/usb/usbd_audio.rst index 1962b7b7..128ebbe7 100644 --- a/docs/development_guide/source/samples/advance samples/usb/usbd_audio.rst +++ b/docs/development_guide/source/samples/advance samples/usb/usbd_audio.rst @@ -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;