pine64 / bl_iot_sdk Goto Github PK
View Code? Open in Web Editor NEWThis project forked from bouffalolab/bl_iot_sdk
BL602 SDK (Pine64 fork)
Home Page: https://pine64.github.io/bl602-docs/
License: Apache License 2.0
This project forked from bouffalolab/bl_iot_sdk
BL602 SDK (Pine64 fork)
Home Page: https://pine64.github.io/bl602-docs/
License: Apache License 2.0
Regarding bl602 demo_at :
https://pine64.github.io/bl602-docs/Examples/demo_at/AT.html
The documentation is very complete. I compiled and flash the bin. But I can't find any information indicating which port / baud is used in the application.
Any idea why this happens? I have no clue, where to find the error...
/Users/sychram/Repositories/bl_iot_sdk-ubuntu/bl_iot_sdk/toolchain/riscv/Darwin/bin/../lib/gcc/riscv64-unknown-elf/8.3.0/../../../../riscv64-unknown-elf/bin/ld: /Users/sychram/Repositories/bl_iot_sdk-ubuntu/bl_iot_sdk/toolchain/riscv/Darwin/bin/../lib/gcc/riscv64-unknown-elf/8.3.0/../../../../riscv64-unknown-elf/lib/rv64imafdc/lp64d/crt0.o: in function `.L0 ':
(.text+0x2e): undefined reference to `main'
Then at the crt.o file:
bl_iot_sdk/toolchain/riscv/Darwin/riscv64-unknown-elf/lib/rv64imafdc/lp64d$ nm -C ./crt0.o
0000000000000008 t .L0
0000000000000010 t .L0
0000000000000024 t .L0
0000000000000000 t .L11
U __global_pointer$
U __libc_fini_array
U __libc_init_array
U _edata
U _end
0000000000000000 T _start
U atexit
U exit
U main
U memset
Also in objdump those symbols seem to be undefined indeed.
$ objdump -t ./crt0.o
./crt0.o: file format ELF64-riscv
SYMBOL TABLE:
0000000000000000 l d .text 00000000 .text
0000000000000000 l d .data 00000000 .data
0000000000000000 l d .bss 00000000 .bss
0000000000000000 .text 00000000 .L11
0000000000000008 .text 00000000 .L0
0000000000000010 .text 00000000 .L0
0000000000000024 .text 00000000 .L0
0000000000000000 l d .riscv.attributes 00000000 .riscv.attributes
0000000000000000 g F .text 00000052 _start
0000000000000000 *UND* 00000000 __global_pointer$
0000000000000000 *UND* 00000000 _edata
0000000000000000 *UND* 00000000 _end
0000000000000000 *UND* 00000000 memset
0000000000000000 *UND* 00000000 __libc_fini_array
0000000000000000 *UND* 00000000 atexit
0000000000000000 *UND* 00000000 __libc_init_array
0000000000000000 *UND* 00000000 main
0000000000000000 *UND* 00000000 exit
When trying to run the same command in ubuntu-20 docker container, this does not fail.
It says on the wiki that I should be using "BLFlashEnv", which should be found under /bl_iot_sdk/tools/flash_tool
for flashing binaries. This doesn't exist in the repo so I'm a bit confused. I tried using openocd with an ftdi cable but that refused connection. How are people flashing the chip?
bl_iot_sdk/components/bl602/bl602_std/bl602_std/StdDriver/Src/bl602_glb.c
Lines 2352 to 2354 in eba302d
bl_iot_sdk/components/fs/romfs/src/bl_romfs.c
Line 575 in eba302d
I don't think we should spend time integrating NetBSD into the supported platforms. I just want to report that it works with these caveats:
a) use gmake instead of make (gnu make instead of bsd make)
b) make the build environment believe we are on Linux
cd bl_iot_sdk/toolchain/riscv
ln -s Linux NetBSD
c) Use/install Linux emulation provided by package emulators/suse131_base (there does not seem to be an official crosscompiler from NetBSD/XXX to Linux/riscv)
For reasons unknown, I need to help the toolchain to find its libraries
$ LD_LIBRARY_PATH=/emul/linux/lib64/ /opt/src/bl_iot_sdk/toolchain/riscv/NetBSD/bin/riscv64-unknown-elf-gcc -v
Using built-in specs.
COLLECT_GCC=/opt/src/bl_iot_sdk/toolchain/riscv/NetBSD/bin/riscv64-unknown-elf-gcc
COLLECT_LTO_WRAPPER=/opt/src/bl_iot_sdk/toolchain/riscv/Linux/bin/../libexec/gcc/riscv64-unknown-elf/8.3.0/lto-wrapper
Target: riscv64-unknown-elf
Configured with: /var/lib/builds/sifive-tools/freedom-tools-master/obj/x86_64-linux-centos6/build/riscv-gnu-toolchain/riscv-gcc/configure --target=riscv64-unknown-elf --prefix=/var/lib/builds/sifive-tools/freedom-tools-master/obj/x86_64-linux-centos6/install/riscv64-unknown-elf-gcc-8.3.0-2019.08.0-x86_64-linux-centos6 --with-pkgversion='SiFive GCC 8.3.0-2019.08.0' --with-bugurl=https://github.com/sifive/freedom-tools/issues --disable-shared --disable-threads --enable-languages=c,c++ --enable-tls --with-newlib --with-sysroot=/var/lib/builds/sifive-tools/freedom-tools-master/obj/x86_64-linux-centos6/install/riscv64-unknown-elf-gcc-8.3.0-2019.08.0-x86_64-linux-centos6/riscv64-unknown-elf --with-native-system-header-dir=/include --disable-libmudflap --disable-libssp --disable-libquadmath --disable-libgomp --disable-nls --disable-tm-clone-registry --src=../riscv-gcc --with-system-zlib --enable-checking=yes --enable-multilib --with-abi=lp64d --with-arch=rv64imafdc CFLAGS=-O2 CXXFLAGS=-O2 'CFLAGS_FOR_TARGET=-Os -mcmodel=medany' 'CXXFLAGS_FOR_TARGET=-Os -mcmodel=medany'
Thread model: single
gcc version 8.3.0 (SiFive GCC 8.3.0-2019.08.0)
d) project.mk, for god's sake, these two python commands don't find the files requirements.txt and flash_build.py in the cd'ed directory. As a work-around, I call them manually from the commnd-line.
@cd $(BL60X_SDK_PATH)/image_conf;python3 -m pip install -r requirements.txt; python3 flash_build.py $(PROJECT_NAME) $(CONFIG_CHIP_NAME)
In the end, you call
/opt/src/bl_iot_sdk/customer_app/bl602_demo_event$ LD_LIBRARY_PATH=/emul/linux/lib64/ gmake CONFIG_CHIP_NAME=BL602 CONFIG_LINK_ROM=1 CONFIG_BLE_TP_SERVER=1
****** Please SET BL60X_SDK_PATH ******
****** Trying SDK PATH [/opt/src/bl_iot_sdk/customer_app/bl602_demo_event/../..]
use existing version.txt file
****** Please SET BL60X_SDK_PATH ******
****** Trying SDK PATH [/opt/src/bl_iot_sdk/customer_app/bl602_demo_event/../..]
use existing version.txt file
CC build_out/aws-iot/aws-iot-device-sdk-embedded-C/external_libs/jsmn/jsmn.o
CC build_out/aws-iot/aws-iot-device-sdk-embedded-C/src/aws_iot_jobs_interface.o
CC build_out/aws-iot/aws-iot-device-sdk-embedded-C/src/aws_iot_jobs_json.o
CC build_out/aws-iot/aws-iot-device-sdk-embedded-C/src/aws_iot_jobs_topics.o
CC build_out/aws-iot/aws-iot-device-sdk-embedded-C/src/aws_iot_jobs_types.o
CC build_out/aws-iot/aws-iot-device-sdk-embedded-C/src/aws_iot_json_utils.o
CC build_out/aws-iot/aws-iot-device-sdk-embedded-C/src/aws_iot_mqtt_client.o
CC build_out/aws-iot/aws-iot-device-sdk-embedded-C/src/aws_iot_mqtt_client_common_internal.o
CC build_out/aws-iot/aws-iot-device-sdk-embedded-C/src/aws_iot_mqtt_client_connect.o
CC build_out/aws-iot/aws-iot-device-sdk-embedded-C/src/aws_iot_mqtt_client_publish.o
CC build_out/aws-iot/aws-iot-device-sdk-embedded-C/src/aws_iot_mqtt_client_subscribe.o
CC build_out/aws-iot/aws-iot-device-sdk-embedded-C/src/aws_iot_mqtt_client_unsubscribe.o
CC build_out/aws-iot/aws-iot-device-sdk-embedded-C/src/aws_iot_mqtt_client_yield.o
CC build_out/aws-iot/aws-iot-device-sdk-embedded-C/src/aws_iot_shadow.o
CC build_out/aws-iot/aws-iot-device-sdk-embedded-C/src/aws_iot_shadow_actions.o
CC build_out/aws-iot/aws-iot-device-sdk-embedded-C/src/aws_iot_shadow_json.o
CC build_out/aws-iot/aws-iot-device-sdk-embedded-C/src/aws_iot_shadow_records.o
CC build_out/aws-iot/port/network_mbedtls_wrapper.o
CC build_out/aws-iot/port/threads_freertos.o
CC build_out/aws-iot/port/timer.o
AR build_out/aws-iot/libaws-iot.a
AS build_out/bl602/evb/src/boot/gcc/entry.o
AS build_out/bl602/evb/src/boot/gcc/start.o
CC build_out/bl602/evb/src/debug.o
CC build_out/bl602/evb/src/sscanf.o
CC build_out/bl602/evb/src/vsscanf.o
CC build_out/bl602/evb/src/strntoumax.o
AR build_out/bl602/libbl602.a
CC build_out/bl602_demo_event/aws_iot_main.o
CC build_out/bl602_demo_event/ble.o
CC build_out/bl602_demo_event/coex_debug.o
CC build_out/bl602_demo_event/main.o
CC build_out/bl602_demo_event/wifi_prov_api.o
AR build_out/bl602_demo_event/libbl602_demo_event.a
CC build_out/bl602_std/bl602_std/StdDriver/Src/bl602_uart.o
CC build_out/bl602_std/bl602_std/StdDriver/Src/bl602_adc.o
CC build_out/bl602_std/bl602_std/StdDriver/Src/bl602_sec_eng.o
CC build_out/bl602_std/bl602_std/StdDriver/Src/bl602_dma.o
CC build_out/bl602_std/bl602_std/StdDriver/Src/bl602_common.o
CC build_out/bl602_std/bl602_std/StdDriver/Src/bl602_glb.o
CC build_out/bl602_std/bl602_std/StdDriver/Src/bl602_hbn.o
CC build_out/bl602_std/bl602_std/StdDriver/Src/bl602_timer.o
CC build_out/bl602_std/bl602_std/StdDriver/Src/bl602_aon.o
CC build_out/bl602_std/bl602_std/StdDriver/Src/bl602_pds.o
CC build_out/bl602_std/bl602_std/StdDriver/Src/bl602_pwm.o
CC build_out/bl602_std/bl602_std/StdDriver/Src/bl602_l1c.o
CC build_out/bl602_std/bl602_std/StdDriver/Src/bl602_ef_ctrl.o
CC build_out/bl602_std/bl602_std/StdDriver/Src/bl602_mfg_efuse.o
CC build_out/bl602_std/bl602_std/StdDriver/Src/bl602_mfg_flash.o
CC build_out/bl602_std/bl602_std/StdDriver/Src/bl602_mfg_media.o
CC build_out/bl602_std/bl602_std/StdDriver/Src/bl602_dac.o
CC build_out/bl602_std/bl602_std/StdDriver/Src/bl602_ir.o
CC build_out/bl602_std/bl602_std/StdDriver/Src/bl602_spi.o
CC build_out/bl602_std/bl602_std/StdDriver/Src/bl602_i2c.o
CC build_out/bl602_std/bl602_std/Common/soft_crc/softcrc.o
CC build_out/bl602_std/bl602_std/Common/xz/xz_crc32.o
CC build_out/bl602_std/bl602_std/Common/xz/xz_dec_lzma2.o
CC build_out/bl602_std/bl602_std/Common/xz/xz_dec_stream.o
CC build_out/bl602_std/bl602_std/Common/xz/xz_decompress.o
CC build_out/bl602_std/bl602_std/Common/xz/xz_port.o
CC build_out/bl602_std/bl602_std/Common/cipher_suite/src/bflb_crypt.o
CC build_out/bl602_std/bl602_std/Common/cipher_suite/src/bflb_hash.o
CC build_out/bl602_std/bl602_std/Common/cipher_suite/src/bflb_dsa.o
CC build_out/bl602_std/bl602_std/Common/cipher_suite/src/bflb_ecdsa.o
CC build_out/bl602_std/bl602_std/Common/platform_print/platform_device.o
CC build_out/bl602_std/bl602_std/Common/platform_print/platform_gpio.o
CC build_out/bl602_std/bl602_std/Common/ring_buffer/ring_buffer.o
CC build_out/bl602_std/bl602_std/RISCV/Device/Bouffalo/BL602/Startup/interrupt.o
CC build_out/bl602_std/bl602_std/StdDriver/Src/bl602_romapi.o
CC build_out/bl602_std/bl602_std/StdDriver/Src/bl602_sflash_ext.o
CC build_out/bl602_std/bl602_std/StdDriver/Src/bl602_sf_cfg_ext.o
AR build_out/bl602_std/libbl602_std.a
CC build_out/bl602_wifidrv/bl60x_wifi_driver/ipc_host.o
CC build_out/bl602_wifidrv/bl60x_wifi_driver/os_hal.o
CC build_out/bl602_wifidrv/bl60x_wifi_driver/bl_apis.o
CC build_out/bl602_wifidrv/bl60x_wifi_driver/bl_cmds.o
CC build_out/bl602_wifidrv/bl60x_wifi_driver/bl_irqs.o
CC build_out/bl602_wifidrv/bl60x_wifi_driver/bl_main.o
CC build_out/bl602_wifidrv/bl60x_wifi_driver/bl_mod_params.o
CC build_out/bl602_wifidrv/bl60x_wifi_driver/bl_msg_rx.o
CC build_out/bl602_wifidrv/bl60x_wifi_driver/bl_msg_tx.o
CC build_out/bl602_wifidrv/bl60x_wifi_driver/bl_platform.o
CC build_out/bl602_wifidrv/bl60x_wifi_driver/bl_rx.o
CC build_out/bl602_wifidrv/bl60x_wifi_driver/bl_strs.o
CC build_out/bl602_wifidrv/bl60x_wifi_driver/bl_tx.o
CC build_out/bl602_wifidrv/bl60x_wifi_driver/bl_utils.o
CC build_out/bl602_wifidrv/bl60x_wifi_driver/stateMachine.o
CC build_out/bl602_wifidrv/bl60x_wifi_driver/wifi.o
CC build_out/bl602_wifidrv/bl60x_wifi_driver/wifi_mgmr.o
CC build_out/bl602_wifidrv/bl60x_wifi_driver/wifi_mgmr_api.o
CC build_out/bl602_wifidrv/bl60x_wifi_driver/wifi_mgmr_cli.o
CC build_out/bl602_wifidrv/bl60x_wifi_driver/wifi_mgmr_ext.o
CC build_out/bl602_wifidrv/bl60x_wifi_driver/wifi_mgmr_profile.o
CC build_out/bl602_wifidrv/bl60x_wifi_driver/wifi_netif.o
CC build_out/bl602_wifidrv/bl60x_wifi_driver/wifi_mgmr_event.o
AR build_out/bl602_wifidrv/libbl602_wifidrv.a
CC build_out/blestack/src/port/bl_port.o
CC build_out/blestack/src/common/atomic_c.o
CC build_out/blestack/src/common/buf.o
CC build_out/blestack/src/common/log.o
CC build_out/blestack/src/common/poll.o
CC build_out/blestack/src/common/rpa.o
CC build_out/blestack/src/common/work_q.o
CC build_out/blestack/src/common/utils.o
CC build_out/blestack/src/common/dec.o
CC build_out/blestack/src/common/dummy.o
CC build_out/blestack/src/common/tinycrypt/source/aes_decrypt.o
CC build_out/blestack/src/common/tinycrypt/source/aes_encrypt.o
CC build_out/blestack/src/common/tinycrypt/source/cbc_mode.o
CC build_out/blestack/src/common/tinycrypt/source/ccm_mode.o
CC build_out/blestack/src/common/tinycrypt/source/cmac_mode.o
CC build_out/blestack/src/common/tinycrypt/source/ctr_mode.o
CC build_out/blestack/src/common/tinycrypt/source/ctr_prng.o
CC build_out/blestack/src/common/tinycrypt/source/ecc.o
CC build_out/blestack/src/common/tinycrypt/source/ecc_dh.o
CC build_out/blestack/src/common/tinycrypt/source/ecc_dsa.o
CC build_out/blestack/src/common/tinycrypt/source/ecc_platform_specific.o
CC build_out/blestack/src/common/tinycrypt/source/hmac.o
CC build_out/blestack/src/common/tinycrypt/source/hmac_prng.o
CC build_out/blestack/src/common/tinycrypt/source/sha256.o
CC build_out/blestack/src/common/tinycrypt/source/utils.o
CC build_out/blestack/src/bl_hci_wrapper/bl_hci_wrapper.o
CC build_out/blestack/src/hci_onchip/hci_driver.o
CC build_out/blestack/src/host/att.o
CC build_out/blestack/src/host/conn.o
CC build_out/blestack/src/host/crypto.o
CC build_out/blestack/src/host/gatt.o
CC build_out/blestack/src/host/hci_core.o
CC build_out/blestack/src/host/hci_ecc.o
CC build_out/blestack/src/host/l2cap.o
CC build_out/blestack/src/host/uuid.o
CC build_out/blestack/src/host/smp.o
CC build_out/blestack/src/host/keys.o
CC build_out/blestack/src/host/settings.o
CC build_out/blestack/src/cli_cmds/ble_cli_cmds.o
CC build_out/blestack/src/cli_cmds/pts_cli_cmds.o
CC build_out/blestack/src/services/ble_tp_svc.o
AR build_out/blestack/libblestack.a
CC build_out/blfdt/src/fdt.o
CC build_out/blfdt/src/fdt_ro.o
CC build_out/blfdt/src/fdt_wip.o
CC build_out/blfdt/src/fdt_sw.o
CC build_out/blfdt/src/fdt_rw.o
CC build_out/blfdt/src/fdt_strerror.o
CC build_out/blfdt/src/fdt_empty_tree.o
CC build_out/blfdt/src/fdt_addresses.o
CC build_out/blfdt/src/fdt_overlay.o
CC build_out/blfdt/test/tc_blfdt_dump.o
CC build_out/blfdt/test/tc_blfdt_wifi.o
CC build_out/blfdt/test/blfdt_cli_test.o
AR build_out/blfdt/libblfdt.a
CC build_out/blmtd/bl_mtd.o
AR build_out/blmtd/libblmtd.a
CC build_out/blog/blog.o
AR build_out/blog/libblog.a
CC build_out/blog_testc/blog_testc.o
CC build_out/blog_testc/blog_testc1_diable.o
CC build_out/blog_testc/blog_testc2_full.o
CC build_out/blog_testc/blog_testc3_nopri.o
CC build_out/blog_testc/blog_testc4_onlypri.o
AR build_out/blog_testc/libblog_testc.a
CC build_out/bloop/src/bloop_base.o
CC build_out/bloop/src/bloop_handler_sys.o
AR build_out/bloop/libbloop.a
CC build_out/blota/bl_sys_ota.o
CC build_out/blota/bl_sys_ota_cli.o
AR build_out/blota/libblota.a
CC build_out/bltime/bl_sys_time.o
CC build_out/bltime/bl_sys_time_cli.o
AR build_out/bltime/libbltime.a
CC build_out/cjson/cJSON.o
AR build_out/cjson/libcjson.a
CC build_out/cli/cli/cli.o
AR build_out/cli/libcli.a
CC build_out/dns_server/src/dns_server.o
CC build_out/dns_server/src/web_server.o
AR build_out/dns_server/libdns_server.a
CC build_out/easyflash4/src/easyflash.o
CC build_out/easyflash4/src/ef_env.o
CC build_out/easyflash4/src/ef_env_legacy_wl.o
CC build_out/easyflash4/src/ef_env_legacy.o
CC build_out/easyflash4/src/ef_port.o
CC build_out/easyflash4/src/ef_utils.o
CC build_out/easyflash4/src/easyflash_cli.o
AR build_out/easyflash4/libeasyflash4.a
CC build_out/freertos_riscv_ram/event_groups.o
CC build_out/freertos_riscv_ram/list.o
CC build_out/freertos_riscv_ram/queue.o
CC build_out/freertos_riscv_ram/stream_buffer.o
CC build_out/freertos_riscv_ram/tasks.o
CC build_out/freertos_riscv_ram/timers.o
CC build_out/freertos_riscv_ram/misaligned/misaligned_ldst.o
AS build_out/freertos_riscv_ram/misaligned/fp_asm.o
CC build_out/freertos_riscv_ram/panic/panic_c.o
CC build_out/freertos_riscv_ram/portable/GCC/RISC-V/port.o
AS build_out/freertos_riscv_ram/portable/GCC/RISC-V/portASM.o
CC build_out/freertos_riscv_ram/portable/MemMang/heap_5.o
AR build_out/freertos_riscv_ram/libfreertos_riscv_ram.a
CC build_out/hal_drv/bl602_hal/bl_uart.o
CC build_out/hal_drv/bl602_hal/bl_chip.o
CC build_out/hal_drv/bl602_hal/bl_cks.o
CC build_out/hal_drv/bl602_hal/bl_sys.o
CC build_out/hal_drv/bl602_hal/bl_sys_cli.o
CC build_out/hal_drv/bl602_hal/bl_dma.o
CC build_out/hal_drv/bl602_hal/bl_irq.o
CC build_out/hal_drv/bl602_hal/bl_sec.o
CC build_out/hal_drv/bl602_hal/bl_boot2.o
CC build_out/hal_drv/bl602_hal/bl_timer.o
CC build_out/hal_drv/bl602_hal/bl_gpio.o
CC build_out/hal_drv/bl602_hal/bl_gpio_cli.o
CC build_out/hal_drv/bl602_hal/bl_hbn.o
CC build_out/hal_drv/bl602_hal/bl_efuse.o
CC build_out/hal_drv/bl602_hal/bl_flash.o
CC build_out/hal_drv/bl602_hal/bl_pwm.o
CC build_out/hal_drv/bl602_hal/bl_sec_aes.o
CC build_out/hal_drv/bl602_hal/bl_sec_sha.o
CC build_out/hal_drv/bl602_hal/bl_wifi.o
CC build_out/hal_drv/bl602_hal/bl_wdt.o
CC build_out/hal_drv/bl602_hal/bl_wdt_cli.o
CC build_out/hal_drv/bl602_hal/hal_uart.o
CC build_out/hal_drv/bl602_hal/hal_gpio.o
CC build_out/hal_drv/bl602_hal/hal_hbn.o
CC build_out/hal_drv/bl602_hal/hal_pwm.o
CC build_out/hal_drv/bl602_hal/hal_boot2.o
CC build_out/hal_drv/bl602_hal/hal_sys.o
CC build_out/hal_drv/bl602_hal/hal_board.o
CC build_out/hal_drv/bl602_hal/bl_adc.o
CC build_out/hal_drv/bl602_hal/hal_ir.o
CC build_out/hal_drv/bl602_hal/bl_ir.o
CC build_out/hal_drv/bl602_hal/bl_dac_audio.o
CC build_out/hal_drv/bl602_hal/bl_i2c.o
CC build_out/hal_drv/bl602_hal/hal_i2c.o
CC build_out/hal_drv/bl602_hal/hal_button.o
CC build_out/hal_drv/bl602_hal/hal_hbnram.o
CC build_out/hal_drv/bl602_hal/bl_pds.o
CC build_out/hal_drv/bl602_hal/hal_pds.o
CC build_out/hal_drv/bl602_hal/bl_rtc.o
CC build_out/hal_drv/bl602_hal/hal_hwtimer.o
CC build_out/hal_drv/bl602_hal/hal_spi.o
CC build_out/hal_drv/bl602_hal/hal_adc.o
CC build_out/hal_drv/bl602_hal/hal_wifi.o
AR build_out/hal_drv/libhal_drv.a
CC build_out/httpc/http_client.o
AR build_out/httpc/libhttpc.a
CC build_out/looprt/src/looprt.o
CC build_out/looprt/src/looprt_test_cli.o
AR build_out/looprt/liblooprt.a
CC build_out/loopset/src/loopset_led.o
CC build_out/loopset/src/loopset_led_cli.o
CC build_out/loopset/src/loopset_ir.o
CC build_out/loopset/src/loopset_pwm.o
CC build_out/loopset/src/loopset_i2c.o
AR build_out/loopset/libloopset.a
CC build_out/lwip/lwip-port/FreeRTOS/ethernetif.o
CC build_out/lwip/lwip-port/FreeRTOS/sys_arch.o
CC build_out/lwip/src/api/api_lib.o
CC build_out/lwip/src/api/api_msg.o
CC build_out/lwip/src/api/err.o
CC build_out/lwip/src/api/if_api.o
CC build_out/lwip/src/api/netbuf.o
CC build_out/lwip/src/api/netdb.o
CC build_out/lwip/src/api/netifapi.o
CC build_out/lwip/src/api/sockets.o
CC build_out/lwip/src/api/tcpip.o
CC build_out/lwip/src/apps/altcp_tls/altcp_tls_mbedtls.o
CC build_out/lwip/src/apps/altcp_tls/altcp_tls_mbedtls_mem.o
CC build_out/lwip/src/core/altcp.o
CC build_out/lwip/src/core/altcp_alloc.o
CC build_out/lwip/src/core/altcp_tcp.o
CC build_out/lwip/src/core/def.o
CC build_out/lwip/src/core/dns.o
CC build_out/lwip/src/core/inet_chksum.o
CC build_out/lwip/src/core/init.o
CC build_out/lwip/src/core/ip.o
CC build_out/lwip/src/core/ipv4/autoip.o
CC build_out/lwip/src/core/ipv4/dhcp.o
CC build_out/lwip/src/core/ipv4/etharp.o
CC build_out/lwip/src/core/ipv4/icmp.o
CC build_out/lwip/src/core/ipv4/igmp.o
CC build_out/lwip/src/core/ipv4/ip4.o
CC build_out/lwip/src/core/ipv4/ip4_addr.o
CC build_out/lwip/src/core/ipv4/ip4_frag.o
CC build_out/lwip/src/core/mem.o
CC build_out/lwip/src/core/memp.o
CC build_out/lwip/src/core/netif.o
CC build_out/lwip/src/core/pbuf.o
CC build_out/lwip/src/core/raw.o
CC build_out/lwip/src/core/stats.o
CC build_out/lwip/src/core/sys.o
CC build_out/lwip/src/core/tcp.o
CC build_out/lwip/src/core/tcp_in.o
CC build_out/lwip/src/core/tcp_out.o
CC build_out/lwip/src/core/timeouts.o
CC build_out/lwip/src/core/udp.o
CC build_out/lwip/src/netif/bridgeif.o
CC build_out/lwip/src/netif/bridgeif_fdb.o
CC build_out/lwip/src/netif/ethernet.o
CC build_out/lwip/src/netif/lowpan6.o
CC build_out/lwip/src/netif/lowpan6_ble.o
CC build_out/lwip/src/netif/lowpan6_common.o
CC build_out/lwip/src/netif/slipif.o
CC build_out/lwip/src/netif/zepif.o
AR build_out/lwip/liblwip.a
CC build_out/lwip_altcp_tls_mbedtls/src/altcp_tls_mbedtls.o
CC build_out/lwip_altcp_tls_mbedtls/src/altcp_tls_mbedtls_mem.o
AR build_out/lwip_altcp_tls_mbedtls/liblwip_altcp_tls_mbedtls.a
CC build_out/lwip_dhcpd/dhcp_server_raw.o
AR build_out/lwip_dhcpd/liblwip_dhcpd.a
CC build_out/mbedtls/src/aes.o
CC build_out/mbedtls/src/aesni.o
CC build_out/mbedtls/src/arc4.o
CC build_out/mbedtls/src/asn1write.o
CC build_out/mbedtls/src/asn1parse.o
CC build_out/mbedtls/src/base64.o
CC build_out/mbedtls/src/bignum.o
CC build_out/mbedtls/src/blowfish.o
CC build_out/mbedtls/src/camellia.o
CC build_out/mbedtls/src/ccm.o
CC build_out/mbedtls/src/cipher.o
CC build_out/mbedtls/src/cipher_wrap.o
CC build_out/mbedtls/src/cmac.o
CC build_out/mbedtls/src/ctr_drbg.o
CC build_out/mbedtls/src/debug.o
CC build_out/mbedtls/src/des.o
CC build_out/mbedtls/src/dhm.o
CC build_out/mbedtls/src/ecdh.o
CC build_out/mbedtls/src/ecdsa.o
CC build_out/mbedtls/src/ecjpake.o
CC build_out/mbedtls/src/ecp.o
CC build_out/mbedtls/src/ecp_curves.o
CC build_out/mbedtls/src/entropy.o
CC build_out/mbedtls/src/entropy_poll.o
CC build_out/mbedtls/src/error.o
CC build_out/mbedtls/src/gcm.o
CC build_out/mbedtls/src/havege.o
CC build_out/mbedtls/src/hmac_drbg.o
CC build_out/mbedtls/src/md2.o
CC build_out/mbedtls/src/md4.o
CC build_out/mbedtls/src/md.o
CC build_out/mbedtls/src/md_wrap.o
CC build_out/mbedtls/src/memory_buffer_alloc.o
CC build_out/mbedtls/src/net_sockets.o
CC build_out/mbedtls/src/oid.o
CC build_out/mbedtls/src/padlock.o
CC build_out/mbedtls/src/pem.o
CC build_out/mbedtls/src/pk.o
CC build_out/mbedtls/src/pkcs11.o
CC build_out/mbedtls/src/pkcs12.o
CC build_out/mbedtls/src/pkcs5.o
CC build_out/mbedtls/src/pkparse.o
CC build_out/mbedtls/src/pk_wrap.o
CC build_out/mbedtls/src/pkwrite.o
CC build_out/mbedtls/src/platform.o
CC build_out/mbedtls/src/ripemd160.o
CC build_out/mbedtls/src/rsa.o
CC build_out/mbedtls/src/md5.o
CC build_out/mbedtls/src/sha1.o
CC build_out/mbedtls/src/sha256.o
CC build_out/mbedtls/src/sha512.o
CC build_out/mbedtls/src/ssl_cache.o
CC build_out/mbedtls/src/ssl_ciphersuites.o
CC build_out/mbedtls/src/ssl_cli.o
CC build_out/mbedtls/src/ssl_cookie.o
CC build_out/mbedtls/src/ssl_srv.o
CC build_out/mbedtls/src/ssl_ticket.o
CC build_out/mbedtls/src/ssl_tls.o
CC build_out/mbedtls/src/timing.o
CC build_out/mbedtls/src/threading.o
CC build_out/mbedtls/src/version.o
CC build_out/mbedtls/src/version_features.o
CC build_out/mbedtls/src/x509.o
CC build_out/mbedtls/src/x509_create.o
CC build_out/mbedtls/src/x509_crl.o
CC build_out/mbedtls/src/x509_crt.o
CC build_out/mbedtls/src/x509_csr.o
CC build_out/mbedtls/src/x509write_crt.o
CC build_out/mbedtls/src/x509write_csr.o
CC build_out/mbedtls/src/xtea.o
CC build_out/mbedtls/src/mbedtls_alt.o
CC build_out/mbedtls/src/mbedtls_net.o
CC build_out/mbedtls/src/mbedtls_ssl.o
CC build_out/mbedtls/src/mycalloc.o
AR build_out/mbedtls/libmbedtls.a
CC build_out/netutils/tcpclient/tcpclient.o
CC build_out/netutils/tcpserver/tcpserver.o
CC build_out/netutils/iperf/iperf.o
CC build_out/netutils/netstat/netstat.o
CC build_out/netutils/ping/ping.o
AR build_out/netutils/libnetutils.a
CC build_out/romfs/src/bl_romfs.o
AR build_out/romfs/libromfs.a
CC build_out/sntp/sntp.o
CC build_out/sntp/sntp_cli.o
AR build_out/sntp/libsntp.a
CC build_out/utils/src/utils_hex.o
CC build_out/utils/src/utils_crc.o
CC build_out/utils/src/utils_sha256.o
CC build_out/utils/src/utils_fec.o
CC build_out/utils/src/utils_log.o
CC build_out/utils/src/utils_dns.o
CC build_out/utils/src/utils_list.o
CC build_out/utils/src/utils_rbtree.o
CC build_out/utils/src/utils_hexdump.o
CC build_out/utils/src/utils_time.o
CC build_out/utils/src/utils_notifier.o
CC build_out/utils/src/utils_getopt.o
CC build_out/utils/src/utils_string.o
CC build_out/utils/src/utils_hmac_sha1_fast.o
CC build_out/utils/src/utils_psk_fast.o
CC build_out/utils/src/utils_memp.o
CC build_out/utils/src/utils_tlv_bl.o
AR build_out/utils/libutils.a
CC build_out/vfs/src/vfs.o
CC build_out/vfs/src/vfs_file.o
CC build_out/vfs/src/vfs_inode.o
CC build_out/vfs/src/vfs_register.o
CC build_out/vfs/device/vfs_uart.o
CC build_out/vfs/device/vfs_adc.o
CC build_out/vfs/device/vfs_spi.o
CC build_out/vfs/device/vfs_gpio.o
CC build_out/vfs/device/vfs_pwm.o
AR build_out/vfs/libvfs.a
CC build_out/yloop/src/yloop.o
CC build_out/yloop/src/select.o
CC build_out/yloop/src/aos_freertos.o
CC build_out/yloop/src/device.o
CC build_out/yloop/src/local_event.o
AR build_out/yloop/libyloop.a
LD build_out/bl602_demo_event.elf
Generating BIN File to /opt/src/bl_iot_sdk/customer_app/bl602_demo_event/build_out/bl602_demo_event.bin
Building Finish. To flash build output.
and then manually
/opt/src/bl_iot_sdk/customer_app/bl602_demo_event$ cd /opt/src/bl_iot_sdk/image_conf
/opt/src/bl_iot_sdk/image_conf$ python3 -m pip install -r requirements.txt
Defaulting to user installation because normal site-packages is not writeable
Requirement already satisfied: fdt>=0.2.0 in /home/me/.local/lib/python3.7/site-packages (from -r requirements.txt (line 2)) (0.2.0)
Requirement already satisfied: pycryptodomex>=3.9.8 in /home/me/.local/lib/python3.7/site-packages (from -r requirements.txt (line 3)) (3.9.8)
Requirement already satisfied: toml>=0.10.2 in /home/me/.local/lib/python3.7/site-packages (from -r requirements.txt (line 4)) (0.10.2)
Requirement already satisfied: configobj>=5.0.6 in /home/me/.local/lib/python3.7/site-packages (from -r requirements.txt (line 5)) (5.0.6)
Requirement already satisfied: six in /home/me/.local/lib/python3.7/site-packages (from configobj>=5.0.6->-r requirements.txt (line 5)) (1.15.0)
dell:/opt/src/bl_iot_sdk/image_conf$ python3 flash_build.py bl602_demo_event BL602
========= chip flash id: c84015 =========
/opt/src/bl_iot_sdk/image_conf/bl602/flash_select/GD25Q16E_c84015.conf
Generating BIN File to /opt/src/bl_iot_sdk/customer_app/bl602_demo_event/build_out/ota/dts40M_pt2M_boot2debug_c84015/FW_OTA.bin
Generating BIN File to /opt/src/bl_iot_sdk/customer_app/bl602_demo_event/build_out/ota/dts40M_pt2M_boot2debug_c84015/FW_OTA.bin.ota
Generating BIN File to /opt/src/bl_iot_sdk/customer_app/bl602_demo_event/build_out/ota/dts40M_pt2M_boot2debug_c84015/FW_OTA.bin.xz
Generating BIN File to /opt/src/bl_iot_sdk/customer_app/bl602_demo_event/build_out/ota/dts40M_pt2M_boot2debug_c84015/FW_OTA.bin.xz.ota
Generating BIN File to /opt/src/bl_iot_sdk/customer_app/bl602_demo_event/build_out/whole_dts40M_pt2M_boot2debug_c84015.bin
I'm not calling this a fix, but here's a way to get the project building on M1-equipped Macs. I don't understand Python details enough to comment much beyond being an observer.
Homebrew doesn't support M1. That's easy enough work with and is documented (though evolving) on brew's own site.
If you just set BL_CPU and let a build rip, it crashes when it mixes native (host) compiler flags with the cross compiler. You can see with the the -I ...Framework..., which is never ever going to work on RISCv-unknown-elf-gcc compiler. That seems to be run when trying to install some of the missing Python stuff. See https://pastebin.com/gXwxNNWT
The OS-provided Python doesn't seem to play nice. Install it from Homebrew. Remember to rehash so a which pip3 shows /usr/local/bin and not Xcode's from /usr/bin/.
The magic seems to be $ arch -x86_64 pip3 install configobj six pycryptodomex fdt toml.
This forces python parts to be installed in x86_64 mode - not arm64 and not RISC-v - which successfully installs. The top-level make then runs to completion.
I'll leave this here to help the next one to try. Hopefully that person is a Python person and can confirm how much of the above is actually necessary and enshrine it in the Makefiles or in the doc as appropriate.
Additionally, a "do nothing" build seems to be doing way too much. build_out/bl602_boot2 bl602_evb and bl602_std seems to be recompiling a few dozen files every time which means that the whole planet has to get relinked in each of the target builds. This means a successive make still burns 58 seconds. I don't know if all systems are doing this right now.
Hi folks,
Do you think it might be useful to spend some time to recover toolchain from source? I mean to be able to build exactly the same versions of tools like GCC, libc, etc. and adjust some configuration bits if needed. I did this kind of stuff for few boards lately (https://github.com/v3l0c1r4pt0r/cc-factory) and I think I might be able to do the same thing for BL602. For the mentioned boards this allowed me to link to existing binaries, but I didn't have any working toolchain in these cases. Here we have some. So let me know, what do you think? Is it worth to do it now? I can spend an evening or two on that.
Compiling on my ubuntu 20.04 fails.
It seems the components are compiled correctly, but the main is not compiled, nor found by the linker.
See the error below.
marco@Latitude-E6440:/media/marco/DATA/programming/riscv/bl_iot_sdk-master/customer_app/bl602_demo_wifi$ make use existing version.txt file LD build_out/bl602_demo_wifi.elf /media/marco/DATA/programming/riscv/bl_iot_sdk-master/toolchain/riscv/Linux/bin/../lib/gcc/riscv64-unknown-elf/8.3.0/../../../../riscv64-unknown-elf/bin/ld: /media/marco/DATA/programming/riscv/bl_iot_sdk-master/toolchain/riscv/Linux/bin/../lib/gcc/riscv64-unknown-elf/8.3.0/../../../../riscv64-unknown-elf/lib/rv64imafdc/lp64d/crt0.o: in function
.L0 ':
(.text+0x2e): undefined reference to main' collect2: error: ld returned 1 exit status make: *** [/media/marco/DATA/programming/riscv/bl_iot_sdk-master/make_scripts_riscv/project.mk:420: /media/marco/DATA/programming/riscv/bl_iot_sdk-master/customer_app/bl602_demo_wifi/build_out/bl602_demo_wifi.elf] Errore 1
If this is the correct schematic for the PineCone then you made the same mistake as the Rasberry Pi 4. Connected the two CC lines and only used one pulldown resistor. According to spec, you have to use two separate resistors. For more information see Benson Leung's post
Which files need reverse engineering?
Does the license on the blob permit reverse engineering and could any derived work be open sourced?
What information may be promoted to the README to aid everyone interested?
3a. What are all the components of this repository? How do they fit together? Build instructions? Links to external documentation for these devices or for general protocols in use?
IIUC the SDK includes example applications in customer_app
and common libraries in components
. Using drivers which interact with the problematic binary blob and/or the hardware directly.
Is there any reason the toolchain is old? GCC version 8.3 vs. >=10.1.
Is C the only acceptable language or may we write our code in Rust or any other systems suitable language?
What is the exact ISA target? I.e. rv32gc? rv32im[a]fc? Where are the custom extensions documented? I.e. the crypto coprocessor.
i already set sdk path:
export BL60X_SDK_PATH=/home/Administrator/bl_iot_sdk-master
export CONFIG_CHIP_NAME=BL602
BL60X_SDK_PATH is my work path
but compile show "/home/rjwang/work/bl_iot_sdk.release/components"
i had check mk file,but can't find any problem.
please help my deal with this problem,thx.
best wish
bl_iot_sdk/components/stage/blog/blog.c
Lines 272 to 275 in eba302d
I know this is a touchy topic, but I think it's a mistake to squash together the commits that make up a PR when merging that PR. Personally, I always split my changes up into logical commits, each with a relevant message. It's frustrating to see that work lost when a PR gets merged as one squashed commit and shows up to everyone else as just one big mess of changes in a single commit.
Furthermore, I'll often include small fixup commits (typo or formatting fixes), which aren't worth the overhead of their own PR, inside a larger, unrelated PR (see pine64/bl602-docs#5, for example). If the PR gets squashed, this is no longer a valid workflow since you end up with totally unrelated changes within the same commit.
Finally, squashing on merge breaks git branch -d
locally, since Git doesn't realize that the squashed commit in the main branch corresponds to the commits in my local feature branch. Obviously, I can pass -D
to force the deletion, but I quite like having the extra safety check that Git provides with -d
.
Hi, hope that this fork is still watched...
I installed all tools by following the steps in ./bl602-docs/Quickstart_Guide/Windows/Quickstart_Windows_msys.html
I entered the following commands:
export BL602_SDK_PATH=~/bl_iot_sdk
export CONFIG_CHIP_NAME=BL602
Next, I tried to compile customer_app/bl602_demo_event as described in chapter 3.3
cd ~/bl_iot_sdk/customer_app/bl602_demo_event
./genromap
and I got:
use existing version.mk file
CC build_out/aws-iot/aws-iot-device-sdk-embedded-C/external_libs/jsmn/jsmn.o
CC build_out/aws-iot/aws-iot-device-sdk-embedded-C/src/aws_iot_jobs_interface.o
CC build_out/aws-iot/aws-iot-device-sdk-embedded-C/src/aws_iot_jobs_json.o
CC build_out/aws-iot/aws-iot-device-sdk-embedded-C/src/aws_iot_jobs_topics.o
AS build_out/bl602/evb/src/boot/gcc/entry.o
AS build_out/bl602/evb/src/boot/gcc/start.o
CC build_out/aws-iot/aws-iot-device-sdk-embedded-C/src/aws_iot_jobs_types.o
CC build_out/bl602/evb/src/debug.o
CC build_out/aws-iot/aws-iot-device-sdk-embedded-C/src/aws_iot_json_utils.o
CC build_out/bl602/evb/src/strntoumax.o
CC build_out/bl602_demo_event/aws_iot_main.o
CC build_out/aws-iot/aws-iot-device-sdk-embedded-C/src/aws_iot_mqtt_client.o
CC build_out/bl602/bfl_main.o
CC build_out/bl602_demo_event/ble.o
CC build_out/bl602_demo_event/blsync_ble_app.o
CC build_out/bl602_demo_event/coex_debug.o
make[1]: *** [/home/Marcel/bl_iot_sdk/make_scripts_riscv/component_wrapper.mk:313: evb/src/boot/gcc/entry.o] Error 1
make[1]: *** Waiting for unfinished jobs....
CC build_out/bl602_os_adapter/bl602_os_adapter/bl602_os_hal.o
make[1]: *** [/home/Marcel/bl_iot_sdk/make_scripts_riscv/component_wrapper.mk:313: evb/src/boot/gcc/start.o] Error 1
make[1]: *** [/home/Marcel/bl_iot_sdk/make_scripts_riscv/component_wrapper.mk:313: aws-iot-device-sdk-embedded-C/src/aws_iot_jobs_interface.o] Error 1
make[1]: *** Waiting for unfinished jobs....
make[1]: *** [/home/Marcel/bl_iot_sdk/make_scripts_riscv/component_wrapper.mk:313: aws-iot-device-sdk-embedded-C/external_libs/jsmn/jsmn.o] Error 1
make[1]: *** [/home/Marcel/bl_iot_sdk/make_scripts_riscv/component_wrapper.mk:313: aws-iot-device-sdk-embedded-C/src/aws_iot_jobs_json.o] Error 1
make[1]: *** [/home/Marcel/bl_iot_sdk/make_scripts_riscv/component_wrapper.mk:312: aws_iot_main.o] Error 1
make[1]: *** Waiting for unfinished jobs....
make[1]: *** [/home/Marcel/bl_iot_sdk/make_scripts_riscv/component_wrapper.mk:313: evb/src/strntoumax.o] Error 1
make[1]: *** [/home/Marcel/bl_iot_sdk/make_scripts_riscv/component_wrapper.mk:313: aws-iot-device-sdk-embedded-C/src/aws_iot_jobs_topics.o] Error 1
make[1]: *** [/home/Marcel/bl_iot_sdk/make_scripts_riscv/component_wrapper.mk:313: evb/src/debug.o] Error 1
make[1]: *** [/home/Marcel/bl_iot_sdk/make_scripts_riscv/component_wrapper.mk:313: aws-iot-device-sdk-embedded-C/src/aws_iot_jobs_types.o] Error 1
make[1]: *** [/home/Marcel/bl_iot_sdk/make_scripts_riscv/component_wrapper.mk:313: aws-iot-device-sdk-embedded-C/src/aws_iot_json_utils.o] Error 1
CC build_out/bl602_std/bl602_std/StdDriver/Src/bl602_uart.o
make[1]: *** [/home/Marcel/bl_iot_sdk/make_scripts_riscv/component_wrapper.mk:313: bfl_main.o] Error 1
make[1]: *** [/home/Marcel/bl_iot_sdk/make_scripts_riscv/component_wrapper.mk:313: bl602_os_adapter/bl602_os_hal.o] Error 1
CC build_out/bl602_demo_event/main.o
make: *** [/home/Marcel/bl_iot_sdk/make_scripts_riscv/project.mk:562: component-bl602-build] Error 2
make: *** Waiting for unfinished jobs....
CC build_out/bl602_std/bl602_std/StdDriver/Src/bl602_adc.o
make: *** [/home/Marcel/bl_iot_sdk/make_scripts_riscv/project.mk:562: component-bl602_os_adapter-build] Error 2
make[1]: *** [/home/Marcel/bl_iot_sdk/make_scripts_riscv/component_wrapper.mk:313: aws-iot-device-sdk-embedded-C/src/aws_iot_mqtt_client.o] Error 1
CC build_out/bl602_std/bl602_std/StdDriver/Src/bl602_sec_eng.o
make: *** [/home/Marcel/bl_iot_sdk/make_scripts_riscv/project.mk:562: component-aws-iot-build] Error 2
CC build_out/bl602_std/bl602_std/StdDriver/Src/bl602_dma.o
CC build_out/blcrypto_suite/src/blcrypto_suite_bignum.o
make[1]: *** [/home/Marcel/bl_iot_sdk/make_scripts_riscv/component_wrapper.mk:313: ble.o] Error 1
CC build_out/blcrypto_suite/src/blcrypto_suite_ecp_curves.o
CC build_out/blcrypto_suite/src/blcrypto_suite_platform_util.o
CC build_out/blcrypto_suite/src/blcrypto_suite_ecp.o
make[1]: *** [/home/Marcel/bl_iot_sdk/make_scripts_riscv/component_wrapper.mk:313: coex_debug.o] Error 1
CC build_out/blcrypto_suite/src/blcrypto_suite_porting.o
CC build_out/bl602_std/bl602_std/StdDriver/Src/bl602_glb.o
CC build_out/bl602_std/bl602_std/StdDriver/Src/bl602_common.o
make[1]: *** [/home/Marcel/bl_iot_sdk/make_scripts_riscv/component_wrapper.mk:313: blsync_ble_app.o] Error 1
CC build_out/blcrypto_suite/src/blcrypto_suite_hacc.o
CC build_out/bl602_std/bl602_std/StdDriver/Src/bl602_hbn.o
make[1]: *** [/home/Marcel/bl_iot_sdk/make_scripts_riscv/component_wrapper.mk:313: bl602_std/StdDriver/Src/bl602_sec_eng.o] Error 1
make[1]: *** Waiting for unfinished jobs....
make[1]: *** [/home/Marcel/bl_iot_sdk/make_scripts_riscv/component_wrapper.mk:313: bl602_std/StdDriver/Src/bl602_adc.o] Error 1
CC build_out/bl602_std/bl602_std/StdDriver/Src/bl602_timer.o
CC build_out/bl602_std/bl602_std/StdDriver/Src/bl602_aon.o
make[1]: *** [/home/Marcel/bl_iot_sdk/make_scripts_riscv/component_wrapper.mk:313: bl602_std/StdDriver/Src/bl602_uart.o] Error 1
make[1]: *** [/home/Marcel/bl_iot_sdk/make_scripts_riscv/component_wrapper.mk:313: bl602_std/StdDriver/Src/bl602_dma.o] Error 1
make[1]: *** [/home/Marcel/bl_iot_sdk/make_scripts_riscv/component_wrapper.mk:313: src/blcrypto_suite_bignum.o] Error 1
make[1]: *** Waiting for unfinished jobs....
make[1]: *** [/home/Marcel/bl_iot_sdk/make_scripts_riscv/component_wrapper.mk:313: main.o] Error 1
make: *** [/home/Marcel/bl_iot_sdk/make_scripts_riscv/project.mk:562: component-bl602_demo_event-build] Error 2
make[1]: *** [/home/Marcel/bl_iot_sdk/make_scripts_riscv/component_wrapper.mk:313: src/blcrypto_suite_ecp.o] Error 1
make[1]: *** [/home/Marcel/bl_iot_sdk/make_scripts_riscv/component_wrapper.mk:313: bl602_std/StdDriver/Src/bl602_glb.o] Error 1
make[1]: *** [/home/Marcel/bl_iot_sdk/make_scripts_riscv/component_wrapper.mk:313: bl602_std/StdDriver/Src/bl602_common.o] Error 1
make[1]: *** [/home/Marcel/bl_iot_sdk/make_scripts_riscv/component_wrapper.mk:313: src/blcrypto_suite_ecp_curves.o] Error 1
make[1]: *** [/home/Marcel/bl_iot_sdk/make_scripts_riscv/component_wrapper.mk:313: src/blcrypto_suite_platform_util.o] Error 1
make[1]: *** [/home/Marcel/bl_iot_sdk/make_scripts_riscv/component_wrapper.mk:313: src/blcrypto_suite_hacc.o] Error 1
make[1]: *** [/home/Marcel/bl_iot_sdk/make_scripts_riscv/component_wrapper.mk:313: src/blcrypto_suite_porting.o] Error 1
make[1]: *** [/home/Marcel/bl_iot_sdk/make_scripts_riscv/component_wrapper.mk:313: bl602_std/StdDriver/Src/bl602_hbn.o] Error 1
make: *** [/home/Marcel/bl_iot_sdk/make_scripts_riscv/project.mk:562: component-blcrypto_suite-build] Error 2
make[1]: *** [/home/Marcel/bl_iot_sdk/make_scripts_riscv/component_wrapper.mk:313: bl602_std/StdDriver/Src/bl602_timer.o] Error 1
make[1]: *** [/home/Marcel/bl_iot_sdk/make_scripts_riscv/component_wrapper.mk:313: bl602_std/StdDriver/Src/bl602_aon.o] Error 1
make: *** [/home/Marcel/bl_iot_sdk/make_scripts_riscv/project.mk:562: component-bl602_std-build] Error 2
I guess, something is missing. Can someone help and give a hint?
Best Regards Marcel
Has anyone played with the sleep modes (Idle Power Saving Mode and Sleep Mode)?
I just received a board and I am looking to measure current (using a uCurrent) in the various modes.
There appears to be a Linux binary that's checked in and used during the build. This makes Macs unhappy. Should there be an OS-specific flash_build that is $PATHed or should it be using flash_build.by or something?
roberts-iMac7 customer_app % file ../../bl_iot_sdk/image_conf/flash_build
../../bl_iot_sdk/image_conf/flash_build: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32, BuildID[sha1]=4485007e1df54173663f148d5840c963a7e868ee, stripped
bl_iot_sdk/customer_app/sdk_app_dac/sdk_app_dac/dac_audio.c
Lines 211 to 213 in eba302d
If an example app is placed outside of default SDK location then linker script fails. It looks like the absolute paths are being used in script and it fails to locate the "eflash_loader_cfg.ini" file. (The SDK and CHIP environment variables are set)
Log error is mentioned below.
CC build_out/yloop/src/device.o
CC build_out/yloop/src/local_event.o
AR build_out/yloop/libyloop.a
LD build_out/sdk_app_cli.elf
Generating BIN File to /home/username/workspace/sdk_app_cli/build_out/sdk_app_cli.bin
Requirement already satisfied: fdt>=0.2.0 in /home/username/.local/lib/python3.8/site-packages (from -r /home/username/apps/bl_iot_sdk/image_conf/requirements.txt (line 2)) (0.3.0)
Requirement already satisfied: pycryptodomex>=3.9.8 in /home/username/.local/lib/python3.8/site-packages (from -r /home/username/apps/bl_iot_sdk/image_conf/requirements.txt (line 3)) (3.10.1)
Requirement already satisfied: toml>=0.10.2 in /home/username/.local/lib/python3.8/site-packages (from -r /home/username/apps/bl_iot_sdk/image_conf/requirements.txt (line 4)) (0.10.2)
Requirement already satisfied: configobj>=5.0.6 in /home/username/.local/lib/python3.8/site-packages (from -r /home/username/apps/bl_iot_sdk/image_conf/requirements.txt (line 5)) (5.0.6)
Requirement already satisfied: six in /usr/lib/python3/dist-packages (from configobj>=5.0.6->-r /home/username/apps/bl_iot_sdk/image_conf/requirements.txt (line 5)) (1.14.0)
Traceback (most recent call last):
File "flash_build.py", line 1397, in
shutil.copy(eflash_loader_cfg_org, eflash_loader_cfg)
File "/usr/lib/python3.8/shutil.py", line 415, in copy
copyfile(src, dst, follow_symlinks=follow_symlinks)
File "/usr/lib/python3.8/shutil.py", line 261, in copyfile
with open(src, 'rb') as fsrc, open(dst, 'wb') as fdst:
FileNotFoundError: [Errno 2] No such file or directory: '/home/username/apps/bl_iot_sdk/customer_app/sdk_app_cli/build_out/eflash_loader_cfg.ini'
make: *** [/home/username/apps/bl_iot_sdk//make_scripts_riscv/project.mk:195: all] Error 1
Snippet "Flash_build.py": line number 1389
if name == 'main':
abs_path = os.path.abspath('..')
app_path = os.path.join(abs_path, "customer_app", sys.argv[1])
demo_name = sys.argv[1]
chip_name = sys.argv[2].lower()
I try to understand the workflow. Eventually a high level overview should be added to README.rst.
Development:
Development is done an intel PC. Communication with the evaluation board is done over an USB-A to Micro-B cable connection.
There is no operating system - what runs is a binary blob like the ones generated in customer_app/. Make yourself familiar with how they are built.
Flashing over the USB connection is done with bl_iot_sdk/tools/flash_tool/BLFlashEnv.
FIXME: I grasp from the documention that we flash with bl_iot_sdk/tools/flash_tool/BLFlashEnv, but I don't have that program. Do you?
Execution on the just flashed program:
Restart the board and connect a serial port terminal over the same USB connection.
FIXME: is that correct? At least the gtkterm screenshot shows /dev/ttyUSB0.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.