导航

    全志在线开发者论坛

    • 注册
    • 登录
    • 搜索
    • 版块
    • 话题
    • 在线文档
    • 社区主页
    1. 主页
    2. HU_710774265
    H
    • 资料
    • 关注 0
    • 粉丝 0
    • 我的积分 662
    • 主题 6
    • 帖子 34
    • 最佳 6
    • 群组 0

    HU_710774265LV 4

    @HU_710774265

    662
    积分
    8
    声望
    10
    资料浏览
    34
    帖子
    0
    粉丝
    0
    关注
    注册时间 最后登录

    HU_710774265 取消关注 关注

    HU_710774265 发布的最佳帖子

    • 回复: hello 没有如约出现 怎么办?

      当我尝试修复libcopy.py后
      hb build -f
      ohos.mk 内容

      #
      # Rules for ohos library
      #
      
      OHOSSOURCE = -Wl,--whole-archive
      OHOSSOURCE += $(ROOT_PATH)/lib/ohos/libapp_hello.a
      OHOSSOURCE += $(ROOT_PATH)/lib/ohos/libapp_console.a
      OHOSSOURCE += $(ROOT_PATH)/lib/ohos/libapp_peripheral.a
      OHOSSOURCE += $(ROOT_PATH)/lib/ohos/libapp_WlanTest.a
      OHOSSOURCE += -Wl,--no-whole-archive
      
      OHOSSOURCE += -Wl,--start-group
      OHOSSOURCE += $(ROOT_PATH)/lib/ohos/libnative_file.a
      OHOSSOURCE += $(ROOT_PATH)/lib/ohos/libutils_kv_store.a
      OHOSSOURCE += $(ROOT_PATH)/lib/ohos/libohos_bt_gatt.a
      OHOSSOURCE += $(ROOT_PATH)/lib/ohos/libbroadcast.a
      OHOSSOURCE += $(ROOT_PATH)/lib/ohos/libarch.a
      OHOSSOURCE += $(ROOT_PATH)/lib/ohos/libhilog_lite_command.a
      OHOSSOURCE += $(ROOT_PATH)/lib/ohos/libwifiservice.a
      OHOSSOURCE += $(ROOT_PATH)/lib/ohos/libhal_iothardware.a
      OHOSSOURCE += $(ROOT_PATH)/lib/ohos/libsamgr_source.a
      OHOSSOURCE += $(ROOT_PATH)/lib/ohos/libtoken_static.a
      OHOSSOURCE += $(ROOT_PATH)/lib/ohos/libhal_sysparam.a
      OHOSSOURCE += $(ROOT_PATH)/lib/ohos/libdump_static.a
      OHOSSOURCE += $(ROOT_PATH)/lib/ohos/libcpup.a
      OHOSSOURCE += $(ROOT_PATH)/lib/ohos/libcmsis.a
      OHOSSOURCE += $(ROOT_PATH)/lib/ohos/libxr_wifi_adapter.a
      OHOSSOURCE += $(ROOT_PATH)/lib/ohos/libutils.a
      OHOSSOURCE += $(ROOT_PATH)/lib/ohos/libsamgr.a
      OHOSSOURCE += $(ROOT_PATH)/lib/ohos/libsysparam.a
      OHOSSOURCE += $(ROOT_PATH)/lib/ohos/libliteos_glue.a
      OHOSSOURCE += $(ROOT_PATH)/lib/ohos/libhichainsdk.a
      OHOSSOURCE += $(ROOT_PATH)/lib/ohos/libhievent_lite.a
      OHOSSOURCE += $(ROOT_PATH)/lib/ohos/libposix.a
      OHOSSOURCE += $(ROOT_PATH)/lib/ohos/libkal.a
      OHOSSOURCE += $(ROOT_PATH)/lib/ohos/libhal_file_static.a
      OHOSSOURCE += $(ROOT_PATH)/lib/ohos/libbacktrace.a
      OHOSSOURCE += $(ROOT_PATH)/lib/ohos/libkernel.a
      OHOSSOURCE += $(ROOT_PATH)/lib/ohos/libbootstrap.a
      OHOSSOURCE += $(ROOT_PATH)/lib/ohos/libhilog_lite.a
      OHOSSOURCE += $(ROOT_PATH)/lib/ohos/libsamgr_adapter.a
      OHOSSOURCE += $(ROOT_PATH)/lib/ohos/libsec.a
      OHOSSOURCE += $(ROOT_PATH)/lib/ohos/libexchook.a
      OHOSSOURCE += $(ROOT_PATH)/lib/ohos/libhiview_lite.a
      OHOSSOURCE += $(ROOT_PATH)/lib/ohos/libhal_token_static.a
      OHOSSOURCE += -Wl,--end-group
      #
      # end of file
      #
      

      日志

      [OHOS INFO] WARNING at the command-line "--args":1:420: Build argument has no effect.
      [OHOS INFO] ohos_build_compiler_specified="gcc" product_path="/home/make/xr806_openharmony/vendor/xradio/xr806" device_path="/home/make/xr806_openharmony/device/xradio/xr806/liteos_m" ohos_kernel_type="liteos_m" enable_ohos_kernel_liteos_m_fs = false enable_ohos_kernel_liteos_m_cppsupport = false disable_huks_binary = false disable_authenticate = false ohos_build_type="debug" ohos_build_time="1639355514891" ohos_build_datetime="2021-12-13 16:31:54" ohos_full_compile=true
      [OHOS INFO]                                                                                                                                                                                                                                                                                                                                                                                                                                    ^--------------------
      [OHOS INFO] The variable "ohos_build_datetime" was set as a build argument
      [OHOS INFO] but never appeared in a declare_args() block in any buildfile.
      [OHOS INFO] 
      [OHOS INFO] To view all possible args, run "gn args --list <out_dir>"
      [OHOS INFO] 
      [OHOS INFO] The build continued as if that argument was unspecified.
      [OHOS INFO] 
      [OHOS INFO] Done. Made 64 targets from 65 files in 356ms
      [OHOS INFO] [1/267] STAMP obj/applications/sample/wifi-iot/app/startup/startup.stamp
      [OHOS INFO] [2/267] STAMP obj/applications/sample/wifi-iot/app/app.stamp
      [OHOS INFO] [3/267] gcc cross compiler obj/base/hiviewdfx/hilog_lite/frameworks/mini/libhilog_lite.hiview_log_limit.o
      [OHOS INFO] [4/267] gcc cross compiler obj/base/hiviewdfx/hievent_lite/frameworks/libhievent_lite.hiview_event.o
      [OHOS INFO] [5/267] gcc cross compiler obj/base/hiviewdfx/hiview_lite/libhiview_lite.hiview_cache.o
      [OHOS INFO] [6/267] gcc cross compiler obj/base/hiviewdfx/hilog_lite/command/libhilog_lite_command.hilog_lite_command.o
      [OHOS INFO] [7/267] AR libs/libhilog_lite_command.a
      [OHOS INFO] [8/267] gcc cross compiler obj/base/hiviewdfx/hiview_lite/libhiview_lite.hiview_service.o
      [OHOS INFO] [9/267] gcc cross compiler obj/base/hiviewdfx/hilog_lite/frameworks/mini/libhilog_lite.hiview_log.o
      [OHOS INFO] [10/267] gcc cross compiler obj/base/security/deviceauth/frameworks/deviceauth_lite/source/key_agreement/libhichainsdk.key_agreement.o
      [OHOS INFO] [11/267] gcc cross compiler obj/base/hiviewdfx/hievent_lite/frameworks/libhievent_lite.hiview_output_event.o
      [OHOS INFO] [12/267] STAMP obj/base/startup/syspara_lite/frameworks/token/token_notes.stamp
      [OHOS INFO] [13/267] gcc cross compiler obj/base/hiviewdfx/hiview_lite/libhiview_lite.hiview_config.o
      [OHOS INFO] [14/267] STAMP obj/build/lite/ndk.stamp
      [OHOS INFO] [15/267] gcc cross compiler obj/base/hiviewdfx/hiview_lite/libhiview_lite.hiview_file.o
      [OHOS INFO] [16/267] gcc cross compiler obj/base/startup/syspara_lite/frameworks/token/src/token_impl_hal/libtoken_static.token.o
      [OHOS INFO] [17/267] gcc cross compiler obj/base/hiviewdfx/hiview_lite/libhiview_lite.hiview_util.o
      [OHOS INFO] [18/267] gcc cross compiler obj/base/startup/syspara_lite/frameworks/parameter/src/param_impl_hal/libsysparam.param_impl_hal.o
      [OHOS INFO] [19/267] AR libs/libhiview_lite.a
      [OHOS INFO] [20/267] AR libs/libhievent_lite.a
      [OHOS INFO] [21/267] gcc cross compiler obj/base/security/deviceauth/frameworks/deviceauth_lite/source/auth_info/libhichainsdk.add_auth_info_client.o
      [OHOS INFO] [22/267] gcc cross compiler obj/base/hiviewdfx/hilog_lite/frameworks/mini/libhilog_lite.hiview_output_log.o
      [OHOS INFO] [23/267] AR libs/libhilog_lite.a
      [OHOS INFO] [24/267] STAMP obj/base/hiviewdfx/hilog_lite/frameworks/mini/hilog_lite_ndk.stamp
      [OHOS INFO] [25/267] gcc cross compiler obj/base/startup/syspara_lite/frameworks/parameter/src/libsysparam.parameter_common.o
      [OHOS INFO] [26/267] gcc cross compiler obj/base/security/deviceauth/frameworks/deviceauth_lite/source/auth_info/libhichainsdk.add_auth_info.o
      [OHOS INFO] [27/267] gcc cross compiler obj/base/security/deviceauth/frameworks/deviceauth_lite/source/auth_info/libhichainsdk.auth_info.o
      [OHOS INFO] [28/267] gcc cross compiler obj/base/security/deviceauth/frameworks/deviceauth_lite/source/auth_info/libhichainsdk.remove_auth_info_client.o
      [OHOS INFO] [29/267] gcc cross compiler obj/base/security/deviceauth/frameworks/deviceauth_lite/source/auth_info/libhichainsdk.exchange_auth_info_client.o
      [OHOS INFO] [30/267] gcc cross compiler obj/base/security/deviceauth/frameworks/deviceauth_lite/source/auth_info/libhichainsdk.exchange_auth_info.o
      [OHOS INFO] [31/267] gcc cross compiler obj/base/security/deviceauth/frameworks/deviceauth_lite/source/json/libhichainsdk.commonutil.o
      [OHOS INFO] [32/267] gcc cross compiler obj/base/security/deviceauth/frameworks/deviceauth_lite/source/key_agreement/libhichainsdk.key_agreement_client.o
      [OHOS INFO] [33/267] gcc cross compiler obj/base/security/deviceauth/frameworks/deviceauth_lite/source/json/libhichainsdk.jsonutil.o
      [OHOS INFO] [34/267] gcc cross compiler obj/base/security/deviceauth/frameworks/deviceauth_lite/source/key_agreement/libhichainsdk.key_agreement_server.o
      [OHOS INFO] [35/267] gcc cross compiler obj/base/security/deviceauth/frameworks/deviceauth_lite/source/key_agreement/libhichainsdk.sec_clone_server.o
      [OHOS INFO] [36/267] gcc cross compiler obj/base/security/deviceauth/frameworks/deviceauth_lite/source/key_agreement/libhichainsdk.sts_client.o
      [OHOS INFO] [37/267] gcc cross compiler obj/base/security/deviceauth/frameworks/deviceauth_lite/source/key_agreement/libhichainsdk.pake_client.o
      [OHOS INFO] [38/267] gcc cross compiler obj/base/security/deviceauth/frameworks/deviceauth_lite/source/libhichainsdk.hichain.o
      [OHOS INFO] [39/267] gcc cross compiler obj/base/security/deviceauth/frameworks/deviceauth_lite/source/key_agreement/libhichainsdk.pake_server.o
      [OHOS INFO] [40/267] gcc cross compiler obj/base/security/deviceauth/frameworks/deviceauth_lite/source/struct/libhichainsdk.add_auth_info_request.o
      [OHOS INFO] [41/267] gcc cross compiler obj/base/security/deviceauth/frameworks/deviceauth_lite/source/log/libhichainsdk.log.o
      [OHOS INFO] [42/267] gcc cross compiler obj/base/security/deviceauth/frameworks/deviceauth_lite/source/schedule/libhichainsdk.build_object.o
      [OHOS INFO] [43/267] gcc cross compiler obj/base/security/deviceauth/frameworks/deviceauth_lite/source/struct/libhichainsdk.add_auth_info_data.o
      [OHOS INFO] [44/267] gcc cross compiler obj/base/security/deviceauth/frameworks/deviceauth_lite/source/struct/libhichainsdk.add_auth_info_response.o
      [OHOS INFO] [45/267] gcc cross compiler obj/base/security/deviceauth/frameworks/deviceauth_lite/source/huks_adapter/libhichainsdk.huks_adapter.o
      [OHOS INFO] [46/267] gcc cross compiler obj/base/security/deviceauth/frameworks/deviceauth_lite/source/key_agreement/libhichainsdk.sts_server.o
      [OHOS INFO] [47/267] gcc cross compiler obj/base/security/deviceauth/frameworks/deviceauth_lite/source/schedule/libhichainsdk.distribution.o
      [OHOS INFO] [48/267] gcc cross compiler obj/base/security/deviceauth/frameworks/deviceauth_lite/source/struct/libhichainsdk.auth_ack_response.o
      [OHOS INFO] [49/267] gcc cross compiler obj/base/security/deviceauth/frameworks/deviceauth_lite/source/struct/libhichainsdk.auth_ack_request.o
      [OHOS INFO] [50/267] gcc cross compiler obj/base/security/deviceauth/frameworks/deviceauth_lite/source/struct/libhichainsdk.auth_start_response.o
      [OHOS INFO] [51/267] gcc cross compiler obj/base/security/deviceauth/frameworks/deviceauth_lite/source/struct/libhichainsdk.exchange_auth_data.o
      [OHOS INFO] [52/267] gcc cross compiler obj/base/security/deviceauth/frameworks/deviceauth_lite/source/struct/libhichainsdk.auth_start_request.o
      [OHOS INFO] [53/267] gcc cross compiler obj/base/security/deviceauth/frameworks/deviceauth_lite/source/struct/libhichainsdk.inform_message.o
      [OHOS INFO] [54/267] gcc cross compiler obj/base/security/deviceauth/frameworks/deviceauth_lite/source/struct/libhichainsdk.exchange_request.o
      [OHOS INFO] [55/267] gcc cross compiler obj/base/security/deviceauth/frameworks/deviceauth_lite/source/struct/libhichainsdk.import_add_auth_data.o
      [OHOS INFO] [56/267] gcc cross compiler obj/base/security/deviceauth/frameworks/deviceauth_lite/source/struct/libhichainsdk.key_agreement_version.o
      [OHOS INFO] [57/267] gcc cross compiler obj/base/security/deviceauth/frameworks/deviceauth_lite/source/struct/libhichainsdk.exchange_response.o
      [OHOS INFO] [58/267] gcc cross compiler obj/base/security/deviceauth/frameworks/deviceauth_lite/source/struct/libhichainsdk.pake_client_confirm.o
      [OHOS INFO] [59/267] gcc cross compiler obj/base/security/deviceauth/frameworks/deviceauth_lite/source/struct/libhichainsdk.pake_request.o
      [OHOS INFO] [60/267] gcc cross compiler obj/base/security/deviceauth/frameworks/deviceauth_lite/source/struct/libhichainsdk.rmv_auth_info_data.o
      [OHOS INFO] [61/267] gcc cross compiler obj/base/security/deviceauth/frameworks/deviceauth_lite/source/struct/libhichainsdk.parsedata.o
      [OHOS INFO] [62/267] gcc cross compiler obj/base/security/deviceauth/frameworks/deviceauth_lite/source/struct/libhichainsdk.rmv_auth_info_request.o
      [OHOS INFO] [63/267] STAMP obj/base/security/huks/frameworks/huks_lite/huks_sdk.stamp
      [OHOS INFO] [64/267] gcc cross compiler obj/base/security/deviceauth/frameworks/deviceauth_lite/source/struct/libhichainsdk.pake_response.o
      [OHOS INFO] [65/267] gcc cross compiler obj/base/security/deviceauth/frameworks/deviceauth_lite/source/struct/libhichainsdk.pake_server_confirm.o
      [OHOS INFO] [66/267] gcc cross compiler obj/base/security/deviceauth/frameworks/deviceauth_lite/source/struct/libhichainsdk.rmv_auth_info_response.o
      [OHOS INFO] [67/267] gcc cross compiler obj/device/xradio/xr806/os/libliteos_glue.os_time.o
      [OHOS INFO] [68/267] gcc cross compiler obj/base/startup/bootstrap_lite/services/source/libbootstrap.bootstrap_service.o
      [OHOS INFO] [69/267] gcc cross compiler obj/base/security/deviceauth/frameworks/deviceauth_lite/source/struct/libhichainsdk.sec_clone_data.o
      [OHOS INFO] [70/267] gcc cross compiler obj/base/startup/bootstrap_lite/services/source/libbootstrap.system_init.o
      [OHOS INFO] [71/267] STAMP obj/device/xradio/xr806/xr806.stamp
      [OHOS INFO] [72/267] gcc cross compiler obj/device/xradio/xr806/os/libliteos_glue.os_thread.o
      [OHOS INFO] [73/267] AR libs/libhichainsdk.a
      [OHOS INFO] [74/267] AR libs/libbootstrap.a
      [OHOS INFO] [75/267] gcc cross compiler obj/device/xradio/xr806/os/libliteos_glue.os_timer.o
      [OHOS INFO] [76/267] STAMP obj/base/security/deviceauth/frameworks/deviceauth_lite/hichainsdk.stamp
      [OHOS INFO] [77/267] gcc cross compiler obj/device/xradio/xr806/adapter/hals/iot_hardware/wifiiot_lite/libhal_iothardware.iot_uart.o
      [OHOS INFO] [78/267] gcc cross compiler obj/device/xradio/xr806/adapter/hals/iot_hardware/wifiiot_lite/libhal_iothardware.lowpower.o
      [OHOS INFO] [79/267] gcc cross compiler obj/device/xradio/xr806/adapter/hals/iot_hardware/wifiiot_lite/libhal_iothardware.iot_watchdog.o
      [OHOS INFO] [80/267] gcc cross compiler obj/device/xradio/xr806/adapter/hals/iot_hardware/wifiiot_lite/libhal_iothardware.reset.o
      [OHOS INFO] [81/267] gcc cross compiler obj/device/xradio/xr806/adapter/console/src/libapp_console.cmd_hm_iot_flash.o
      [OHOS INFO] [82/267] gcc cross compiler obj/device/xradio/xr806/adapter/console/src/libapp_console.cmd_hm_iot_reset.o
      [OHOS INFO] [83/267] gcc cross compiler obj/device/xradio/xr806/adapter/console/src/libapp_console.cmd_hm_iot_lowpower.o
      [OHOS INFO] [84/267] gcc cross compiler obj/device/xradio/xr806/adapter/console/src/libapp_console.cmd_hm_iot_gpio.o
      [OHOS INFO] [85/267] gcc cross compiler obj/device/xradio/xr806/adapter/console/src/libapp_console.cmd_hm_iot_i2c.o
      [OHOS INFO] [86/267] gcc cross compiler obj/device/xradio/xr806/adapter/console/src/libapp_console.cmd_hm_iot_pwm.o
      [OHOS INFO] [87/267] gcc cross compiler obj/device/xradio/xr806/adapter/console/src/libapp_console.cmd_hm_iot_uart.o
      [OHOS INFO] [88/267] gcc cross compiler obj/device/xradio/xr806/adapter/console/src/libapp_console.cmd_hm_iot_watchdog.o
      [OHOS INFO] [89/267] gcc cross compiler obj/device/xradio/xr806/adapter/console/src/libapp_console.cmd_hm_mem.o
      [OHOS INFO] [90/267] gcc cross compiler obj/device/xradio/xr806/adapter/console/src/libapp_console.main.o
      [OHOS INFO] [91/267] gcc cross compiler obj/device/xradio/xr806/adapter/console/src/libapp_console.cmd_hm.o
      [OHOS INFO] [92/267] gcc cross compiler obj/device/xradio/xr806/adapter/console/src/libapp_console.command.o
      [OHOS INFO] [93/267] gcc cross compiler obj/device/xradio/xr806/adapter/console/src/libapp_console.cmd_hm_net_ap.o
      [OHOS INFO] [94/267] gcc cross compiler obj/device/xradio/xr806/adapter/console/src/libapp_console.cmd_hm_net_sta.o
      [OHOS INFO] [95/267] AR libs/libapp_console.a
      [OHOS INFO] [96/267] gcc cross compiler obj/device/xradio/xr806/adapter/hals/communication/wifi_lite/wifiservice/source/libwifiservice.wifi_device_util.o
      [OHOS INFO] [97/267] gcc cross compiler obj/device/xradio/xr806/adapter/hals/communication/wifi_lite/wifiservice/source/libwifiservice.wifi_hotspot.o
      [OHOS INFO] [98/267] gcc cross compiler obj/device/xradio/xr806/adapter/hals/iot_hardware/wifiiot_lite/libhal_iothardware.iot_flash.o
      [OHOS INFO] [99/267] gcc cross compiler obj/device/xradio/xr806/adapter/hals/communication/wifi_lite/wifiservice/source/libwifiservice.wifi_device.o
      [OHOS INFO] [100/267] gcc cross compiler obj/device/xradio/xr806/adapter/hals/iot_hardware/wifiiot_lite/libhal_iothardware.iot_gpio.o
      [OHOS INFO] [101/267] gcc cross compiler obj/device/xradio/xr806/adapter/hals/communication/blue_lite/src/libohos_bt_gatt.ohos_bt_gatt.o
      [OHOS INFO] [102/267] gcc cross compiler obj/device/xradio/xr806/adapter/hals/communication/blue_lite/src/libohos_bt_gatt.ohos_bt_gap.o
      [OHOS INFO] [103/267] gcc cross compiler obj/device/xradio/xr806/adapter/hals/iot_hardware/wifiiot_lite/libhal_iothardware.iot_i2c.o
      [OHOS INFO] [104/267] AR libs/libohos_bt_gatt.a
      [OHOS INFO] [105/267] gcc cross compiler obj/device/xradio/xr806/ohosdemo/iot_peripheral/src/libapp_peripheral.test_i2c.o
      [OHOS INFO] [106/267] gcc cross compiler obj/device/xradio/xr806/adapter/hals/communication/wifi_lite/xr_wifi/libxr_wifi_adapter.xr_wifi_adapter.o
      [OHOS INFO] [107/267] AR libs/libxr_wifi_adapter.a
      [OHOS INFO] [108/267] gcc cross compiler obj/device/xradio/xr806/adapter/hals/iot_hardware/wifiiot_lite/libhal_iothardware.iot_pwm.o
      [OHOS INFO] [109/267] gcc cross compiler obj/device/xradio/xr806/ohosdemo/iot_peripheral/src/libapp_peripheral.test_lowpower.o
      [OHOS INFO] [110/267] AR libs/libhal_iothardware.a
      [OHOS INFO] [111/267] gcc cross compiler obj/device/xradio/xr806/ohosdemo/hello_demo/src/libapp_hello.main.o
      [OHOS INFO] [112/267] STAMP obj/base/iot_hardware/peripheral/iothardware.stamp
      [OHOS INFO] [113/267] gcc cross compiler obj/device/xradio/xr806/os/libliteos_glue.os_errno.o
      [OHOS INFO] [114/267] STAMP obj/base/iot_hardware/peripheral/iothardware_ndk.stamp
      [OHOS INFO] [115/267] STAMP obj/device/xradio/xr806/adapter/hals/adapter.stamp
      [OHOS INFO] [116/267] AR libs/libapp_hello.a
      [OHOS INFO] [117/267] gcc cross compiler obj/device/xradio/xr806/ohosdemo/wlan_demo/libapp_WlanTest.main.o
      [OHOS INFO] [118/267] gcc cross compiler obj/device/xradio/xr806/adapter/hals/utils/file/src/libhal_file_static.hal_file.o
      [OHOS INFO] [119/267] gcc cross compiler obj/device/xradio/xr806/os/libliteos_glue.os_semaphore.o
      [OHOS INFO] [120/267] AR libs/libhal_file_static.a
      [OHOS INFO] [121/267] gcc cross compiler obj/device/xradio/xr806/os/libliteos_glue.os_mutex.o
      [OHOS INFO] [122/267] gcc cross compiler obj/device/xradio/xr806/os/libliteos_glue.os_queue.o
      [OHOS INFO] [123/267] gcc cross compiler obj/device/xradio/xr806/ohosdemo/iot_peripheral/src/libapp_peripheral.test_flash.o
      [OHOS INFO] [124/267] gcc cross compiler obj/device/xradio/xr806/ohosdemo/iot_peripheral/src/libapp_peripheral.main.o
      [OHOS INFO] [125/267] gcc cross compiler obj/device/xradio/xr806/ohosdemo/iot_peripheral/src/libapp_peripheral.test_gpio.o
      [OHOS INFO] [126/267] gcc cross compiler obj/device/xradio/xr806/ohosdemo/iot_peripheral/src/libapp_peripheral.test_reset.o
      [OHOS INFO] [127/267] gcc cross compiler obj/utils/native/lite/kv_store/src/kvstore_impl_hal/libutils_kv_store.kv_store.o
      [OHOS INFO] [128/267] gcc cross compiler obj/device/xradio/xr806/ohosdemo/iot_peripheral/src/libapp_peripheral.test_pwm.o
      [OHOS INFO] [129/267] COPY ../../../foundation/distributedschedule/samgr_lite/config/system_capability.json obj/foundation/distributedschedule/samgr_lite/config/system_capability.json
      [OHOS INFO] [130/267] gcc cross compiler obj/utils/native/lite/kv_store/src/kvstore_common/libutils_kv_store.kvstore_common.o
      [OHOS INFO] [131/267] gcc cross compiler obj/device/xradio/xr806/ohosdemo/wlan_demo/libapp_WlanTest.test_case.o
      [OHOS INFO] [132/267] STAMP obj/foundation/distributedschedule/samgr_lite/ConfigFiles.stamp
      [OHOS INFO] [133/267] gcc cross compiler obj/device/xradio/xr806/ohosdemo/iot_peripheral/src/libapp_peripheral.test_uart.o
      [OHOS INFO] [134/267] gcc cross compiler obj/device/xradio/xr806/ohosdemo/iot_peripheral/src/libapp_peripheral.test_watchdog.o
      [OHOS INFO] [135/267] AR libs/libapp_WlanTest.a
      [OHOS INFO] [136/267] AR libs/libapp_peripheral.a
      [OHOS INFO] [137/267] STAMP obj/device/xradio/xr806/ohosdemo/ohosdemo.stamp
      [OHOS INFO] [138/267] gcc cross compiler obj/device/xradio/xr806/os/libliteos_glue.os_debug.o
      [OHOS INFO] [139/267] gcc cross compiler obj/foundation/distributedschedule/samgr_lite/samgr/registry/libsamgr.service_registry.o
      [OHOS INFO] [140/267] gcc cross compiler obj/foundation/distributedschedule/samgr_lite/communication/broadcast/source/libbroadcast.broadcast_service.o
      [OHOS INFO] [141/267] gcc cross compiler obj/device/xradio/xr806/os/libliteos_glue.os_freertos.o
      [OHOS INFO] [142/267] AR libs/libliteos_glue.a
      [OHOS INFO] [143/267] gcc cross compiler obj/foundation/distributedschedule/samgr_lite/samgr/adapter/cmsis/libsamgr_adapter.memory_adapter.o
      [OHOS INFO] [144/267] gcc cross compiler obj/foundation/distributedschedule/samgr_lite/communication/broadcast/source/libbroadcast.pub_sub_feature.o
      [OHOS INFO] [145/267] gcc cross compiler obj/foundation/distributedschedule/samgr_lite/samgr/adapter/cmsis/libsamgr_adapter.queue_adapter.o
      [OHOS INFO] [146/267] gcc cross compiler obj/foundation/distributedschedule/samgr_lite/samgr/adapter/cmsis/libsamgr_adapter.thread_adapter.o
      [OHOS INFO] [147/267] gcc cross compiler obj/foundation/distributedschedule/samgr_lite/samgr/adapter/cmsis/libsamgr_adapter.time_adapter.o
      [OHOS INFO] [148/267] AR libs/libsamgr_adapter.a
      [OHOS INFO] [149/267] gcc cross compiler obj/foundation/distributedschedule/samgr_lite/samgr/source/libsamgr_source.iunknown.o
      [OHOS INFO] [150/267] gcc cross compiler obj/foundation/distributedschedule/samgr_lite/samgr/source/libsamgr_source.feature.o
      [OHOS INFO] [151/267] gcc cross compiler obj/foundation/distributedschedule/samgr_lite/communication/broadcast/source/libbroadcast.pub_sub_implement.o
      [OHOS INFO] [152/267] AR libs/libbroadcast.a
      [OHOS INFO] [153/267] gcc cross compiler obj/foundation/distributedschedule/samgr_lite/samgr/source/libsamgr_source.common.o
      [OHOS INFO] [154/267] gcc cross compiler obj/foundation/distributedschedule/samgr_lite/samgr/source/libsamgr_source.message.o
      [OHOS INFO] [155/267] gcc cross compiler obj/kernel/liteos_m/components/backtrace/libbacktrace.los_backtrace.o
      [OHOS INFO] [156/267] AR libs/libbacktrace.a
      [OHOS INFO] [157/267] gcc cross compiler obj/foundation/distributedschedule/samgr_lite/samgr/source/libsamgr_source.service.o
      [OHOS INFO] [158/267] gcc cross compiler obj/foundation/distributedschedule/samgr_lite/samgr/source/libsamgr_source.task_manager.o
      [OHOS INFO] [159/267] gcc cross compiler obj/foundation/distributedschedule/samgr_lite/samgr/source/libsamgr.samgr_lite.o
      [OHOS INFO] [160/267] gcc cross compiler obj/third_party/bounds_checking_function/src/libsec.gets_s.o
      [OHOS INFO] [161/267] AR libs/libsamgr_source.a
      [OHOS INFO] [162/267] AR libs/libsamgr.a
      [OHOS INFO] [163/267] gcc cross compiler obj/third_party/bounds_checking_function/src/libsec.fwscanf_s.o
      [OHOS INFO] [164/267] STAMP obj/foundation/distributedschedule/samgr_lite/samgr.stamp
      [OHOS INFO] [165/267] STAMP obj/foundation/distributedschedule/samgr_lite/samgr_lite_ndk.stamp
      [OHOS INFO] [166/267] gcc cross compiler obj/third_party/bounds_checking_function/src/libsec.memmove_s.o
      [OHOS INFO] [167/267] gcc cross compiler obj/kernel/liteos_m/kal/libkal.kal.o
      [OHOS INFO] [168/267] gcc cross compiler obj/third_party/bounds_checking_function/src/libsec.securecutil.o
      [OHOS INFO] [169/267] gcc cross compiler obj/third_party/bounds_checking_function/src/libsec.scanf_s.o
      [OHOS INFO] [170/267] gcc cross compiler obj/third_party/bounds_checking_function/src/libsec.fscanf_s.o
      [OHOS INFO] [171/267] gcc cross compiler obj/kernel/liteos_m/components/exchook/libexchook.los_exchook.o
      [OHOS INFO] [172/267] gcc cross compiler obj/third_party/bounds_checking_function/src/libsec.secureprintoutput_a.o
      [OHOS INFO] [173/267] gcc cross compiler obj/third_party/bounds_checking_function/src/libsec.memset_s.o
      [OHOS INFO] [174/267] gcc cross compiler obj/third_party/bounds_checking_function/src/libsec.memcpy_s.o
      [OHOS INFO] [175/267] gcc cross compiler obj/third_party/bounds_checking_function/src/libsec.snprintf_s.o
      [OHOS INFO] [176/267] gcc cross compiler obj/third_party/bounds_checking_function/src/libsec.sprintf_s.o
      [OHOS INFO] [177/267] gcc cross compiler obj/third_party/bounds_checking_function/src/libsec.sscanf_s.o
      [OHOS INFO] [178/267] gcc cross compiler obj/third_party/bounds_checking_function/src/libsec.strcat_s.o
      [OHOS INFO] [179/267] gcc cross compiler obj/third_party/bounds_checking_function/src/libsec.secureinput_a.o
      [OHOS INFO] [180/267] gcc cross compiler obj/third_party/bounds_checking_function/src/libsec.strncat_s.o
      [OHOS INFO] [181/267] gcc cross compiler obj/third_party/bounds_checking_function/src/libsec.strtok_s.o
      [OHOS INFO] [182/267] gcc cross compiler obj/third_party/bounds_checking_function/src/libsec.swprintf_s.o
      [OHOS INFO] [183/267] gcc cross compiler obj/third_party/bounds_checking_function/src/libsec.strcpy_s.o
      [OHOS INFO] [184/267] gcc cross compiler obj/third_party/bounds_checking_function/src/libsec.secureprintoutput_w.o
      [OHOS INFO] [185/267] gcc cross compiler obj/third_party/bounds_checking_function/src/libsec.strncpy_s.o
      [OHOS INFO] [186/267] gcc cross compiler obj/third_party/bounds_checking_function/src/libsec.swscanf_s.o
      [OHOS INFO] [187/267] gcc cross compiler obj/third_party/bounds_checking_function/src/libsec.vfscanf_s.o
      [OHOS INFO] [188/267] gcc cross compiler obj/third_party/bounds_checking_function/src/libsec.secureinput_w.o
      [OHOS INFO] [189/267] gcc cross compiler obj/third_party/bounds_checking_function/src/libsec.vscanf_s.o
      [OHOS INFO] [190/267] gcc cross compiler obj/third_party/bounds_checking_function/src/libsec.vfwscanf_s.o
      [OHOS INFO] [191/267] gcc cross compiler obj/third_party/bounds_checking_function/src/libsec.vsnprintf_s.o
      [OHOS INFO] [192/267] gcc cross compiler obj/third_party/bounds_checking_function/src/libsec.vsprintf_s.o
      [OHOS INFO] [193/267] gcc cross compiler obj/third_party/bounds_checking_function/src/libsec.vsscanf_s.o
      [OHOS INFO] [194/267] gcc cross compiler obj/third_party/bounds_checking_function/src/libsec.vswprintf_s.o
      [OHOS INFO] [195/267] gcc cross compiler obj/third_party/bounds_checking_function/src/libsec.vswscanf_s.o
      [OHOS INFO] [196/267] gcc cross compiler obj/third_party/bounds_checking_function/src/libsec.vwscanf_s.o
      [OHOS INFO] [197/267] gcc cross compiler obj/third_party/bounds_checking_function/src/libsec.wcscpy_s.o
      [OHOS INFO] [198/267] gcc cross compiler obj/third_party/bounds_checking_function/src/libsec.wcscat_s.o
      [OHOS INFO] [199/267] gcc cross compiler obj/third_party/bounds_checking_function/src/libsec.wcsncat_s.o
      [OHOS INFO] [200/267] gcc cross compiler obj/third_party/bounds_checking_function/src/libsec.wcstok_s.o
      [OHOS INFO] [201/267] gcc cross compiler obj/third_party/bounds_checking_function/src/libsec.wcsncpy_s.o
      [OHOS INFO] [202/267] gcc cross compiler obj/third_party/bounds_checking_function/src/libsec.wmemmove_s.o
      [OHOS INFO] [203/267] gcc cross compiler obj/third_party/bounds_checking_function/src/libsec.wscanf_s.o
      [OHOS INFO] [204/267] gcc cross compiler obj/third_party/bounds_checking_function/src/libsec.wmemcpy_s.o
      [OHOS INFO] [205/267] AR libs/libsec.a
      [OHOS INFO] [206/267] gcc cross compiler obj/kernel/liteos_m/kal/posix/src/libposix.libc.o
      [OHOS INFO] [207/267] AR libs/libwifiservice.a
      [OHOS INFO] [208/267] STAMP obj/foundation/communication/wifi_lite/wifi.stamp
      [OHOS INFO] [209/267] gcc cross compiler obj/kernel/liteos_m/components/cpup/libcpup.los_cpup.o
      [OHOS INFO] [210/267] AR libs/libcpup.a
      [OHOS INFO] [211/267] gcc cross compiler obj/kernel/liteos_m/kal/posix/src/libposix.errno.o
      [OHOS INFO] [212/267] gcc cross compiler obj/kernel/liteos_m/kernel/src/libkernel.los_init.o
      [OHOS INFO] [213/267] gcc cross compiler obj/kernel/liteos_m/components/exchook/libexchook.los_exc_info.o
      [OHOS INFO] [214/267] AR libs/libexchook.a
      [OHOS INFO] [215/267] gcc cross compiler obj/kernel/liteos_m/kal/posix/src/libposix.malloc.o
      [OHOS INFO] [216/267] gcc cross compiler obj/kernel/liteos_m/kernel/src/libkernel.los_event.o
      [OHOS INFO] [217/267] gcc cross compiler obj/kernel/liteos_m/kal/posix/src/libposix.pthread.o
      [OHOS INFO] [218/267] gcc cross compiler obj/kernel/liteos_m/kal/posix/src/libposix.pthread_mutex.o
      [OHOS INFO] [219/267] gcc cross compiler obj/kernel/liteos_m/kal/posix/src/libposix.pthread_attr.o
      [OHOS INFO] [220/267] gcc cross compiler obj/kernel/liteos_m/kal/posix/src/libposix.semaphore.o
      [OHOS INFO] [221/267] gcc cross compiler obj/kernel/liteos_m/kernel/src/libkernel.los_mux.o
      [OHOS INFO] [222/267] gcc cross compiler obj/kernel/liteos_m/kernel/src/libkernel.los_sem.o
      [OHOS INFO] [223/267] gcc cross compiler obj/kernel/liteos_m/kernel/src/libkernel.los_swtmr.o
      [OHOS INFO] [224/267] gcc cross compiler obj/kernel/liteos_m/kernel/src/libkernel.los_tick.o
      [OHOS INFO] [225/267] gcc cross compiler obj/kernel/liteos_m/kernel/src/libkernel.los_queue.o
      [OHOS INFO] [226/267] gcc cross compiler obj/kernel/liteos_m/kal/posix/src/libposix.time.o
      [OHOS INFO] [227/267] gcc cross compiler obj/kernel/liteos_m/kernel/src/mm/libkernel.los_membox.o
      [OHOS INFO] [228/267] gcc cross compiler obj/kernel/liteos_m/kal/cmsis/libcmsis.cmsis_liteos.o
      [OHOS INFO] [229/267] AR libs/libposix.a
      [OHOS INFO] [230/267] AR libs/libcmsis.a
      [OHOS INFO] [231/267] AR libs/libkal.a
      [OHOS INFO] [232/267] gcc cross compiler obj/kernel/liteos_m/kernel/arch/arm/cortex-m33/gcc/libarch.los_dispatch.o
      [OHOS INFO] [233/267] gcc cross compiler obj/kernel/liteos_m/kernel/arch/arm/cortex-m33/gcc/libarch.los_exc.o
      [OHOS INFO] [234/267] gcc cross compiler obj/kernel/liteos_m/kernel/arch/arm/cortex-m33/gcc/libarch.los_context.o
      [OHOS INFO] [235/267] gcc cross compiler obj/kernel/liteos_m/utils/libutils.los_debug.o
      [OHOS INFO] [236/267] gcc cross compiler obj/kernel/liteos_m/kernel/arch/arm/cortex-m33/gcc/libarch.los_timer.o
      [OHOS INFO] [237/267] gcc cross compiler obj/kernel/liteos_m/utils/libutils.los_error.o
      [OHOS INFO] [238/267] AR libs/libutils_kv_store.a
      [OHOS INFO] [239/267] AR libs/libutils.a
      [OHOS INFO] [240/267] STAMP obj/utils/native/lite/kv_store/kv_store.stamp
      [OHOS INFO] [241/267] STAMP obj/vendor/xradio/xr806/xr806.stamp
      [OHOS INFO] [242/267] gcc cross compiler obj/kernel/liteos_m/kernel/arch/arm/cortex-m33/gcc/libarch.los_interrupt.o
      [OHOS INFO] [243/267] gcc cross compiler obj/utils/native/lite/file/src/file_impl_hal/libnative_file.file.o
      [OHOS INFO] [244/267] AR libs/libarch.a
      [OHOS INFO] [245/267] AR libs/libnative_file.a
      [OHOS INFO] [246/267] gcc cross compiler obj/utils/native/lite/os_dump/libdump_static.dump_syspara.o
      [OHOS INFO] [247/267] STAMP obj/utils/native/lite/file/file.stamp
      [OHOS INFO] [248/267] gcc cross compiler obj/vendor/xradio/xr806/hals/utils/sys_param/libhal_sysparam.hal_sys_param.o
      [OHOS INFO] [249/267] gcc cross compiler obj/vendor/xradio/xr806/hals/utils/token/libhal_token_static.hal_token.o
      [OHOS INFO] [250/267] AR libs/libhal_sysparam.a
      [OHOS INFO] [251/267] AR libs/libhal_token_static.a
      [OHOS INFO] [252/267] gcc cross compiler obj/kernel/liteos_m/kernel/src/mm/libkernel.los_memory.o
      [OHOS INFO] [253/267] AR libs/libtoken_static.a
      [OHOS INFO] [254/267] AR libs/libsysparam.a
      [OHOS INFO] [255/267] gcc cross compiler obj/kernel/liteos_m/kernel/src/libkernel.los_task.o
      [OHOS INFO] [256/267] STAMP obj/base/startup/syspara_lite/frameworks/token/token.stamp
      [OHOS INFO] [257/267] STAMP obj/base/startup/syspara_lite/frameworks/parameter/parameter.stamp
      [OHOS INFO] [258/267] STAMP obj/base/startup/syspara_lite/frameworks/parameter/parameter_notes.stamp
      [OHOS INFO] [259/267] AR libs/libdump_static.a
      [OHOS INFO] [260/267] STAMP obj/utils/native/lite/os_dump/utils_os_dump.stamp
      [OHOS INFO] [261/267] AR libs/libkernel.a
      [OHOS INFO] [262/267] STAMP obj/kernel/liteos_m/kernel.stamp
      [OHOS INFO] [263/267] STAMP obj/build/lite/ohos.stamp
      [OHOS INFO] [264/267] ACTION //build/lite:gen_rootfs(//build/lite/toolchain:arm-none-eabi-gcc)
      [OHOS INFO] [265/267] STAMP obj/build/lite/gen_rootfs.stamp
      [OHOS INFO] [266/267] ACTION //device/xradio/xr806:libSDK(//build/lite/toolchain:arm-none-eabi-gcc)
      
      
      发布在 Wireless & Analog Series
      H
      HU_710774265
    • 回复: 【XR806开发板试用】实时时钟

      发布在 Wireless & Analog Series
      H
      HU_710774265
    • 【XR806开发板试用】编译中的几个问题以及hello跑起来

      首先我们先看https://xr806.docs.aw-ol.com/
      该文档部分不适应 当前最新gitee

      如果没有repo工具,可通过下面的git命令获取repo。

      git clone https://gerrit-googlesource.lug.ustc.edu.cn/git-repo
      

      下载代码 没有使用ssh://方式 过于麻烦

      mkdir xr806_openharmony
      cd xr806_openharmony
      repo init -u https://gitee.com/openharmony-sig/manifest.git -b OpenHarmony_1.0.1_release --no-repo-verify -m devboard_xr806.xml
      repo sync -c
      repo forall -c 'git lfs pull'   #下载部分大容量二进制文件
      

      编译流程

      cd device/xradio/xr806/xr_skylark                               #(1)进入原生SDK目录
      cp project/demo/audio_demo/gcc/deconfig .config                 #(2)复制配置文件
      make menuconfig                                                 #(3)图形化界面配置
      make build_clean                                                #(4)清除旧配置
      make lib -j                                                     #(5)根据配置生成静态库和全局头文件
      cd -                                                            #(6)返回Harmony根目录
      hb set                                                          #(7)选择wifi_skylark
      hb build -f                                                     #(8)编译,后续不需要重新配置
      

      编译中遇到的问题
      1.缺少SDKconfig.gni
      直接导致 hb build -f 报错编译失败
      解决方法
      修改xr806_openharmony/device/xradio/xr806/xr_skylark/config.py
      该文件的换行符 unix格式

      #!/usr/bin/python3
      
      import os
      
      pwd = os.path.dirname (__file__)
      f = open('{0}/.config'.format(pwd),'r')
      
      
      DATA = ['#XR806 config']
      for line in f.readlines():
          if line[0] != '#' and line[0] != '\n':
              line = line.strip('\n')
              DATA.append(line)
      
      GNf = open('{0}/../liteos_m/SDKconfig.gni'.format(pwd),'w')
      GNf.write('#Build by config.py DO NOT EDIT!\n\n')
      GNf.write('SDK_cflags = [\n\
          "-mcpu=cortex-m33",\n\
          "-mtune=cortex-m33",\n\
          "-march=armv8-m.main+dsp",\n\
          "-mfpu=fpv5-sp-d16",\n\
          "-mfloat-abi=softfp",\n\
          "-mcmse",\n\
          "-mthumb",\n\
          "-c",\n\
          "-g",\n\
          "-fno-common",\n\
          "-fmessage-length=0",\n\
          "-fno-exceptions",\n\
          "-ffunction-sections",\n\
          "-fdata-sections",\n\
          "-fomit-frame-pointer",\n\
          "-Wall",\n\
          #"-Werror",\n\
          "-Wno-cpp",\n\
          "-Wpointer-arith",\n\
          "-Wno-error=unused-function",\n\
          "-MMD",\n\
          "-MP",\n\
          "-Os",\n\
          "-DNDEBUG",\n\
          "-Wno-error=stringop-truncation",\n\
          "-Wno-error=restrict",\n\
          "-includexr_config.h",\n\
          "-includecommon/prj_conf_opt.h",\n\
          "-DCONFIG_CHIP_ARCH_VER=3",\n\
          "-DCONFIG_ARCH_APP_CORE",\n\
          "-DCONFIG_CPU_CM33F",\n\
      ]\n\n')
      
      PROJECT = [x for i,x in enumerate(DATA) if x.find('CONFIG_PROJECT=') != -1]
      if len(PROJECT) == 1:
          ProjectPath = PROJECT[0]
          ProjectPath = ProjectPath.strip('CONFIG_PROJECT=')
      GNf.write('ProjectPath = {0}\n\n'.format(ProjectPath))
      if ProjectPath == '"bootloader"' or ProjectPath == '"test/etf"':
          GNf.write('declare_args() {IsBootloader = "true"}\n')
      else:
          GNf.write('declare_args() {IsBootloader = "false"}\n')
      
      
      
      #print (DATA)
      

      2.hello 一直不出现
      修改xr806_openharmony/device/xradio/xr806/libcopy.py
      该文件的换行符 是windows格式(很奇怪对吧)。

      #!/usr/bin/python3
      
      import os
      import json
      
      pwd = os.path.dirname (__file__)
      
      XTS_TEST = "disable"
      
      def filenames_filter(filename_list,Features_str,extention_name):
          confirm_list = []
          for filename in filename_list:
              if filename.find(Features_str) != -1:
                  if extention_name == os.path.splitext(filename)[1]:
                      confirm_list.append(filename)
          return confirm_list
      
      # whether config.json define compoent "test"?
      vendorf = open('{0}/../../../vendor/xradio/xr806/config.json'.format(pwd),'r')
      configData = json.load(vendorf)
      subsystemsData = configData['subsystems']
      for JSON_TXET in subsystemsData:
          ComponentJson = json.dumps(JSON_TXET)    
          componentPython = json.loads(ComponentJson)
          if componentPython["subsystem"] == "test":
              XTS_TEST = "enable"
      
      
      GNf = open('{0}/xr_skylark/ohos.mk'.format(pwd),'w')
      FnList = os.listdir('{0}/xr_skylark/lib/ohos'.format(pwd))
      APPlib = filenames_filter(FnList,'libapp_','.a')
      
      if XTS_TEST == "enable":
          TESTlib = filenames_filter(FnList,'libmodule_','.a')
          # if test XTS_UPgrade,KEYlib should add 'libhota.a'
          KEYlib = ['libwifiservice.a','libhiview_lite.a','libhilog_lite.a',\
          'libhievent_lite.a','libbootstrap.a','libhctest.a','libbroadcast.a']
      else:
          TESTlib = []
          KEYlib = []
      RTOSlib = list(set(FnList) - set(APPlib) - set(TESTlib) - set(KEYlib))
      
      GNf.write('#\n# Rules for ohos library\n#\n\n')
      
      GNf.write('OHOSSOURCE = -Wl,--whole-archive\n')
      for lib in KEYlib:
          GNf.write('OHOSSOURCE += $(ROOT_PATH)/lib/ohos/{0}\n'.format(lib)) 
      for lib in APPlib:
          GNf.write('OHOSSOURCE += $(ROOT_PATH)/lib/ohos/{0}\n'.format(lib))
      for lib in TESTlib:
          GNf.write('OHOSSOURCE += $(ROOT_PATH)/lib/ohos/{0}\n'.format(lib))
      GNf.write('OHOSSOURCE += -Wl,--no-whole-archive\n')
      GNf.write('\n')
      
      GNf.write('OHOSSOURCE += -Wl,--start-group\n')
      for lib in RTOSlib:
          GNf.write('OHOSSOURCE += $(ROOT_PATH)/lib/ohos/{0}\n'.format(lib))
      GNf.write('OHOSSOURCE += -Wl,--end-group\n')
      
      GNf.write('#\n# end of file\n#\n\n')
      
      1. win下make menuconfig问题 建议用linux(能烧录哦)
      目前我用了
      Cygwin
      msys2 以及msys2中带的msys
      都是同类型错误,建议看看其他坛友是否有方法
      MinGW 未试
      

      问题2分析

      文件xr806_openharmony/device/xradio/xr806/xr_skylark/ohos.mk
      默认有
      OHOSSOURCE = -Wl,--whole-archive
      OHOSSOURCE += $(ROOT_PATH)/lib/ohos/libapp_console.a
      OHOSSOURCE += -Wl,--no-whole-archive
      所以编译后能跑起来
      libcopy.py 未能正确运行导致
      文件未被更新如:
      OHOSSOURCE = -Wl,--whole-archive
      OHOSSOURCE += $(ROOT_PATH)/lib/ohos/libapp_console.a
      OHOSSOURCE += $(ROOT_PATH)/lib/ohos/libapp_led.a
      OHOSSOURCE += $(ROOT_PATH)/lib/ohos/libapp_WlanTest.a
      OHOSSOURCE += -Wl,--no-whole-archive
      所以 不管你怎么改都只是 支持libapp_console 设置
      可手工添加(不建议。
      

      hello 跑起来怎么改?
      https://xr806.docs.aw-ol.com/study/soft_helloword/
      给的文档已经过期不适合 现在最新的gitee代码

      修改
      xr806_openharmony/device/xradio/xr806/ohosdemo/BUILD.gn
      内容:
      group("ohosdemo") {
          deps = [
              "hello_demo:app_hello",
              "LED:app_led",
              #"iot_peripheral:app_peripheral",
              #"wlan_demo:app_WlanTest",
          ]
      }
      

      如此这般hello_demo 就能愉快的跑起来了。

      发布在 Wireless & Analog Series
      H
      HU_710774265
    • 【XR806开发板试用】实时时钟

      spi+ntp+max7219=实时时钟
      wifi 通过ntp获取时间 交由8位数码管显示
      PIN 使用
      1-5V
      11-GND
      12-SPI0_MOSI
      13-SPI0_CS0
      14-SPI0_MISO -未使用
      15-SPI0_CLK
      接线
      xr806----------8位数码管max7219
      1-----------------vcc
      11----------------gnd
      12----------------din
      13----------------cs
      15----------------clk

      nano 是命令行文本编辑工具 纯个人习惯
      make 是我当前帐号的名字
      cd /home/make/xr806_openharmony/device/xradio/xr806/ohosdemo/
      也可cd ~/xr806_openharmony/device/xradio/xr806/ohosdemo/ 即当前登录帐号目录

      nano BUILD.gn

      group("ohosdemo") {
          deps = [
           "sntp:app_sntp_Test",
          ]
      }
      

      ctrl+o 保存
      回车
      ctrl+x 退出

      创建目录

      mkdir sntp
      cd sntp
      nano BUILD.gn

      import("//device/xradio/xr806/liteos_m/config.gni")
      
      static_library("app_sntp_Test") {
         configs = []
      
         sources = [
            "main.c",
         ]
      
         cflags = board_cflags
      
         include_dirs = board_include_dirs
         include_dirs += [
              ".",
              "//utils/native/lite/include",
              "//foundation/communication/wifi_lite/interfaces/wifiservice",
              "//device/xradio/xr806/xr_skylark/include/net/sntp",
               "//base/iot_hardware/peripheral/interfaces/kits",
         ]
      }
      

      ctrl+o 保存
      回车
      ctrl+x 退出

      nano main.c

      #include <stdio.h>
      #include "ohos_init.h"
      #include "kernel/os/os.h"
      #include "wifi_device.h"
      #include "sntp.h"
      #include "iot_gpio.h"
      #include "driver/chip/hal_spi.h"
      #include "common/framework/platform_init.h"
      
      /* spi */
      #define DEMO_SPI_MCLK (48 * 1000 * 1000)
      #define DEMO_SPI_CS_LEVEL 0
      #define DEMO_SPI_PORT SPI0
      #define DEMO_SPI_CS SPI_TCTRL_SS_SEL_SS0
      #define DEMO_FLASH_INSTRUCTION_RDID 0x9F /* flash jedec id */
      
      static OS_Thread_t g_main_thread;
      static OS_Thread_t g_time_thread;
      
      
      #define WIFI_DEVICE_CONNECT_AP_SSID "11111111"//wifi名称
      #define WIFI_DEVICE_CONNECT_AP_PSK "11111111"//wifi密码
      
      #define SNTP_YEAR_OFFSET (2000)
      #define CMD_SYSLOG printf
      #define CMD_LOG(flags, fmt, arg...) \
      	do                              \
      	{                               \
      		if (flags)                  \
      			CMD_SYSLOG(fmt, ##arg); \
      	} while (0)
      
      /*8 DIGITS begin*/
      #define NUMBER_OF_DIGITS 8
      typedef enum
      {
      	REG_NO_OP = 0x00,
      	REG_DIGIT_0 = 0x01,
      	REG_DIGIT_1 = 0x02,
      	REG_DIGIT_2 = 0x03,
      	REG_DIGIT_3 = 0x04,
      	REG_DIGIT_4 = 0x05,
      	REG_DIGIT_5 = 0x06,
      	REG_DIGIT_6 = 0x07,
      	REG_DIGIT_7 = 0x08,
      	REG_DECODE_MODE = 0x09,	 //译码方式,0x00为不译码,0xff为译码
      	REG_INTENSITY = 0x0A,	 //显示亮度,取值范围0~f
      	REG_SCAN_LIMIT = 0x0B,	 // 8位扫描显示,取值范围0x01~0x07
      	REG_SHUTDOWN = 0x0C,	 //操作方式,0x00为低功耗模式,0x01为正常操作模式
      	REG_DISPLAY_TEST = 0x0F, //显示状态,0x00为正常显示,0x01为显示测试
      } MAX7219_REGISTERS;
      
      typedef enum
      {
      	DIGIT_1 = 1,
      	DIGIT_2 = 2,
      	DIGIT_3 = 3,
      	DIGIT_4 = 4,
      	DIGIT_5 = 5,
      	DIGIT_6 = 6,
      	DIGIT_7 = 7,
      	DIGIT_8 = 8
      } MAX7219_Digits;
      
      typedef enum
      {
      	NUM_0 = 0x00,
      	NUM_1 = 0x01,
      	NUM_2 = 0x02,
      	NUM_3 = 0x03,
      	NUM_4 = 0x04,
      	NUM_5 = 0x05,
      	NUM_6 = 0x06,
      	NUM_7 = 0x07,
      	NUM_8 = 0x08,
      	NUM_9 = 0x09,
      	MINUS = 0x0A, //-号
      	LETTER_E = 0x0B,
      	LETTER_H = 0x0C,
      	LETTER_L = 0x0D,
      	LETTER_P = 0x0E,
      	BLANK = 0x0F,  //无显示
      	LETTER_AR = 0x10 //=16 =SYMBOLS  AorR
      } MAX7219_Numeric;
      
      void max7219_Init(uint8_t intensivity);
      void max7219_SetIntensivity(uint8_t intensivity);
      void max7219_Clean(void);
      /*void max7219_SendData(uint8_t addr, uint8_t data);*/
      void max7219_Turn_On(void);
      void max7219_Turn_Off(void);
      void max7219_Decode_On(void);
      void max7219_Decode_Off(void);
      void max7219_PrintDigit(MAX7219_Digits position, MAX7219_Numeric numeric, bool point);
      MAX7219_Digits max7219_PrintItos(MAX7219_Digits position, int value);
      MAX7219_Digits max7219_PrintNtos(MAX7219_Digits position, uint32_t value, uint8_t n);
      MAX7219_Digits max7219_PrintFtos(MAX7219_Digits position, float value, uint8_t n);
      
      int LED8Main(void);
      
      static uint8_t decodeMode = 0x00;
      
      static uint8_t SYMBOLS[] = {
      	0x7E, // numeric 0
      	0x30, // numeric 1
      	0x6D, // numeric 2
      	0x79, // numeric 3
      	0x33, // numeric 4
      	0x5B, // numeric 5
      	0x5F, // numeric 6
      	0x70, // numeric 7
      	0x7F, // numeric 8
      	0x7B, // numeric 9
      	0x01, // minus
      	0x4F, // letter E
      	0x37, // letter H
      	0x0E, // letter L
      	0x67, // letter P
      	0x00, // blank
      	0x77  //AorR
      };
      
      static uint16_t getSymbol(uint8_t number);
      static uint32_t lcdPow10(uint8_t n);
      
      /*8 DIGITS func end*/
      void max7219_Init(uint8_t intensivity)
      {
      	max7219_Turn_On();
      	max7219_SendData(REG_SCAN_LIMIT, NUMBER_OF_DIGITS - 1);
      	max7219_SetIntensivity(intensivity);
      	max7219_Clean();
      }
      //显示亮度
      void max7219_SetIntensivity(uint8_t intensivity)
      {
      	if (intensivity > 0x0F)
      	{
      		return;
      	}
      
      	max7219_SendData(REG_INTENSITY, intensivity);
      }
      
      void max7219_Clean()
      {
      	uint8_t clear = 0x00;
      
      	if (decodeMode == 0xFF)
      	{
      		clear = BLANK;
      	}
      
      	for (int i = 0; i < 8; ++i)
      	{
      		max7219_SendData(i + 1, clear);
      	}
      }
      
      // #define data_len (20*1024)
      #define data_len (20 * 1024)
      uint8_t tx_data[data_len] = {0};
      
      inline void max7219_SendData(uint8_t addr, uint8_t data)
      {
      	HAL_Status ret = HAL_OK;
      	HAL_SPI_CS(DEMO_SPI_PORT, 1);
      	// printf("spi write...\n");
      	tx_data[0] = addr;
      	tx_data[1] = data;
      	ret = HAL_SPI_Transmit(DEMO_SPI_PORT, &tx_data, 2);
      	if (ret != HAL_OK)
      	{
      		printf("spi 1write failed");
      	}
      
      	HAL_SPI_CS(DEMO_SPI_PORT, 0);
      }
      //操作方式
      void max7219_Turn_On(void)
      {
      	max7219_SendData(REG_SHUTDOWN, 0x01);
      }
      //操作方式
      void max7219_Turn_Off(void)
      {
      	max7219_SendData(REG_SHUTDOWN, 0x00);
      }
      //译码方式
      void max7219_Decode_On(void)
      {
      	decodeMode = 0xFF;
      	max7219_SendData(REG_DECODE_MODE, decodeMode);
      }
      //译码方式
      void max7219_Decode_Off(void)
      {
      	decodeMode = 0x00;
      	max7219_SendData(REG_DECODE_MODE, decodeMode);
      }
      
      void max7219_PrintDigit(MAX7219_Digits position, MAX7219_Numeric numeric, bool point)
      {
      	if (position > NUMBER_OF_DIGITS)
      	{
      		return;
      	}
      
      	if (point)
      	{
      		if (decodeMode == 0x00)
      		{
      			max7219_SendData(position, getSymbol(numeric) | (1 << 7));
      		}
      		else if (decodeMode == 0xFF)
      		{
      			max7219_SendData(position, numeric | (1 << 7));
      		}
      	}
      	else
      	{
      		if (decodeMode == 0x00)
      		{
      			max7219_SendData(position, getSymbol(numeric) & (~(1 << 7)));
      		}
      		else if (decodeMode == 0xFF)
      		{
      			max7219_SendData(position, numeric & (~(1 << 7)));
      		}
      	}
      }
      
      MAX7219_Digits max7219_PrintItos(MAX7219_Digits position, int value)
      {
      	max7219_SendData(REG_DECODE_MODE, 0xFF);
      
      	int32_t i;
      
      	if (value < 0)
      	{
      		if (position > 0)
      		{
      			max7219_SendData(position, MINUS);
      			position--;
      		}
      		value = -value;
      	}
      
      	i = 1;
      
      	while ((value / i) > 9)
      	{
      		i *= 10;
      	}
      
      	if (position > 0)
      	{
      		max7219_SendData(position, value / i);
      		position--;
      	}
      
      	i /= 10;
      
      	while (i > 0)
      	{
      		if (position > 0)
      		{
      			max7219_SendData(position, (value % (i * 10)) / i);
      			position--;
      		}
      
      		i /= 10;
      	}
      
      	max7219_SendData(REG_DECODE_MODE, decodeMode);
      
      	return position;
      }
      
      MAX7219_Digits max7219_PrintNtos(MAX7219_Digits position, uint32_t value, uint8_t n)
      {
      	max7219_SendData(REG_DECODE_MODE, 0xFF);
      
      	if (n > 0u)
      	{
      		uint32_t i = lcdPow10(n - 1u);
      
      		while (i > 0u) /* Display at least one symbol */
      		{
      			if (position > 0u)
      			{
      				max7219_SendData(position, (value / i) % 10u);
      				position--;
      			}
      
      			i /= 10u;
      		}
      	}
      
      	max7219_SendData(REG_DECODE_MODE, decodeMode);
      
      	return position;
      }
      
      MAX7219_Digits max7219_PrintFtos(MAX7219_Digits position, float value, uint8_t n)
      {
      	if (n > 4)
      	{
      		n = 4;
      	}
      
      	max7219_SendData(REG_DECODE_MODE, 0xFF);
      
      	if (value < 0.0)
      	{
      		if (position > 0)
      		{
      			max7219_SendData(position, MINUS);
      			position--;
      		}
      
      		value = -value;
      	}
      
      	position = max7219_PrintItos(position, (int32_t)value);
      
      	if (n > 0u)
      	{
      		max7219_PrintDigit(position + 1, ((int32_t)value) % 10, true);
      
      		position = max7219_PrintNtos(position, (uint32_t)(value * (float)lcdPow10(n)), n);
      	}
      
      	max7219_SendData(REG_DECODE_MODE, decodeMode);
      
      	return position;
      }
      
      static uint16_t getSymbol(uint8_t number)
      {
      	return SYMBOLS[number];
      }
      
      static uint32_t lcdPow10(uint8_t n)
      {
      	uint32_t retval = 1u;
      
      	while (n > 0u)
      	{
      		retval *= 10u;
      		n--;
      	}
      
      	return retval;
      }
      /*8 DIGITS func end*/
      
      static int wifi_device_connect()
      {
      	const char ssid_want_connect[] = WIFI_DEVICE_CONNECT_AP_SSID;
      	const char psk[] = WIFI_DEVICE_CONNECT_AP_PSK;
      
      	if (WIFI_SUCCESS != EnableWifi())
      	{
      		printf("Error: EnableWifi fail.\n");
      		return;
      	}
      	printf("EnableWifi Success.\n");
      
      	if (WIFI_STA_ACTIVE == IsWifiActive())
      		printf("Wifi is active.\n");
      
      	OS_Sleep(1);
      
      	if (WIFI_SUCCESS != Scan())
      	{
      		printf("Error: Scan fail.\n");
      		return;
      	}
      	printf("Wifi Scan Success.\n");
      
      	OS_Sleep(1);
      
      	WifiScanInfo scan_results[30];
      	unsigned int scan_num = 30;
      
      	if (WIFI_SUCCESS != GetScanInfoList(scan_results, &scan_num))
      	{
      		printf("Error: GetScanInfoList fail.\n");
      		return;
      	}
      
      	WifiDeviceConfig config = {0};
      	int netId = 0;
      
      	int i;
      	for (i = 0; i < scan_num; i++)
      	{
      		if (0 == strcmp(scan_results[i].ssid, ssid_want_connect))
      		{
      			memcpy(config.ssid, scan_results[i].ssid,
      				   WIFI_MAX_SSID_LEN);
      			memcpy(config.bssid, scan_results[i].bssid,
      				   WIFI_MAC_LEN);
      			strcpy(config.preSharedKey, psk);
      			config.securityType = scan_results[i].securityType;
      			config.wapiPskType = WIFI_PSK_TYPE_ASCII;
      			config.freq = scan_results[i].frequency;
      			break;
      		}
      	}
      
      	if (i >= scan_num)
      	{
      		printf("Error: No found ssid in scan_results\n");
      		return;
      	}
      	printf("GetScanInfoList Success.\n");
      
      	if (WIFI_SUCCESS != AddDeviceConfig(&config, &netId))
      	{
      		printf("Error: AddDeviceConfig Fail\n");
      		return;
      	}
      	printf("AddDeviceConfig Success.\n");
      
      	if (WIFI_SUCCESS != ConnectTo(netId))
      	{
      		printf("Error: ConnectTo Fail\n");
      		return;
      	}
      	printf("ConnectTo Success\n");
      }
      
      static int my_sntp_init()
      {
      	if (sntp_set_server(0, "0.cn.pool.ntp.org") == 0)
      	{
      		printf("set OK \r\n");
      	}
      }
      int LED8Main(void)
      {
      	printf("platform_init.\n");
      	/*platform_init();*/
      	printf("spi demo started.\n");
      
      	SPI_Global_Config spi_param;
      
      	spi_param.cs_level = DEMO_SPI_CS_LEVEL;
      	spi_param.mclk = DEMO_SPI_MCLK;
      
      	HAL_SPI_Init(DEMO_SPI_PORT, &spi_param);
      
      	SPI_Config spi_Config;
      	HAL_Status ret = HAL_OK;
      	uint8_t cmd = DEMO_FLASH_INSTRUCTION_RDID; /* read flash id cmd */
      	uint32_t data = 0;
      
      	spi_Config.firstBit = SPI_TCTRL_FBS_MSB; //
      	//SPI_LITTLEENDIAN;//第一字节 SPI_LITTLEENDIAN,SPI_BIGENDIAN
      	spi_Config.mode = SPI_CTRL_MODE_MASTER;
      	//SPI_MODE_MASTER;//SPI_MODE_SLAVE 从,SPI_MODE_MASTER 主
      	spi_Config.opMode = SPI_OPERATION_MODE_POLL;
      	spi_Config.sclk = 24000000;
      	spi_Config.sclkMode = SPI_SCLK_Mode0;
      
      	printf("spi open...\n");
      	ret = HAL_SPI_Open(DEMO_SPI_PORT, DEMO_SPI_CS, &spi_Config, 5000);
      	if (ret != HAL_OK)
      	{
      		printf("spi open failed");
      		return ret;
      	}
      
      	HAL_SPI_Config(DEMO_SPI_PORT, SPI_ATTRIBUTION_IO_MODE, SPI_IO_MODE_NORMAL);
      
      	printf("spi demo over.\n");
      	return 0;
      }
      
      //抄  https://github.com/taburyak/STM32_MAX7219_SPI
      //demos https://stm32withoutfear.blogspot.com/2019/06/stm32-7segments-8digits-max7219-spi.html
      
      static void MainThread(void *arg)
      {
      	printf("MainThread.\n");
      	LED8Main();
      	max7219_Init(7);
      	max7219_SetIntensivity(1);
      	max7219_Decode_Off();
      				max7219_SendData(DIGIT_4,79);
      				max7219_SendData(DIGIT_3, 119);
      				max7219_SendData(DIGIT_2, 119);
      	LOS_Msleep(5000);			
      	max7219_Decode_On();
      	max7219_PrintNtos(DIGIT_8,88888888, 8); //此处前面带 0 补充4位
      	LOS_Msleep(1000);
      	max7219_Clean();
      	int modi;
      	int setint = 1;
      	while (1)
      	{
      		modi++;
      		setint++;
      		if (setint == 16)
      		{
      			setint = 1;
      		}
      		max7219_SetIntensivity(setint);
      
      		if (WIFI_STA_ACTIVE == IsWifiActive())
      		{
      			// max7219_Clean();
      			printf("Wifi is active.\n");
      			if (sntp_request(NULL) != 0)
      			{
      				//视频中用手捂住开发板后会进入此处
      				/*max7219_PrintDigit(DIGIT_4, LETTER_E, false);*/
      				LOS_Msleep(1);
      				max7219_Decode_Off();
      				max7219_Clean();
      				LOS_Msleep(1);
      				max7219_PrintDigit(DIGIT_6, LETTER_AR,false);//A OR R
      				max7219_SendData(DIGIT_4,79);//E
      				max7219_SendData(DIGIT_3, 119);//R
      				max7219_SendData(DIGIT_2, 119);//R
      				LOS_Msleep(5000);
      				max7219_Decode_On();
      				max7219_Clean();
      				printf("<sntp> <response : fail>\n");
      				// goto bexit;
      			}
      			else
      			{
      				// max7219_Clean();
      				sntp_time *time = (sntp_time *)sntp_obtain_time();
      				printf("<sntp><response:success>\n");
      				//11111111
      				if (modi % 2 == 0)
      				{
      					max7219_PrintNtos(DIGIT_8, time->year + SNTP_YEAR_OFFSET, 4);//年
      					max7219_PrintNtos(DIGIT_4, time->mon, 2);					  //月
      					max7219_PrintNtos(DIGIT_2, time->day, 2);					  //日
      				}
      				else
      				{
      					max7219_PrintNtos(DIGIT_8, time->hour, 2);//小时     第一位无数字自动补充0
      					max7219_PrintDigit(DIGIT_6, BLANK, true);// 。
      					max7219_PrintNtos(DIGIT_5, time->min, 2);//分        第一位无数字自动补充0
      					max7219_PrintDigit(DIGIT_3, BLANK, true);// 。
      					max7219_PrintNtos(DIGIT_2, time->sec & 0x3f, 2);//秒 第一位无数字自动补充0 
      				}
      				CMD_LOG(1, "sntp(%u-%02u-%02u ", time->year + SNTP_YEAR_OFFSET, time->mon, time->day);
      				CMD_LOG(1, "%02u:%02u:%02u)\n", time->hour, time->min, time->sec);
      				LOS_Msleep(4000);
      			}
      		}
      		else
      		{   //初始化连接 wifi
      			max7219_Clean();
      			max7219_PrintDigit(DIGIT_8, BLANK, true);
      			LOS_Msleep(1000);
      			max7219_PrintDigit(DIGIT_7, BLANK, true);
      			LOS_Msleep(1000);
      			max7219_PrintDigit(DIGIT_6, BLANK, true);
      			LOS_Msleep(1000);
      			max7219_PrintDigit(DIGIT_5, BLANK, true);
      			printf("Wifi is passive.\n");
      			wifi_device_connect();
      			max7219_PrintDigit(DIGIT_4, BLANK, true);
      			LOS_Msleep(1000);
      			max7219_PrintDigit(DIGIT_3, BLANK, true);
      			LOS_Msleep(1000);
      			max7219_PrintDigit(DIGIT_2, BLANK, true);
      			LOS_Msleep(1000);
      			max7219_PrintDigit(DIGIT_1, BLANK, true);
      			LOS_Msleep(1000);
      		}
      	}
      	printf("bexit is passive.\n");
      }
      
      void SNTPTestMain(void) //(2)
      {
      	printf("SNTP Test Start\n");
      	if (OS_ThreadIsValid(&g_main_thread))
      	{
      		printf("sntp task is running\n");
      	}
      	else
      	{
      		if (OS_ThreadCreate(&g_main_thread, "MainThread", MainThread, NULL,
      							OS_THREAD_PRIO_APP, 4 * 1024) != OS_OK)
      		{
      			printf("[ERR] Create SNTP Test  MainThread Failed\n");
      		}
      	}
      }
      
      SYS_RUN(SNTPTestMain);
      
      //必须以app开头 否则不会调用
      

      ctrl+o 保存
      回车
      ctrl+x 退出

      对上面操作完毕后
      由于我们修改了/home/make/xr806_openharmony/device/xradio/xr806/ohosdemo/BUILD.gn
      cd /home/make/xr806_openharmony
      hb build -f
      必须-f 如若未修改BUILD.gn 大可不必 直接 hb build 即可

      发布在 Wireless & Analog Series
      H
      HU_710774265
    • 回复: hello 没有如约出现 怎么办?

      [OHOS ERROR] [266/267] ACTION //device/xradio/xr806:libSDK(//build/lite/toolchain:arm-none-eabi-gcc)
      [OHOS ERROR] FAILED: obj/device/xradio/xr806/libSDK_build_ext_components.txt
      [OHOS ERROR] /usr/bin/python3 ../../../build/lite/build_ext_components.py --path=../../../device/xradio/xr806 --command=./build.sh\ /home/make/xr806_openharmony/out/xr806/wifi_skylark --target_dir=/home/make/xr806_openharmony/out/xr806/wifi_skylark/obj/device/xradio/xr806/build.log --out_dir=/home/make/xr806_openharmony/out/xr806/wifi_skylark/error.log
      [OHOS ERROR] Traceback (most recent call last):
      [OHOS ERROR] File "/home/make/xr806_openharmony/device/xradio/xr806/libcopy.py", line 47, in <module>
      [OHOS ERROR] vendorf = open('.{0}/../../../vendor/xradio/xr806/config.json'.format(pwd),'r')
      [OHOS ERROR] FileNotFoundError: [Errno 2] No such file or directory: './home/make/xr806_openharmony/device/xradio/xr806/../../../vendor/xradio/xr806/config.json'
      [OHOS ERROR] make[1]: 进入目录“/home/make/xr806_openharmony/device/xradio/xr806/xr_skylark/project/demo/wlan_ble_demo/gcc”
      [OHOS ERROR] ../../../../project/project.mk:4: ../../../../ohos.mk: 没有那个文件或目录
      [OHOS ERROR] make[1]: *** 没有规则可制作目标“../../../../ohos.mk”。 停止。
      [OHOS ERROR] make[1]: 离开目录“/home/make/xr806_openharmony/device/xradio/xr806/xr_skylark/project/demo/wlan_ble_demo/gcc”
      [OHOS ERROR] make: *** [Makefile:164:build] 错误 2
      [OHOS ERROR] you can check build log in /home/make/xr806_openharmony/out/xr806/wifi_skylark/build.log
      [OHOS ERROR] command: "/home/make/xr806_openharmony/prebuilts/build-tools/linux-x86/bin/ninja -w dupbuild=warn -C /home/make/xr806_openharmony/out/xr806/wifi_skylark" failed
      [OHOS ERROR] return code: 1
      [OHOS ERROR] execution path: /home/make/xr806_openharmony

      发布在 Wireless & Analog Series
      H
      HU_710774265
    • 回复: hello 没有如约出现 怎么办?

      这个问题有点奇怪了

      Wifi Test Start
      hiview init success.
      console init success 2 set is ok
      hello world!
      hello world!
      hello world!
      hello world!
      
      

      我还原了

          deps += [
            "adapter/hals:adapter",
            "adapter/console:app_console",
            #"adapter/hello_demo:app_hello",
            "ohosdemo:ohosdemo",
          ]
      

      然后对
      /home/make/xr806_openharmony/device/xradio/xr806/xr_skylark/ohos.mk
      增加了行

      OHOSSOURCE = -Wl,--whole-archive
      OHOSSOURCE += $(ROOT_PATH)/lib/ohos/libapp_console.a
      这行我加的OHOSSOURCE += $(ROOT_PATH)/lib/ohos/libapp_hello.a
      OHOSSOURCE += -Wl,--no-whole-archive
      

      现在 app_hello app_WlanTest
      都进来了????
      app_peripheral 哪去了??????

      发布在 Wireless & Analog Series
      H
      HU_710774265

    HU_710774265 发布的最新帖子

    • 回复: IIC通信问题异常,该怎么解决呢

      😧 买模块的时候要注意
      啥也不懂可以多找几个一样的去看评论

      发布在 Wireless & Analog Series
      H
      HU_710774265
    • 回复: XR806桌面备忘录/天气预报/相册项目开题报告

      @mysteryli 😧 我忘记了我有装2.x

      发布在 Wireless & Analog Series
      H
      HU_710774265
    • 回复: R329语音识别视频教程,从编译到部署,完全可用

      @q1215200171 😲 没有板子🙄 能白嫖吗。

      发布在 A Series
      H
      HU_710774265
    • 回复: XR806桌面备忘录/天气预报/相册项目开题报告

      @mysteryli
      [make@archlinux xr806_openharmony]$ python -V
      Python 3.10.1
      [make@archlinux xr806_openharmony]$

      发布在 Wireless & Analog Series
      H
      HU_710774265
    • 回复: R329语音识别视频教程,从编译到部署,完全可用

      😊 说实话有被这个吸引到。

      发布在 A Series
      H
      HU_710774265
    • 最新arm工具链冲突解决方法

      tools/gcc-arm-none-eabi-10.3-2021.10/arm-none-eabi/include/sys/
      删除行
      types.h
      50:#include <sys/select.h>
      time.h
      49:#include <sys/select.h>
      如此fd_set 冲突不存在了
      目前我跑起来没什么问题

      记得全体重新编译下。
      make build_clean
      make lib -j4
      再 hb build -f

      发布在 Wireless & Analog Series
      H
      HU_710774265
    • 回复: 【XR806开发板试用】实时时钟

      发布在 Wireless & Analog Series
      H
      HU_710774265
    • 【XR806开发板试用】实时时钟

      spi+ntp+max7219=实时时钟
      wifi 通过ntp获取时间 交由8位数码管显示
      PIN 使用
      1-5V
      11-GND
      12-SPI0_MOSI
      13-SPI0_CS0
      14-SPI0_MISO -未使用
      15-SPI0_CLK
      接线
      xr806----------8位数码管max7219
      1-----------------vcc
      11----------------gnd
      12----------------din
      13----------------cs
      15----------------clk

      nano 是命令行文本编辑工具 纯个人习惯
      make 是我当前帐号的名字
      cd /home/make/xr806_openharmony/device/xradio/xr806/ohosdemo/
      也可cd ~/xr806_openharmony/device/xradio/xr806/ohosdemo/ 即当前登录帐号目录

      nano BUILD.gn

      group("ohosdemo") {
          deps = [
           "sntp:app_sntp_Test",
          ]
      }
      

      ctrl+o 保存
      回车
      ctrl+x 退出

      创建目录

      mkdir sntp
      cd sntp
      nano BUILD.gn

      import("//device/xradio/xr806/liteos_m/config.gni")
      
      static_library("app_sntp_Test") {
         configs = []
      
         sources = [
            "main.c",
         ]
      
         cflags = board_cflags
      
         include_dirs = board_include_dirs
         include_dirs += [
              ".",
              "//utils/native/lite/include",
              "//foundation/communication/wifi_lite/interfaces/wifiservice",
              "//device/xradio/xr806/xr_skylark/include/net/sntp",
               "//base/iot_hardware/peripheral/interfaces/kits",
         ]
      }
      

      ctrl+o 保存
      回车
      ctrl+x 退出

      nano main.c

      #include <stdio.h>
      #include "ohos_init.h"
      #include "kernel/os/os.h"
      #include "wifi_device.h"
      #include "sntp.h"
      #include "iot_gpio.h"
      #include "driver/chip/hal_spi.h"
      #include "common/framework/platform_init.h"
      
      /* spi */
      #define DEMO_SPI_MCLK (48 * 1000 * 1000)
      #define DEMO_SPI_CS_LEVEL 0
      #define DEMO_SPI_PORT SPI0
      #define DEMO_SPI_CS SPI_TCTRL_SS_SEL_SS0
      #define DEMO_FLASH_INSTRUCTION_RDID 0x9F /* flash jedec id */
      
      static OS_Thread_t g_main_thread;
      static OS_Thread_t g_time_thread;
      
      
      #define WIFI_DEVICE_CONNECT_AP_SSID "11111111"//wifi名称
      #define WIFI_DEVICE_CONNECT_AP_PSK "11111111"//wifi密码
      
      #define SNTP_YEAR_OFFSET (2000)
      #define CMD_SYSLOG printf
      #define CMD_LOG(flags, fmt, arg...) \
      	do                              \
      	{                               \
      		if (flags)                  \
      			CMD_SYSLOG(fmt, ##arg); \
      	} while (0)
      
      /*8 DIGITS begin*/
      #define NUMBER_OF_DIGITS 8
      typedef enum
      {
      	REG_NO_OP = 0x00,
      	REG_DIGIT_0 = 0x01,
      	REG_DIGIT_1 = 0x02,
      	REG_DIGIT_2 = 0x03,
      	REG_DIGIT_3 = 0x04,
      	REG_DIGIT_4 = 0x05,
      	REG_DIGIT_5 = 0x06,
      	REG_DIGIT_6 = 0x07,
      	REG_DIGIT_7 = 0x08,
      	REG_DECODE_MODE = 0x09,	 //译码方式,0x00为不译码,0xff为译码
      	REG_INTENSITY = 0x0A,	 //显示亮度,取值范围0~f
      	REG_SCAN_LIMIT = 0x0B,	 // 8位扫描显示,取值范围0x01~0x07
      	REG_SHUTDOWN = 0x0C,	 //操作方式,0x00为低功耗模式,0x01为正常操作模式
      	REG_DISPLAY_TEST = 0x0F, //显示状态,0x00为正常显示,0x01为显示测试
      } MAX7219_REGISTERS;
      
      typedef enum
      {
      	DIGIT_1 = 1,
      	DIGIT_2 = 2,
      	DIGIT_3 = 3,
      	DIGIT_4 = 4,
      	DIGIT_5 = 5,
      	DIGIT_6 = 6,
      	DIGIT_7 = 7,
      	DIGIT_8 = 8
      } MAX7219_Digits;
      
      typedef enum
      {
      	NUM_0 = 0x00,
      	NUM_1 = 0x01,
      	NUM_2 = 0x02,
      	NUM_3 = 0x03,
      	NUM_4 = 0x04,
      	NUM_5 = 0x05,
      	NUM_6 = 0x06,
      	NUM_7 = 0x07,
      	NUM_8 = 0x08,
      	NUM_9 = 0x09,
      	MINUS = 0x0A, //-号
      	LETTER_E = 0x0B,
      	LETTER_H = 0x0C,
      	LETTER_L = 0x0D,
      	LETTER_P = 0x0E,
      	BLANK = 0x0F,  //无显示
      	LETTER_AR = 0x10 //=16 =SYMBOLS  AorR
      } MAX7219_Numeric;
      
      void max7219_Init(uint8_t intensivity);
      void max7219_SetIntensivity(uint8_t intensivity);
      void max7219_Clean(void);
      /*void max7219_SendData(uint8_t addr, uint8_t data);*/
      void max7219_Turn_On(void);
      void max7219_Turn_Off(void);
      void max7219_Decode_On(void);
      void max7219_Decode_Off(void);
      void max7219_PrintDigit(MAX7219_Digits position, MAX7219_Numeric numeric, bool point);
      MAX7219_Digits max7219_PrintItos(MAX7219_Digits position, int value);
      MAX7219_Digits max7219_PrintNtos(MAX7219_Digits position, uint32_t value, uint8_t n);
      MAX7219_Digits max7219_PrintFtos(MAX7219_Digits position, float value, uint8_t n);
      
      int LED8Main(void);
      
      static uint8_t decodeMode = 0x00;
      
      static uint8_t SYMBOLS[] = {
      	0x7E, // numeric 0
      	0x30, // numeric 1
      	0x6D, // numeric 2
      	0x79, // numeric 3
      	0x33, // numeric 4
      	0x5B, // numeric 5
      	0x5F, // numeric 6
      	0x70, // numeric 7
      	0x7F, // numeric 8
      	0x7B, // numeric 9
      	0x01, // minus
      	0x4F, // letter E
      	0x37, // letter H
      	0x0E, // letter L
      	0x67, // letter P
      	0x00, // blank
      	0x77  //AorR
      };
      
      static uint16_t getSymbol(uint8_t number);
      static uint32_t lcdPow10(uint8_t n);
      
      /*8 DIGITS func end*/
      void max7219_Init(uint8_t intensivity)
      {
      	max7219_Turn_On();
      	max7219_SendData(REG_SCAN_LIMIT, NUMBER_OF_DIGITS - 1);
      	max7219_SetIntensivity(intensivity);
      	max7219_Clean();
      }
      //显示亮度
      void max7219_SetIntensivity(uint8_t intensivity)
      {
      	if (intensivity > 0x0F)
      	{
      		return;
      	}
      
      	max7219_SendData(REG_INTENSITY, intensivity);
      }
      
      void max7219_Clean()
      {
      	uint8_t clear = 0x00;
      
      	if (decodeMode == 0xFF)
      	{
      		clear = BLANK;
      	}
      
      	for (int i = 0; i < 8; ++i)
      	{
      		max7219_SendData(i + 1, clear);
      	}
      }
      
      // #define data_len (20*1024)
      #define data_len (20 * 1024)
      uint8_t tx_data[data_len] = {0};
      
      inline void max7219_SendData(uint8_t addr, uint8_t data)
      {
      	HAL_Status ret = HAL_OK;
      	HAL_SPI_CS(DEMO_SPI_PORT, 1);
      	// printf("spi write...\n");
      	tx_data[0] = addr;
      	tx_data[1] = data;
      	ret = HAL_SPI_Transmit(DEMO_SPI_PORT, &tx_data, 2);
      	if (ret != HAL_OK)
      	{
      		printf("spi 1write failed");
      	}
      
      	HAL_SPI_CS(DEMO_SPI_PORT, 0);
      }
      //操作方式
      void max7219_Turn_On(void)
      {
      	max7219_SendData(REG_SHUTDOWN, 0x01);
      }
      //操作方式
      void max7219_Turn_Off(void)
      {
      	max7219_SendData(REG_SHUTDOWN, 0x00);
      }
      //译码方式
      void max7219_Decode_On(void)
      {
      	decodeMode = 0xFF;
      	max7219_SendData(REG_DECODE_MODE, decodeMode);
      }
      //译码方式
      void max7219_Decode_Off(void)
      {
      	decodeMode = 0x00;
      	max7219_SendData(REG_DECODE_MODE, decodeMode);
      }
      
      void max7219_PrintDigit(MAX7219_Digits position, MAX7219_Numeric numeric, bool point)
      {
      	if (position > NUMBER_OF_DIGITS)
      	{
      		return;
      	}
      
      	if (point)
      	{
      		if (decodeMode == 0x00)
      		{
      			max7219_SendData(position, getSymbol(numeric) | (1 << 7));
      		}
      		else if (decodeMode == 0xFF)
      		{
      			max7219_SendData(position, numeric | (1 << 7));
      		}
      	}
      	else
      	{
      		if (decodeMode == 0x00)
      		{
      			max7219_SendData(position, getSymbol(numeric) & (~(1 << 7)));
      		}
      		else if (decodeMode == 0xFF)
      		{
      			max7219_SendData(position, numeric & (~(1 << 7)));
      		}
      	}
      }
      
      MAX7219_Digits max7219_PrintItos(MAX7219_Digits position, int value)
      {
      	max7219_SendData(REG_DECODE_MODE, 0xFF);
      
      	int32_t i;
      
      	if (value < 0)
      	{
      		if (position > 0)
      		{
      			max7219_SendData(position, MINUS);
      			position--;
      		}
      		value = -value;
      	}
      
      	i = 1;
      
      	while ((value / i) > 9)
      	{
      		i *= 10;
      	}
      
      	if (position > 0)
      	{
      		max7219_SendData(position, value / i);
      		position--;
      	}
      
      	i /= 10;
      
      	while (i > 0)
      	{
      		if (position > 0)
      		{
      			max7219_SendData(position, (value % (i * 10)) / i);
      			position--;
      		}
      
      		i /= 10;
      	}
      
      	max7219_SendData(REG_DECODE_MODE, decodeMode);
      
      	return position;
      }
      
      MAX7219_Digits max7219_PrintNtos(MAX7219_Digits position, uint32_t value, uint8_t n)
      {
      	max7219_SendData(REG_DECODE_MODE, 0xFF);
      
      	if (n > 0u)
      	{
      		uint32_t i = lcdPow10(n - 1u);
      
      		while (i > 0u) /* Display at least one symbol */
      		{
      			if (position > 0u)
      			{
      				max7219_SendData(position, (value / i) % 10u);
      				position--;
      			}
      
      			i /= 10u;
      		}
      	}
      
      	max7219_SendData(REG_DECODE_MODE, decodeMode);
      
      	return position;
      }
      
      MAX7219_Digits max7219_PrintFtos(MAX7219_Digits position, float value, uint8_t n)
      {
      	if (n > 4)
      	{
      		n = 4;
      	}
      
      	max7219_SendData(REG_DECODE_MODE, 0xFF);
      
      	if (value < 0.0)
      	{
      		if (position > 0)
      		{
      			max7219_SendData(position, MINUS);
      			position--;
      		}
      
      		value = -value;
      	}
      
      	position = max7219_PrintItos(position, (int32_t)value);
      
      	if (n > 0u)
      	{
      		max7219_PrintDigit(position + 1, ((int32_t)value) % 10, true);
      
      		position = max7219_PrintNtos(position, (uint32_t)(value * (float)lcdPow10(n)), n);
      	}
      
      	max7219_SendData(REG_DECODE_MODE, decodeMode);
      
      	return position;
      }
      
      static uint16_t getSymbol(uint8_t number)
      {
      	return SYMBOLS[number];
      }
      
      static uint32_t lcdPow10(uint8_t n)
      {
      	uint32_t retval = 1u;
      
      	while (n > 0u)
      	{
      		retval *= 10u;
      		n--;
      	}
      
      	return retval;
      }
      /*8 DIGITS func end*/
      
      static int wifi_device_connect()
      {
      	const char ssid_want_connect[] = WIFI_DEVICE_CONNECT_AP_SSID;
      	const char psk[] = WIFI_DEVICE_CONNECT_AP_PSK;
      
      	if (WIFI_SUCCESS != EnableWifi())
      	{
      		printf("Error: EnableWifi fail.\n");
      		return;
      	}
      	printf("EnableWifi Success.\n");
      
      	if (WIFI_STA_ACTIVE == IsWifiActive())
      		printf("Wifi is active.\n");
      
      	OS_Sleep(1);
      
      	if (WIFI_SUCCESS != Scan())
      	{
      		printf("Error: Scan fail.\n");
      		return;
      	}
      	printf("Wifi Scan Success.\n");
      
      	OS_Sleep(1);
      
      	WifiScanInfo scan_results[30];
      	unsigned int scan_num = 30;
      
      	if (WIFI_SUCCESS != GetScanInfoList(scan_results, &scan_num))
      	{
      		printf("Error: GetScanInfoList fail.\n");
      		return;
      	}
      
      	WifiDeviceConfig config = {0};
      	int netId = 0;
      
      	int i;
      	for (i = 0; i < scan_num; i++)
      	{
      		if (0 == strcmp(scan_results[i].ssid, ssid_want_connect))
      		{
      			memcpy(config.ssid, scan_results[i].ssid,
      				   WIFI_MAX_SSID_LEN);
      			memcpy(config.bssid, scan_results[i].bssid,
      				   WIFI_MAC_LEN);
      			strcpy(config.preSharedKey, psk);
      			config.securityType = scan_results[i].securityType;
      			config.wapiPskType = WIFI_PSK_TYPE_ASCII;
      			config.freq = scan_results[i].frequency;
      			break;
      		}
      	}
      
      	if (i >= scan_num)
      	{
      		printf("Error: No found ssid in scan_results\n");
      		return;
      	}
      	printf("GetScanInfoList Success.\n");
      
      	if (WIFI_SUCCESS != AddDeviceConfig(&config, &netId))
      	{
      		printf("Error: AddDeviceConfig Fail\n");
      		return;
      	}
      	printf("AddDeviceConfig Success.\n");
      
      	if (WIFI_SUCCESS != ConnectTo(netId))
      	{
      		printf("Error: ConnectTo Fail\n");
      		return;
      	}
      	printf("ConnectTo Success\n");
      }
      
      static int my_sntp_init()
      {
      	if (sntp_set_server(0, "0.cn.pool.ntp.org") == 0)
      	{
      		printf("set OK \r\n");
      	}
      }
      int LED8Main(void)
      {
      	printf("platform_init.\n");
      	/*platform_init();*/
      	printf("spi demo started.\n");
      
      	SPI_Global_Config spi_param;
      
      	spi_param.cs_level = DEMO_SPI_CS_LEVEL;
      	spi_param.mclk = DEMO_SPI_MCLK;
      
      	HAL_SPI_Init(DEMO_SPI_PORT, &spi_param);
      
      	SPI_Config spi_Config;
      	HAL_Status ret = HAL_OK;
      	uint8_t cmd = DEMO_FLASH_INSTRUCTION_RDID; /* read flash id cmd */
      	uint32_t data = 0;
      
      	spi_Config.firstBit = SPI_TCTRL_FBS_MSB; //
      	//SPI_LITTLEENDIAN;//第一字节 SPI_LITTLEENDIAN,SPI_BIGENDIAN
      	spi_Config.mode = SPI_CTRL_MODE_MASTER;
      	//SPI_MODE_MASTER;//SPI_MODE_SLAVE 从,SPI_MODE_MASTER 主
      	spi_Config.opMode = SPI_OPERATION_MODE_POLL;
      	spi_Config.sclk = 24000000;
      	spi_Config.sclkMode = SPI_SCLK_Mode0;
      
      	printf("spi open...\n");
      	ret = HAL_SPI_Open(DEMO_SPI_PORT, DEMO_SPI_CS, &spi_Config, 5000);
      	if (ret != HAL_OK)
      	{
      		printf("spi open failed");
      		return ret;
      	}
      
      	HAL_SPI_Config(DEMO_SPI_PORT, SPI_ATTRIBUTION_IO_MODE, SPI_IO_MODE_NORMAL);
      
      	printf("spi demo over.\n");
      	return 0;
      }
      
      //抄  https://github.com/taburyak/STM32_MAX7219_SPI
      //demos https://stm32withoutfear.blogspot.com/2019/06/stm32-7segments-8digits-max7219-spi.html
      
      static void MainThread(void *arg)
      {
      	printf("MainThread.\n");
      	LED8Main();
      	max7219_Init(7);
      	max7219_SetIntensivity(1);
      	max7219_Decode_Off();
      				max7219_SendData(DIGIT_4,79);
      				max7219_SendData(DIGIT_3, 119);
      				max7219_SendData(DIGIT_2, 119);
      	LOS_Msleep(5000);			
      	max7219_Decode_On();
      	max7219_PrintNtos(DIGIT_8,88888888, 8); //此处前面带 0 补充4位
      	LOS_Msleep(1000);
      	max7219_Clean();
      	int modi;
      	int setint = 1;
      	while (1)
      	{
      		modi++;
      		setint++;
      		if (setint == 16)
      		{
      			setint = 1;
      		}
      		max7219_SetIntensivity(setint);
      
      		if (WIFI_STA_ACTIVE == IsWifiActive())
      		{
      			// max7219_Clean();
      			printf("Wifi is active.\n");
      			if (sntp_request(NULL) != 0)
      			{
      				//视频中用手捂住开发板后会进入此处
      				/*max7219_PrintDigit(DIGIT_4, LETTER_E, false);*/
      				LOS_Msleep(1);
      				max7219_Decode_Off();
      				max7219_Clean();
      				LOS_Msleep(1);
      				max7219_PrintDigit(DIGIT_6, LETTER_AR,false);//A OR R
      				max7219_SendData(DIGIT_4,79);//E
      				max7219_SendData(DIGIT_3, 119);//R
      				max7219_SendData(DIGIT_2, 119);//R
      				LOS_Msleep(5000);
      				max7219_Decode_On();
      				max7219_Clean();
      				printf("<sntp> <response : fail>\n");
      				// goto bexit;
      			}
      			else
      			{
      				// max7219_Clean();
      				sntp_time *time = (sntp_time *)sntp_obtain_time();
      				printf("<sntp><response:success>\n");
      				//11111111
      				if (modi % 2 == 0)
      				{
      					max7219_PrintNtos(DIGIT_8, time->year + SNTP_YEAR_OFFSET, 4);//年
      					max7219_PrintNtos(DIGIT_4, time->mon, 2);					  //月
      					max7219_PrintNtos(DIGIT_2, time->day, 2);					  //日
      				}
      				else
      				{
      					max7219_PrintNtos(DIGIT_8, time->hour, 2);//小时     第一位无数字自动补充0
      					max7219_PrintDigit(DIGIT_6, BLANK, true);// 。
      					max7219_PrintNtos(DIGIT_5, time->min, 2);//分        第一位无数字自动补充0
      					max7219_PrintDigit(DIGIT_3, BLANK, true);// 。
      					max7219_PrintNtos(DIGIT_2, time->sec & 0x3f, 2);//秒 第一位无数字自动补充0 
      				}
      				CMD_LOG(1, "sntp(%u-%02u-%02u ", time->year + SNTP_YEAR_OFFSET, time->mon, time->day);
      				CMD_LOG(1, "%02u:%02u:%02u)\n", time->hour, time->min, time->sec);
      				LOS_Msleep(4000);
      			}
      		}
      		else
      		{   //初始化连接 wifi
      			max7219_Clean();
      			max7219_PrintDigit(DIGIT_8, BLANK, true);
      			LOS_Msleep(1000);
      			max7219_PrintDigit(DIGIT_7, BLANK, true);
      			LOS_Msleep(1000);
      			max7219_PrintDigit(DIGIT_6, BLANK, true);
      			LOS_Msleep(1000);
      			max7219_PrintDigit(DIGIT_5, BLANK, true);
      			printf("Wifi is passive.\n");
      			wifi_device_connect();
      			max7219_PrintDigit(DIGIT_4, BLANK, true);
      			LOS_Msleep(1000);
      			max7219_PrintDigit(DIGIT_3, BLANK, true);
      			LOS_Msleep(1000);
      			max7219_PrintDigit(DIGIT_2, BLANK, true);
      			LOS_Msleep(1000);
      			max7219_PrintDigit(DIGIT_1, BLANK, true);
      			LOS_Msleep(1000);
      		}
      	}
      	printf("bexit is passive.\n");
      }
      
      void SNTPTestMain(void) //(2)
      {
      	printf("SNTP Test Start\n");
      	if (OS_ThreadIsValid(&g_main_thread))
      	{
      		printf("sntp task is running\n");
      	}
      	else
      	{
      		if (OS_ThreadCreate(&g_main_thread, "MainThread", MainThread, NULL,
      							OS_THREAD_PRIO_APP, 4 * 1024) != OS_OK)
      		{
      			printf("[ERR] Create SNTP Test  MainThread Failed\n");
      		}
      	}
      }
      
      SYS_RUN(SNTPTestMain);
      
      //必须以app开头 否则不会调用
      

      ctrl+o 保存
      回车
      ctrl+x 退出

      对上面操作完毕后
      由于我们修改了/home/make/xr806_openharmony/device/xradio/xr806/ohosdemo/BUILD.gn
      cd /home/make/xr806_openharmony
      hb build -f
      必须-f 如若未修改BUILD.gn 大可不必 直接 hb build 即可

      发布在 Wireless & Analog Series
      H
      HU_710774265
    • 回复: XR806板子异常崩溃,无法重新下载固件的问题

      @cszzlsw 如果一直停在3% 看我这个
      https://bbs.aw-ol.com/topic/785/一直-3-opening-com-咋解决
      其实你把 "adapter/console:app_console", 删除了是吧。
      { "upgrade", cmd_upgrade_exec },
      { "reboot", cmd_reboot_exec },
      这两个条件被破坏了。 upgrade 升级固件串口给板子信息用的

      发布在 Wireless & Analog Series
      H
      HU_710774265
    • 回复: XR806 gitee仓库临时变更通知

      @oiouou123
      /home/你的用户名/xr806_openharmony/.repo/manifests/devboard_xr806.xml
      删除
      <project name="devboard_device_allwinner_xr806" path="device/xradio" revision="master" remote="sig"/>
      执行
      repo sync -c
      再执行下面的

      cd /home/你的用户名/xr806_openharmony/device/
      git clone https://gitee.com/moldy-potato-chips/devboard_device_allwinner_xr806 xradio
      
      发布在 Wireless & Analog Series
      H
      HU_710774265