HU_710774265LV 4
@HU_710774265
Best posts made by HU_710774265
-
Reply: 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)
-
【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')
- 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 就能愉快的跑起来了。
-
【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----------------clknano 是命令行文本编辑工具 纯个人习惯
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.gnimport("//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 即可
Latest posts made by HU_710774265
-
Reply: XR806桌面备忘录/天气预报/相册项目开题报告
@mysteryli
[make@archlinux xr806_openharmony]$ python -V
Python 3.10.1
[make@archlinux xr806_openharmony]$ -
最新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 -
【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----------------clknano 是命令行文本编辑工具 纯个人习惯
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.gnimport("//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 即可 -
Reply: 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 升级固件串口给板子信息用的 -
Reply: 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