7c80826c21
tcpip ok update wifi demo configuration fix tcpip input cause misalign fault change some api definetions in nuttx fix wifi manager strlen copy without suffix null character fix 602 network buf allocation issue wifi scan works [ble] Add controller code [BLE] Add nuttx adapt code for blecontroller . [BLE] modified include file path, to fix cflag is too long. [ble]Test ble peripheral pass, save code. [ble] Organize the code [BLE] Add blecontroller config for nuttx [BLE] Add config for ble example fix tcp lost packet when rx support wpa3. Copy default config from wifi default config. Create ble for local test and ble tester for autopts. Add config for local test. Add pts teset config for host test Add config for mesh test Create task to init blecontroller Delete blecontroller rx thread. using idle task to receive hci command from host Set ble device name to /dev/ble, and fix code. 1.fix a ke schedule risk 2. CFG_HOST is enabled only in the case that CONFIG_BLE_HOST_DISABLE is not enabled, by lanlan rm _sp_main stack. change h/l workq_stack_size 6K change l workq_stack_size 3K. [ble] delete file_detach color idle stack. clear bl602 netdev code SCAN is sorted according to RSSI enlarge nsh command line buffer fixup stack overflow check checkfail when startup arch/risc-v/BL602:fix reboot cause crash reboot default use romapi. riscv/bl602:netdev support defered input, remove wifi_tx function risc-v/bl602:fix sem_timedwait usage error in bl_cmds risc-v/bl602:fix memory access out of bounds when copy ssid remove ble and wifi source, download when build add bl602 blob gitignore risc-v/bl602:remove ble-pts defconfig Fix some typos in NuttX style naming Fix the replacement of tab to space fix wlan interface down still receive packet fix wapi crash, rx when ifdown,and ble_hci_rx_do change system reset to rom dirver change ble hci interval to 50ms NuttX support wifi enable/disable log via KConfig support country code configuration in Kconfig fix ap tx not work |
||
---|---|---|
.. | ||
configs | ||
include | ||
scripts | ||
src | ||
Kconfig | ||
README.txt |
# Getting Started with nsh configuration 1. Download and install toolchain $ curl https://static.dev.sifive.com/dev-tools/riscv64-unknown-elf-gcc-8.3.0-2019.08.0-x86_64-linux-ubuntu14.tar.gz 2. Download flash tools There are multiple tools that can be used, but option (a) is recommended. a. blflash -- cross platform open-source (recommended) curl -L -o blflash https://github.com/spacemeowx2/blflash/releases/download/v0.3.0/blflash-linux-amd64 chmod +x ./blflash b. Bouffalo Lab flash tools (official) https://github.com/bouffalolab/flash_tools.git 3. Configure and build NuttX $ mkdir ./nuttx; cd ./nuttx $ git clone https://github.com/apache/incubator-nuttx.git nuttx $ git clone https://github.com/apache/incubator-nuttx-apps.git apps $ cd nuttx $ make distclean $ ./tools/configure.sh bl602evb:nsh $ make -j 4. Connect bl602 and computer via USB 5. Flash Use option (a) or (b) based on tool selection in section 2. a. Using blflash Place the board in bootloader mode bl602evb: Jumper IO8 to HI and press reset DT-BL10: Press and hold D8, press and release EN, release D8 $ blflash flash nuttx.bin --port /dev/ttyUSB0 [INFO blflash::flasher] Start connection... [TRACE blflash::flasher] 5ms send count 55 [TRACE blflash::flasher] handshake sent elapsed 159.674µs [INFO blflash::flasher] Connection Succeed [INFO blflash] Bootrom version: 1 [TRACE blflash] Boot info: BootInfo { len: 14, bootrom_version: 1, otp_info: [0, 0, 0, 0, 3, 0, 0, 0, a4, 9b, 2, 42, e8, b4, 1d, 0] } [INFO blflash::flasher] Sending eflash_loader... [INFO blflash::flasher] Finished 2.563450723s 11.15KB/s [TRACE blflash::flasher] 5ms send count 500 [TRACE blflash::flasher] handshake sent elapsed 5.065786ms [INFO blflash::flasher] Entered eflash_loader [INFO blflash::flasher] Skip segment addr: 0 size: 47504 sha256 matches [INFO blflash::flasher] Skip segment addr: e000 size: 272 sha256 matches [INFO blflash::flasher] Skip segment addr: f000 size: 272 sha256 matches [INFO blflash::flasher] Skip segment addr: 10000 size: 351584 sha256 matches [INFO blflash::flasher] Skip segment addr: 1f8000 size: 5671 sha256 matches [INFO blflash] Success b Using BL flash_tools Run flash tools, select the nuttx.bin generated in the previous step in the Firmware bin field, and refer to the document for the settings of the remaining fields. 6. Run connect terminal to UART (default baudrate 2000000) $ screen /dev/ttyUSB0 2000000 7. Reset Device bl602evb: Press reset DT-BL10: Press and release EN 8. NSH should appear on console # Using openocd and gdb: This guide is focused on the bl602evb board. See the reference manual for how to connect to the JTAG interface for other boards. 1. Make sure you are running a recently built version of openocd. The packaged versions are very old, and will likely not work. https://github.com/ntfreak/openocd 2. Create a openocd-bl602.cfg file ############################################################################## adapter driver ftdi ftdi_vid_pid 0x0403 0x6010 ftdi_channel 1 transport select jtag adapter speed 2000 ftdi_layout_init 0x00f8 0x00fb set _CHIPNAME riscv jtag newtap $_CHIPNAME cpu -irlen 5 -expected-id 0x20000c05 set _TARGETNAME $_CHIPNAME.cpu target create $_TARGETNAME.0 riscv -chain-position $_TARGETNAME $_TARGETNAME.0 configure -work-area-phys 0x22020000 -work-area-size 0x10000 -work-area-backup 1 echo "Ready for Remote Connections" $_TARGETNAME.0 configure -event reset-assert-pre { echo "reset-assert-pre" adapter speed 100 } $_TARGETNAME.0 configure -event reset-deassert-post { echo "reset-deassert-post" adapter speed 4000 reg mstatus 0x80000000 reg pc 0x21000000 } $_TARGETNAME.0 configure -event reset-init { echo "reset-init" adapter speed 4000 } gdb_memory_map enable gdb_flash_program disable riscv set_prefer_sba on riscv set_command_timeout_sec 1 init reset init ############################################################################## 3. Create a openocd.gdb configuration ############################################################################## target extended-remote :3333 set print asm-demangle on set backtrace limit 32 mem 0x22008000 0x22014000 rw mem 0x42008000 0x42014000 rw mem 0x22014000 0x22020000 rw mem 0x42014000 0x42020000 rw mem 0x22020000 0x22030000 rw mem 0x42020000 0x42030000 rw mem 0x22030000 0x2204C000 rw mem 0x42030000 0x4204C000 rw mem 0x23000000 0x23400000 ro mem 0x40000000 0x40010000 rw break __start stepi ############################################################################## 3. Connect openocd $ openocd -f openocd-bl602.cfg Open On-Chip Debugger 0.10.0+dev-01514-ga8edbd020-dirty (2020-11-19-20:11) Licensed under GNU GPL v2 For bug reports, read http://openocd.org/doc/doxygen/bugs.html Ready for Remote Connections Info : clock speed 2000 kHz Info : JTAG tap: riscv.cpu tap/device found: 0x20000c05 (mfg: 0x602 (<unknown>), part: 0x0000, ver: 0x2) Info : datacount=1 progbufsize=2 Info : Disabling abstract command reads from CSRs. Info : Examined RISC-V core; found 1 harts Info : hart 0: XLEN=32, misa=0x40801125 Info : starting gdb server for riscv.cpu.0 on 3333 Info : Listening on port 3333 for gdb connections Info : JTAG tap: riscv.cpu tap/device found: 0x20000c05 (mfg: 0x602 (<unknown>), part: 0x0000, ver: 0x2) reset-assert-pre reset-deassert-post Info : Disabling abstract command writes to CSRs. reset-init Info : Listening on port 6666 for tcl connections Info : Listening on port 4444 for telnet connections 4. Connect gdb This is a short demo placing a breakpoint at the entry to nsh. NOTE: openocd+gdb cannot be used at this time to flash the device. $ riscv64-unknown-elf-gdb nuttx -x openocd-bl602.gdb Reading symbols from nuttx... 0x21000000 in ?? () Breakpoint 1 at 0x2300000a: file chip/bl602_entry.S, line 41. Note: automatically using hardware breakpoints for read-only addresses. 0x21000004 in ?? () (gdb) b nsh_main Breakpoint 2 at 0x23003f32: file nsh_main.c, line 123. (gdb) mon reset halt JTAG tap: riscv.cpu tap/device found: 0x20000c05 (mfg: 0x602 (<unknown>), part: 0x0000, ver: 0x2) reset-assert-pre reset-deassert-post (gdb) c Continuing. Breakpoint 1, bl602_start () at chip/bl602_entry.S:41 41 li t0, MSTATUS_MIE (gdb) c Continuing. Breakpoint 2, nsh_main (argc=1, argc@entry=<error reading variable: value has been optimized out>, argv=0x420134c0, argv@entry=<error reading variable: value has been optimized out>) at nsh_main.c:123 123 sched_getparam(0, ¶m); (gdb) bt #0 nsh_main (argc=1, argc@entry=<error reading variable: value has been optimized out>, argv=0x420134c0, argv@entry=<error reading variable: value has been optimized out>) at nsh_main.c:123 #1 0x230030f0 in nxtask_startup (entrypt=<optimized out>, argc=<optimized out>, argv=<optimized out>) at sched/task_startup.c:165 #2 0x23001362 in nxtask_start () at task/task_start.c:144 #3 0x00000000 in ?? () Backtrace stopped: frame did not save the PC