openharmony版本号3.1.1
轻量系统
device/board/fx/bajie/liteos_m/config.gni中board_cflags下加入 "-DLOSCFG_BASE_CORE_HILOG"。
board_cflags += [
"-Og",
"-Wall",
"-fdata-sections",
"-ffunction-sections",
"-Wno-missing-braces",
"-DUSE_HAL_DRIVER",
"-DSTM32F407xx",
"-DUSE_FULL_LL_DRIVER",
"-DLOSCFG_BASE_CORE_HILOG",
]
hb build -f编译后,出现如下错误。
[OHOS ERROR] In file included from ../../../drivers/framework/include/utils/hdf_log.h:48,
[OHOS ERROR] from ../../../device/board/fx/bajie/liteos_m/fs_adapter/littlefs/src/fs_init.c:19:
[OHOS ERROR] ../../../drivers/adapter/khdf/liteos_m/osal/include/hdf_log_adapter.h:35:10: fatal error: hilog/log.h: No such file or directory
[OHOS ERROR] 35 | #include "hilog/log.h"
[OHOS ERROR] | ^~~~~~~~~~~~~
[OHOS ERROR] compilation terminated.
log.h的路径base/hiviewdfx/hilog_lite/interfaces/native/kits/hilog/log.h。
device/board/fx/bajie/liteos_m/fs_adapter/littlefs/BUILD.gn中include_dirs增加路劲base/hiviewdfx/hilog_lite/interfaces/native/kits/。如下图所示。
include_dirs = [
"include",
"//base/hiviewdfx/hilog_lite/interfaces/native/kits/"
# "//device/board/fangxing/tunnel_box/liteos_m/third_party/SFUD/sfud/inc"
]
hb build -f 遇到如下问题.
[OHOS ERROR] /home/xendless/tools/gcc-arm-11.2-2022.02-x86_64-arm-none-eabi/bin/../lib/gcc/arm-none-eabi/11.2.1/../../../../arm-none-eabi/bin/ld: libs/libhilog_static.a(libhilog_static.hiview_log.o): in function `HiLogPrintArgs':
[OHOS ERROR] hiview_log.c:(.text.HiLogPrintArgs+0x86): undefined reference to `HiLogWriteInternal'
[OHOS ERROR] collect2: error: ld returned 1 exit status
device/board/fx/bajie/liteos_m/startup/src/uart.c下增加如下代码。
#define HILOG_IDX 2
int HiLogWriteInternal(const char *buffer, size_t bufLen)
{
size_t len = bufLen;
if (!buffer) {
return -1;
}
// because it's called as HiLogWriteInternal(buf, strlen(buf) + 1)
if (len < HILOG_IDX) {
return 0;
}
if (buffer[len - HILOG_IDX] != '\n') {
*((char *)buffer + bufLen - 1) = '\n';
} else {
len--;
}
for (int i = 0; i < bufLen; i++)
{
while (LL_USART_IsActiveFlag_TXE(USART1) == 0)
{
}
LL_USART_TransmitData8(USART1, buffer[i]);
}
return 0;
}
hb build -f ,未出现错误。运行代码hdf打印信息如下
DeviceManagerStart start ...
E 02500/HDF_LOG_TAG: DeviceManagerStart in
I 02500/devmgr_service: start svcmgr result 0
I 02500/hcs_blob_if: CheckHcsBlobLength: the blobLength: 2920, byteAlign: 1
E 02500/HDF_LOG_TAG: HdfDriverManagerGetDriver:driver st_gpio_driver not found
E 02500/devhost_service_clnt: failed to install driver , ret = -207
I 02500/device_node: launch devnode HDF_PLATFORM_SPI_3
I 02500/STM32F4XX_SPI_HDF: HdfSpiDriverBind: entry
I 02500/STM32F4XX_SPI_HDF: HdfSpiDriverInit: entry
I 02500/STM32F4XX_SPI_HDF: busNum = 2
I 02500/STM32F4XX_SPI_HDF: csPin = [1 2 3]
I 02500/device_node: launch devnode HDF_PLATFORM_SPI_2
I 02500/STM32F4XX_SPI_HDF: HdfSpiDriverBind: entry
I 02500/STM32F4XX_SPI_HDF: HdfSpiDriverInit: entry
I 02500/STM32F4XX_SPI_HDF: busNum = 1
I 02500/STM32F4XX_SPI_HDF: csPin = [1 2 3]
I 02500/device_node: launch devnode HDF_PLATFORM_SPI_1
I 02500/STM32F4XX_SPI_HDF: HdfSpiDriverBind: entry
I 02500/STM32F4XX_SPI_HDF: HdfSpiDriverInit: entry
I 02500/STM32F4XX_SPI_HDF: busNum = 0
I 02500/STM32F4XX_SPI_HDF: csPin = [1 2 3]
DeviceManagerStart end ...
HDF的hilog打印移植成功。











网友评论