问答

汇集网友智慧,解决技术难题

walker2048

TA的家园币:510  

  • stm32l476移植鸿蒙系统求助

    本人菜**一只,尝试着移植鸿蒙2.0系统到stm32l476rg_nucleo开发板。现在碰到一些问题,想问下论坛里的大佬是否可以给点提示,非常感谢。环境配置描述:目前已完成至设置好clang+gcc工具链(最后ld时使用arm-none-eabi-gcc)配置,编译参数根据cubeMX生成的makefile文件修改好了。该工具链与编译参数使用在cubeMX生成的标准程序里可正常运行(点灯OK,延时500毫秒OK,printf重定向串口输出OK)。---------------------------参数设置如下defines=-DUSE_HAL_DRIVER-DSTM32L476xxasmflags=-mcpu=cortex-m4-mthumb-mfpu=fpv4-sp-d16-mfloat-abi=hard#-fshort-enums-targetarm-none-eabi这两个参数是clang用的cflags=-mcpu=cortex-m4-mthumb-mfpu=fpv4-sp-d16-mfloat-abi=hard-fshort-enums-targetarm-none-eabi-fPICcflags_c=-Og-Wall-fdata-sections-ffunction-sections-g-gdwarf-2ldflags=-T../../vendor/st/board/stm32l476rg/STM32L476RGTx_FLASH.ld-lc-lm-lnosys-specs=nano.specs-mcpu=cortex-m4-mthumb-mfpu=fpv4-sp-d16-mfloat-abi=hard-Og-Wall-fdata-sections-ffunction-sections-g-gdwarf-2---------------------------问题描述如下,mcu的时钟定义设置为最高速80M,在cubeMX生成的标准程序里(不管是gcc编译或者clang编译),SystemCoreClock可顺利更新为80M,程序正常。但是在移植到鸿蒙的代码中,HAL库无法更新SystemCoreClock变量,不管是如何修改cubeMX的时钟定义(降频改配置,修改UART2时钟信号源),均无法正常运行点灯与串口输出功能,HAL_Delay功能也出错。目前判断是只要使用到SystemCoreClock变量的,都会出错。自己在单步调试中将SystemCoreClock变量赋值为80M,也无法正常运行程序。--------------------------想求助一下论坛里的大佬,是否能帮忙看一下到底是什么地方有问题。源码地址附上:https://gitee.com/walker2048/hmos_iot,请切换到clang_stm32