You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nuttx.apache.org by ac...@apache.org on 2021/07/19 11:40:52 UTC

[incubator-nuttx] branch master updated: Add BL602 documentation

This is an automated email from the ASF dual-hosted git repository.

acassis pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-nuttx.git


The following commit(s) were added to refs/heads/master by this push:
     new e968240  Add BL602 documentation
e968240 is described below

commit e968240855dcd00ebc02274e28199c433c946951
Author: jsun <js...@bouffalolab.com>
AuthorDate: Mon Jul 19 16:42:41 2021 +0800

    Add BL602 documentation
---
 Documentation/platforms/risc-v/bl602/index.rst | 212 ++++++++++++++++++++++++-
 1 file changed, 206 insertions(+), 6 deletions(-)

diff --git a/Documentation/platforms/risc-v/bl602/index.rst b/Documentation/platforms/risc-v/bl602/index.rst
index 3e3b017..d9bce20 100644
--- a/Documentation/platforms/risc-v/bl602/index.rst
+++ b/Documentation/platforms/risc-v/bl602/index.rst
@@ -2,11 +2,211 @@
 Bouffalo Lab BL602
 ==================
 
-Toolchain
-=========
+BL602/BL604 is Wi-Fi + BLE combo chipset for ultra-low-cost and
+low-power application. Wireless subsystem contains 2.4G radio, Wi-Fi
+802.11b/g/n and BLE 5.0 baseband/MAC designs. Microcontroller subsystem
+contains a low-power 32-bit RISC CPU, high-speed cache and memories.
+Power Management Unit controls low-power modes. Moreover, variety of
+security features are supported.
 
-OpenOCD
--------
+-  32-bit RISC CPU with FPU (floating point unit)
 
