导航

    全志在线开发者论坛

    • 注册
    • 登录
    • 搜索
    • 版块
    • 话题
    • 在线文档
    • 社区主页

    【XR806开发板试用】系列之二:出现已经成功编译,但是无法生成镜像文件的问题

    Wireless & Analog Series
    1
    1
    834
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • B
      bigfly LV 5 最后由 编辑

      本文主要对于编译成功但是烧录出现问题进行解决,用Hello world 和LED点亮代码作为示范

      文章仅为参考网络资料和自身理解,如有不正确之处请多指正

      1、首先确定自己根目录在哪,我们都在根目录进行hb set和hb build -f,判断方法是寻找ohos_config.json文件所在目录。

      2425078455-65143105a4f77.png

      点开可以看见其中的配置信息,记录的信息都能与自身环境对应上

      1593018543-6514314d51268.png

      2、值得一提的是,我在按照官方步骤操作发现虽然源码已经编译成功但是无法成功烧录到板子上,我刚刚开始找到的原因是product_path下的BUILD.gn文件,官方说明如下,但是我的该目录下的BUILD.gn文件是空的。原来以为是这个的原因导致烧录不成功,经过试错和询问大佬后一直没解决,后面解决后也没有更改这个 BUILD.gn.,所以官方文档可能是想说的从device_path中寻找的BUILD.gn,很是避坑^_^

      851362203-6514328568e9d.png

      3、以下简单说明一下如何将自己的代码添加到编译系统进行编译,详细内容仍旧参考官方文档.

      首先进入 $(root_path)/device/xradio/xr806/ohosdemo,(root_path含义见第一点中提到的oho_config.json),再找到同目录下的BUILD.gn,将其中的依赖(deps)添加或者取消注释,使其加入编译系统的编译过程

      1950750716-651435df48cde.png

      -配置的含义是在相同目录下找到一个名为_hello_world和LED 或者 iot_peripheral/wlan_demo的文件夹,在去到该文件夹中寻找BUILD.gn获取相关源代码和包含头文件的信息,BUILD.gn看不懂不要紧,能够明白流程就够了。

      2964444481-6514379f82c76.png

      完成以上步骤理论上在根目录使用hb set& hb build -f再使用烧录工具就可以完成烧录,但是总会出现一些意外情况

      开始我由于看见了一篇博客【XR806开发板试用】编译中的几个问题以及hello跑起来,让我了解到生成可烧录的镜像文件,如何查找后缀为.a的文件用来链接生成镜像文件:$(root_path)/device/xradio/xr806/xr_skylark 目录下的ohos.mk记录了查找到的文件,果然,当时并没有显示我已经生成的.a文件。博客中说可以手动添加,但是我手动添加会报错,大家可以尝试一下。

      2368549074-65143c093b61d.png

      接下来,我们就要更改生成ohos.mk的配置文件,配置文件是$(root_path)/device/xradio/xr806 下的 libcopy.py

      1436004550-65143e4e3a0cb.png

      更改完成后,用file libcopy.py查看文件换行符的格式

      若显示结果中有with CRLF line terminators,则用dos2unix

      libcopy.py转化成Unix下的换行符格式,如果需要保留源格式,可加上参数-n libcopy_back将原来格式存为备份

      更改完成后,可以尝试在跟目录下重新hb build -f编译,如果没有报错,并且在ohos.mk中发现了正确的链接文件地址,那么恭喜你可以开始编写任何你想要的代码了。但是如果出现了这样的报错(注意观察是从哪开始报错的,并且检查error.log)

      [OHOS ERROR] [253/254] ACTION //device/xradio/xr806:libSDK(//build/lite/toolchain:arm-none-eabi-gcc)
      [OHOS ERROR] FAILED: obj/device/xradio/xr806/libSDK_build_ext_components.txt
      

      解决方法论坛原文:

      $(root_path)/device/xradio/xr806/xr_skylark/project/demo/wlan_ble_demo/image/xr806中的image_auto_cal.cfg复制一份粘贴到$(root_path)/device/xradio/xr806/xr_skylark/project/demo/audio_demo/image/xr806 下面替换掉image.cfg。
      原因可以在$(root_path)/device/xradio/xr806/xr_skylark/project/image_cfg/readme.md 中找到
      

      改完之后就可以通过烧录软件烧录到板子上了^_^ 😂

      1 条回复 最后回复 回复 引用 分享 0
      • 1 / 1
      • First post
        Last post

      Copyright © 2024 深圳全志在线有限公司 粤ICP备2021084185号 粤公网安备44030502007680号

      行为准则 | 用户协议 | 隐私权政策