OpenHarmony设备开发 轻量系统芯片移植指导

zh_ff
发布于 2023-3-22 10:40
浏览
0收藏

移植验证

OpenHarmony芯片移植完成后,需要开展OpenHarmony兼容性测试以及芯片SDK功能性测试。除可获得测试认证之外,还可以在开发阶段提前发现缺陷,大幅提高代码质量。

OpenHarmony兼容性测试

OpenHarmony兼容性测试是XTS(OpenHarmony生态认证测试套件)之一,详见​​OpenHarmony兼容性测试​​。

  1. 添加test子系统以及xts_acts部件。 在“vendor/xxx/xxx/config.json”文件中,添加如下代码:

{
  "subsystem": "test",
  "components": [
    { "component": "xts_acts", "features":[] },
    { "component": "xts_tools", "features":[] }
  ]
}

2.链接XTS生成的.a库。 在链接选项中,需要链接生成于“out/MyBoard/MyProduct/libs”目录下的XTS的.a库,其库的名称格式为libmodule_ActsXxxTest.a,链接方式为"-lmodule_ActsXxxTest",示例代码如下:

"-Wl,--whole-archive",
......
"-lhctest",
"-lbootstrap",
"-lbroadcast",
"-lmodule_ActsBootstrapTest",
"-lmodule_ActsCMSISTest",
"-lmodule_ActsDfxFuncTest",
"-lmodule_ActsParameterTest",
"-lmodule_ActsSamgrTest",
"-lmodule_ActsSecurityDataTest",
......
"-Wl,--no-whole-archive",

3.根据测试报告调整代码。 将编译生成的文件烧录到开发板上,使用串口工具查看xts测试报告。如果出现"failed"的测试项,则需要整改代码。
定位问题时,可在“test/xts/acts/build_lite/BUILD.gn”中,将不需要的测试项注释,以便调试。

if (ohos_kernel_type == "liteos_m") {
  all_features += [
    "//test/xts/acts/communication_lite/lwip_hal:ActsLwipTest",
    "//test/xts/acts/communication_lite/softbus_hal:ActsSoftBusTest",
    "//test/xts/acts/communication_lite/wifiservice_hal:ActsWifiServiceTest",
    "//test/xts/acts/utils_lite/file_hal:ActsUtilsFileTest",
    "//test/xts/acts/startup_lite/syspara_hal:ActsParameterTest",
    "//test/xts/acts/iot_hardware_lite/iot_controller_hal:ActsWifiIotTest",
    "//test/xts/acts/kernel_lite/kernelcmsis_hal:ActsCMSISTest",
    "//test/xts/acts/utils_lite/kv_store_hal:ActsKvStoreTest",
    "//test/xts/acts/security_lite/datahuks_hal:ActsSecurityDataTest",
    "//test/xts/acts/hiviewdfx_lite/hilog_hal:ActsDfxFuncTest",
    "//test/xts/acts/distributed_schedule_lite/samgr_hal:ActsSamgrTest",
    "//test/xts/acts/update_lite/updater_hal:ActsUpdaterFuncTest",
    "//test/xts/acts/startup_lite/bootstrap_hal:ActsBootstrapTest",
  ]
}

注意:

  1. XTS会在OHOS_SystemInit()调用之后,自行运行测试。
  2. 需要在"-Wl,–whole-archive"和"-Wl,–no-whole-archive"中间添加,否则链接不到。

进行XTS测试时,必须链接以下静态库

"-lhctest","-lbootstrap",
"-lbroadcast",

厂商SDK功能性测试

芯片移植完成后需要客户验证SDK自身功能,例如Wi-Fi,蓝牙,OTA等基础能力是否正常。

常见问题

如何将用户的堆内存挂载进内核

内核堆内存配置的相关宏如下,用户可根据实际情况,在target_config.h中配置:

表1 内核堆内存配置相关宏

宏名称

描述

LOSCFG_SYS_EXTERNAL_HEAP

这个宏决定系统是使用内核的内部堆内存还是用户的堆内存,默认为0(即使用内部的堆内存),大小为0x10000;如果用户需要基于外部的堆内存,那么可以将该宏设置为1。

LOSCFG_SYS_HEAP_ADDR

内核堆内存的起始地址。

LOSCFG_SYS_HEAP_SIZE

内核堆内存的大小,即LOSCFG_SYS_HEAP_ADDR指定的内存块大小。


说明:

 指定的堆内存范围务必保证没有其他模块使用,避免踩内存,破坏堆内存功能。


文章转载自:​​https://docs.openharmony.cn/pages/v3.2Beta/zh-cn/device-dev/porting/porting-minichip-verification.md/​

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