如何确认示例真的输出了“Hello World”

鲸余
发布于 2020-10-29 18:05
浏览
0收藏

如何确认示例真的输出了“Hello World”

 

环境最少要求:

能编译即可( CentOS 或者 ubuntu 都可以 ),不需要开发环境,不需要烧录环境。

 

 

本来想在OLED屏幕打印“Hello World”,参考  I2C驱动 Hi3861 驱动OLED屏幕显示  ,按照视频操作编写了,能正常编译,烧录,经过多次验证,但还是没能正常显示。此范例暂时放一下,从容易点的弄吧。

 

参考了 https://gitee.com/openharmony 上的两个实例
Hi3861开发板第一个示例程序
Hi3861开发板第二个示例程序

第一个示例比较简单,如果已经部署好了开发环境,编译+烧录(废话)。

第二个示例就更简单了,只要有编译环境即可(手写代码即可)。

 

以下是我的操作过程

- 编写 Hello World 简单业务

# 下载鸿蒙源码并解压
mkdir -p /data/software/code-1.0

cd /data/software/

wget https://repo.huaweicloud.com/harmonyos/os/1.0/code-1.0.tar.gz 

tar xf code-1.0.tar.gz -C /data/software/code-1.0

# 编写示例
cd /data/software/code-1.0/applications/sample/wifi-iot/app/

mkdir my_first_app

cd my_first_app

cat > hello_world.c <<EOF

#include <stdio.h>
#include "ohos_init.h"
#include "ohos_types.h"

void HelloWorld(void)
{
    printf("[DEMO] Hello world.\n");
}
SYS_RUN(HelloWorld);

EOF


cat > BUILD.gn <<EOF

static_library("myapp") {
    sources = [
        "hello_world.c"
    ]
    include_dirs = [
        "//utils/native/lite/include"
    ]
}

EOF

cat > ../BUILD.gn << EOF

import("//build/lite/config/component/lite_component.gni")

lite_component("app") {
    features = [
        "my_first_app:myapp",
    ]
}

EOF

# 编译
cd /data/software/code-1.0/

python3 build.py wifiiot

编译成功!

如何确认示例真的输出了“Hello World”-鸿蒙开发者社区

 

查看编译输出内容:

cd /data/software/code-1.0/out/wifiiot/

grep DEMO ./Hi3861_wifiiot_app.asm
#输出内容如下
  4ae6dc:	0000 0000 445b 4d45 5d4f 4820 6c65 6f6c     ....[DEMO] Hello

# 细看编译时的输出内容
less ./Hi3861_wifiiot_app.asm 再输入 /Hello , 回车,即可定位到 HelloWorld ,请看下面两图:

如何确认示例真的输出了“Hello World”-鸿蒙开发者社区

如何确认示例真的输出了“Hello World”-鸿蒙开发者社区

 

参考:

https://gitee.com/openharmony/docs/blob/master/quick-start/Hi3861%E5%BC%80%E5%8F%91%E6%9D%BF%E7%AC%AC%E4%BA%8C%E4%B8%AA%E7%A4%BA%E4%BE%8B%E7%A8%8B%E5%BA%8F.md

收藏
回复
举报
回复
    相关推荐