-Peripheral Support
-==================
+-  276KB RAM
+
+-  128KB ROM
+
+-  1Kb eFuse
+
+-  Embedded Flash (Optional)
+
+-  Four DMA channels
+
+BL602 Toolchain
+===============
+
+Toolchain can be obtained from
+`bl_iot_sdk/toolchain/riscv <https://github.com/bouffalolab/bl_iot_sdk/tree/master/toolchain/riscv/Linux>`__
+
+In addition, SiFive’s toolchain can be downloaded from:
+
+https://static.dev.sifive.com/dev-tools/riscv64-unknown-elf-gcc-8.3.0-2019.08.0-x86_64-linux-ubuntu14.tar.gz
+
+Building
+========
+
+nsh
+---
+
+First make sure the ``riscv-gnu-toolchain`` has been installed
+correctly.
+
+Configure the NUttX project: ``./tools/configure.sh bl602evb:nsh``. Run
+``make`` to build the project.
+
+.. code:: shell
+
+   root@pc:~/nuttx$ tools/configure.sh bl602evb:nsh
+
+   root@pc:~/nuttx$ make
+
+wifi
+----
+
+Configure the NUttX project: ``./tools/configure.sh bl602evb:wifi``. Run
+``make`` to build the project.
+
+.. code:: shell
+
+   root@pc:~/nuttx$ tools/configure.sh bl602evb:wifi
+
+   root@pc:~/nuttx$ make
+
+Flashing
+========
+
+Dev Cube is a chip integrated development tool provided by Bouffalolab,
+which includes three functions: IOT program download, MCU program
+download and RF performance test.
+
+Dev Cube provides users with the function of downloading programs, and
+supports the configuration of parameters such as clock and flash. Users
+can decide whether to encrypt the program, add signatures, and replace
+the information file, user resource file, partition table and other
+functional configurations according to their own needs when the program
+is started.
+
+Users can get the latest version of Dev Cube through `Bouffalo Lab
+Dev <https://dev.bouffalolab.com/download>`__.
+
+Config download
+---------------
+
+**Configuration parameters include:**
+
+-  **Interface**: Select the communication interface for flashing, here
+   select Uart to download
+
+-  **COM Port**: When select UART for downloading, select the COM port
+   number connected to the chip, and you can click the Refresh button to
+   refresh the COM port
+
+-  **Uart Rate**: When select UART for downloading, fill in the baud
+   rate. The recommended download baud rate is 2MHz,
+
+-  **Xtal**: Select the crystal oscillator frequency when downloading.
+   If the board does not have a soldered crystal oscillator, the
+   internal RC32M clock source should be selected here,default is 40M
+
+-  **Chip Erase**: default setting is False
+
+**Configuration parameters include:**
+
+-  **Partition Table**: Use the partition table in the partition folder
+   of the corresponding chip model in the Dev Cube directory, and 2M
+   files are selected by default for BL602
+
+..
+
+   For the nuttx operating system, BL602 has a dedicated partition file.
+   For details, please contact us.
+
+-  **Boot2 Bin**: It is the first Flash program that runs after the
+   system is started. It is responsible for establishing the BLSP
+   security environment and guiding the main program to run. It uses the
+   Boot2 file in the builtin_imgs folder of the corresponding chip model
+   in the Dev Cube directory.
+
+-  **Firmware Bin**: Bin file path generated by user compilation
+
+-  **Media/Romfs**: Choose one of Media and Romfs. If you check media,
+   you should provide a file. If you check Romfs, a folder should be
+   provided.
+
+-  **MFG Bin**: Select MFG file
+
+-  **AES-Encrypt**: If you use the encryption function, you need to
+   select the AES-Encrypt option, and enter the Key and IV used for
+   encryption. Hexadecimal characters should be entered, and a Byte is
+   composed of two characters, so the Key and IV require 32 characters
+   to be input respectively. It should be noted that the last 8
+   characters of the IV (ie 4Bytes) must be all 0
+
+-  **Single Download Config**: you can download a single file. Fill in
+   the starting address of the download, starting with 0x
+
+For details, please refer to `BLFlashEnv — BL602 IoT
+SDK <https://bouffalolab.github.io/bl_iot_sdk/Developer_Environment/BLFlashEnv/BLFlashEnv.html#iot>`__
+
+Debuging with OpenOCD
+=====================
+
+Download OpenOCD `RISC‑V
+OpenOCD <https://static.dev.sifive.com/dev-tools/freedom-tools/v2020.12/riscv-openocd-0.10.0-2020.12.1-x86_64-linux-ubuntu14.tar.gz>`__.
+
+Start OpenOCD:
+
+.. code:: shell
+
+   root@pc:~$ openocd -f ~/bl_iot_sdk/tools/debug/if_bflb_link.cfg -f ~/bl_iot_sdk/tools/debug/tgt_602_xip.cfg
+
+Start GDB:
+
+.. code:: shell
+
+   root@pc:~$ riscv64-unknown-elf-gdb ~/nuttx/nuttx -x ~/bl_iot_sdk/tools/debug/602.init
+
+Connect OpenOCD:
+
+.. code:: shell
+
+   (gdb) target remote :3333
+
+   (gdb) c
+
+BL602 Peripheral Support
+========================
+
+-  One SDIO 2.0 slave
+
+-  One SPI master/slave
+
+-  Two UART
+
+-  One I2C master
+
+-  Five PWM channels
+
+-  10-bit general DAC
+
+-  12-bit general ADC
+
+-  Two general analog comparators (ACOMP)
+
+-  PIR (Passive Infra-Red) detection
+
+-  IR remote HW accelerator
+
+-  16 or 23 GPIOs
+
+========== ======= =====
+Peripheral Support NOTES
+========== ======= =====
+GPIO       Yes     
+UART       Yes     
+SPI        Yes     
+I2C        Yes     
+DMA        Yes     
+Wifi       Yes     
+SPI FLASH  Yes     
+Timers     Yes     
+Watchdog   Yes     
+RTC        Yes     
+RNG        No      
+AES        No      
+eFuse      Yes     
+ADC        No      
+Bluetooth  No      
+LED_PWM    No      
+SHA        No      
+RSA        No      
+========== ======= =====