[文章]在 Hi3518EV300 运行 Hello OHOS(编译、烧录)

阅读量0
0
0
本文指导开发者在单板上运行第一个应用程序,其中包括新建应用程序、编译、烧写、运行等步骤,最终输出“Hello OHOS!”。
新建应用程序
  • 新建目录及源码
    新建applications/sample/camera/apps/src/helloworld.c目录及文件,代码如下所示,用户可以自定义修改打印内容(例如:修改OHOS为World)。当前应用程序可支持标准C及C++的代码开发。
    1. #include <stdio.h>

    2. int main(int argc, char **argv)
    3. {
    4.     printf("n************************************************n");
    5.     printf("nttHello OHOS!n");
    6.     printf("n************************************************nn");

    7.     return 0;
    8. }
    复制代码

  • 新建编译组织文件
    新建applications/sample/camera/apps/BUILD.gn文件,内容如下所示:
    1. import("//build/lite/config/component/lite_component.gni")
    2. lite_component("hello-OHOS") {
    3.   features = [ ":helloworld" ]
    4. }
    5. executable("helloworld") {
    6.   output_name = "helloworld"
    7.   sources = [ "src/helloworld.c" ]
    8.   include_dirs = []
    9.   defines = []
    10.   cflags_c = []
    11.   ldflags = []
    12. }
    复制代码

  • 添加新组件
    修改文件build/lite/components/applications.json,添加组件hello_world_app的配置,如下所示为applications.json文件片段,"##start##"和"##end##"之间为新增配置("##start##"和"##end##"仅用来标识位置,添加完配置后删除这两行):
    1. {
    2.   "components": [
    3.     {
    4.       "component": "camera_sample_communication",
    5.       "description": "Communication related samples.",
    6.       "optional": "true",
    7.       "dirs": [
    8.         "applications/sample/camera/communication"
    9.       ],
    10.       "targets": [
    11.         "//applications/sample/camera/communication:sample"
    12.       ],
    13.       "rom": "",
    14.       "ram": "",
    15.       "output": [],
    16.       "adapted_kernel": [ "liteos_a" ],
    17.       "features": [],
    18.       "deps": {
    19.         "components": [],
    20.         "third_party": []
    21.       }
    22.     },
    23. ##start##
    24.     {
    25.       "component": "hello_world_app",
    26.       "description": "Communication related samples.",
    27.       "optional": "true",
    28.       "dirs": [
    29.         "applications/sample/camera/apps"
    30.       ],
    31.       "targets": [
    32.         "//applications/sample/camera/apps:hello-OHOS"
    33.       ],
    34.       "rom": "",
    35.       "ram": "",
    36.       "output": [],
    37.       "adapted_kernel": [ "liteos_a" ],
    38.       "features": [],
    39.       "deps": {
    40.         "components": [],
    41.         "third_party": []
    42.       }
    43.     },
    44. ##end##
    45.     {
    46.       "component": "camera_sample_app",
    47.       "description": "Camera related samples.",
    48.       "optional": "true",
    49.       "dirs": [
    50.         "applications/sample/camera/launcher",
    51.         "applications/sample/camera/cameraApp",
    52.         "applications/sample/camera/setting",
    53.         "applications/sample/camera/gallery",
    54.         "applications/sample/camera/media"
    55.       ],
    复制代码

  • 修改单板配置文件
    修改文件vendor/hisilicon/hispark_aries/config.json,新增hello_world_app组件的条目,如下所示代码片段为applications子系统配置,"##start##"和"##end##"之间为新增条目("##start##"和"##end##"仅用来标识位置,添加完配置后删除这两行):
    1.       {
    2.         "subsystem": "applications",
    3.         "components": [
    4. ##start##
    5.           { "component": "hello_world_app", "features":[] },
    6. ##end##
    7.           { "component": "camera_sample_app", "features":[] }

    8.         ]
    9.       },
    复制代码

编译
如果Linux编译环境通过Docker方式安装,具体编译过程请参见Docker方式获取编译环境的编译操作。如果Linux编译环境通过软件包方式安装,进入源码根目录,执行如下命令进行编译:
  1. hb set(设置编译路径)
  2. .(选择当前路径)
  3. 选择ipcamera_hispark_aries@hisilicon并回车
  4. hb build -f(执行编译)
复制代码

结果文件生成在out/hispark_aries/ipcamera_hispark_aries目录下。
图 1  设置图例

须知:Hi3518EV300单板的U-boot文件获取路径:device/hisilicon/hispark_aries/sdk_liteos/uboot/out/boot/u-boot-hi3518ev300.bin
烧录
Hi3518开发板的代码烧录仅支持USB烧录方式。
  • 请连接好电脑和待烧录开发板,以Hi3518EV300为例,需要同时连接串口和USB口,具体可参考Hi3518开发板介绍。
  • 打开电脑的设备管理器,查看并记录对应的串口号。
    说明:如果对应的串口异常,请根据Hi3516/Hi3518系列开发板串口驱动安装指导安装USB转串口的驱动程序。
  • 打开DevEco Device Tool,在Projects中,点击Settings打开工程配置界面。
  • 在“Partition Configuration”页签,设置待烧录文件信息,默认情况下,DevEco Device Tool已针对Hi3518系列开发板进行适配,无需单独修改。
  • 在“hi3518ev300”页签,设置烧录选项,包括upload_port、upload_partitions和upload_protocol。
    • upload_port:选择步骤2中查询的串口号。
    • upload_protocol:选择烧录协议,固定选择“hiburn-u***”。
    • upload_partitions:选择待烧录的文件,默认情况下会同时烧录fastboot、kernel、rootfs和userfs。
  • 所有的配置都修改完成后,在工程配置页签的顶部,点击Save进行保存。
  • 打开工程文件,点击图标,打开DevEco Device Tool界面,在“PROJECT TASKS”中,点击hi3518ev300_fastboot下的Erase按钮,擦除U-Boot。
  • 执行Erase擦除操作后,显示如下提示信息时,请重启开发板(下电再上电)。
  • 重新上电后,显示如下信息时,表示擦除U-Boot成功。
  • 擦除完成后,点击hi3518ev300下的Upload按钮,启动烧录。
  • 启动烧录后,界面提示如下信息时,表示烧录成功。

镜像运行
  • 连接串口。
    须知:若无法连接串口,请参考常见问题进行排查。
    图 2  连接串口图

    • 单击Monitor打开串口。
    • 连续输入回车直到串口显示"hisilicon"。
    • 单板初次启动或修改启动参数,请进入步骤2,否则进入步骤3。
  • (初次烧写必选)修改U-boot的bootcmd及bootargs内容:该步骤为固化操作,可保存执行结果,但U-boot重新烧入,则需要再次执行下述步骤。
    表 1  U-boot修改命令

    执行命令
    命令解释
    setenv bootcmd "sf probe 0;sf read 0x40000000 0x100000 0x600000;go 0x40000000";
    设置bootcmd内容,选择FLASH器件0,读取FLASH起始地址为0x100000,大小为0x600000字节的内容到0x40000000的内存地址,此处0x600000为6MB,与IDE中填写OHOS_Image.bin的文件大小必须相同
    setenv bootargs "console=ttyAMA0,115200n8 root=flash fstype=jffs2 rw rootaddr=7M rootsize=8M";
    表示设置bootargs参数为串口输出,波特率为115200,数据位8,rootfs挂载于FLASH上,文件系统类型为jffs2 rw,以支持可读写JFFS2文件系统。“rootaddr=7M rootsize=8M”处对应填入实际rootfs.img的烧写起始位置与长度,与IDE内所填大小必须相同
    saveenv
    表示保存当前配置。
    reset
    表示复位单板。
    pri
    表示查看显示参数。
    须知:**“go 0x40000000”**为可选指令,默认配置已将该指令固化在启动参数中,单板复位后可自动启动。若想切换为手动启动,可在U-boot启动倒数阶段使用"回车"打断自动启动。
  • 若启动时显示**"hisilicon #字样,请输入“reset”指令,等待系统自启动进入系统,系统启动后,显示“OHOS”字样,输入”./bin/helloworld”**并回车,显示成功结果如下图所示。
    图 3  启动成功并执行应用程序图


回帖

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容图片侵权或者其他问题,请联系本站作侵删。 侵权投诉
链接复制成功,分享给好友