【嵌入式AI】全志 XR806 say hello world
? 欢迎关注我的公众号 [极智视界],回复001获取Google编程规范
? O_o
? >_<
? o_O
? O_o
? ~_~
? o_O
? 大家好,我是极智视界,本文介绍了全志 XR806 say hello world 实现。
? 咱们之前已经完成了 XR806 鸿蒙系统的固件编译和固件烧录,得到的终端输出类似这样:
? ? ?
文章图片
?这里进入下一阶段,先让 XR806 板子来一下 blink、blink,以示准备就绪。
?在串口调试命令终端输入如下指令:
hm iot pwm init p=2
hm iot pwd
?看板子的灯 blink~blink~blink~
? 接下来开始实现 hello world。
?需要重新走一遍固件编译与固件烧录,打开
/device/xradio/xr806/BUILD.gn
,配置为启用 deps += "ohosdemo:ohosdemo"
,如下:# device/xradio/xr806/BUILD.gnimport("//build/lite/config/subsystem/lite_subsystem.gni")
import("//build/lite/config/component/lite_component.gni")
import("//base/security/huks/build/config.gni")build_ext_component("libSDK") {
exec_path = rebase_path(".", root_build_dir)
outdir = rebase_path("$root_out_dir")
command = "./build.sh ${outdir}"
deps = [
"//build/lite/:ohos",
"//kernel/liteos_m:kernel",
"os:liteos_glue",
]
if (IsBootloader == "false") {
deps += [
"adapter/hals:adapter",
"adapter/console:app_console",
"ohosdemo:ohosdemo"# 启用 ohosdemo
]
}
if (disable_huks_binary == true) {
deps += [
"//base/security/huks/frameworks/huks_lite:huks_sdk",
]
}
}group("xr806") {
}
?循着指示到
/device/xradio/xr806/ohosdemo/BUILD.gn
,启用 deps = "hello_demo:app_hello"
,如下:# device/xradio/xr806/ohosdemo/BUILD.gngroup("ohosdemo") {
deps = [
"hello_demo:app_hello",
#"iot_peripheral:app_peripheral",
#"wlan_demo:app_WlanTest",
]
}
? 到这里配置就可以了,为了更加深入一些,咱们继续看,
/device/xradio/xr806/ohosdemo
目录结构如下:-
|-- hello_demo
||-- src
||-- main.c
||-- BUILD.gn
|-- iot_peripheral
||-- ...
|-- wlan_demo
||-- ...
|-- BUILD.gn
? 来看一下 hello_demo 文件夹下的 BUILD.gn:
# device/xradio/xr806/ohosdemo/hello_demo/BUILD.gnimport("//device/xradio/xr806/liteos_m/config.gni")static_library("app_hello") {# 这里就很容易看懂 "hello_demo:app_hello"
configs = []sources = [
"src/main.c",
]cflags = board_cflagsinclude_dirs = board_include_dirs
include_dirs += [
"//kernel/liteos_m/kernel/arch/include",
]
}
?最后的实现在
src/main.c
,代码很简单:#include
#include "ohos_init.h"
#include "kernel/os/os.h"
static OS_Thread_t g_main_thread;
static void MainThread(void *arg){/// 每秒打印 hello world
while (1) {
printf("hello world!\n");
LOS_Msleep(1000);
}
}void HelloTestMain(void){
printf("Wifi Test Start\n");
if (OS_ThreadCreate(&g_main_thread, "MainThread", MainThread, NULL,
OS_THREAD_PRIO_APP, 4 * 1024) != OS_OK) {
printf("[ERR] Create MainThread Failed\n");
}
}
SYS_RUN(HelloTestMain);
?以上就是 XR806 say hello world 的整个逻辑,下面要做的就是重新走一遍固件编译和烧录,然后终端展示:
? ? ?
文章图片
?[注]
?解决终端输出偏移问题,类似:
? ? ?
文章图片
?对于 Xshell 和 MobaXterm 分别提供解决方法。
- Xshell:
文章图片
?work 了:
? ? ?
文章图片
- MobaXterm:
文章图片
? (2) 右击终端选择 "Change Terminal Settings",然后勾选 "Implicit CR in every LF":
文章图片
文章图片
?这样就 work 了:
? ? ?
文章图片
? 以上分享了全志 XR806 板子 say hello 的过程,希望我的分享能对你的学习有一点帮助。
【【嵌入式AI】全志 XR806 say hello world】【公众号传送】
《【嵌入式AI】全志 XR806 say hello world》
推荐阅读
- 宽容谁
- 我要做大厨
- 增长黑客的海盗法则
- 画画吗()
- 2019-02-13——今天谈梦想()
- 远去的风筝
- 三十年后的广场舞大爷
- 叙述作文
- 20190302|20190302 复盘翻盘
- 学无止境,人生还很长