STM32F407移植OpenHarmony笔记2

发布时间:2024年01月24日

接上篇,搭建完开发环境后,我们还要继续工作。

官方合作的开发板刚好有STM32F407,我准备试一下开发板的demo,虽然我用的不是他们的开发板。

先下载以下3份代码:

https://gitee.com/openharmony/device_board_talkweb/tree/OpenHarmony-v3.2-Beta5/
https://gitee.com/openharmony/vendor_talkweb/tree/OpenHarmony-v3.2-Beta5/
https://gitee.com/openharmony/device_soc_st/tree/OpenHarmony-v3.2-Beta5/

device_board_talkweb下载后,要解压到://device/board/talkweb
device_talkweb下载后,要解压到://vendor/talkweb
device_soc_st下载后,要解压到://device/soc/st

准备好后,我们再运行hb set可以在列表里看到talkweb的信息,选中niobe407。

根据开发板的文档,还要进入kernel/liteos_m,进行make menuconfig选择board和applications。

然后执行hb build编译试一下。

编译成功后,就在out下面能找到OHOS_Image.bin

用JLINK下载OHOS_Image.bin后,串口什么反应也没有。


由于硬件差异,需要根据自己的硬件来修改时钟配置和串口引脚。

修改里面的参数。

/device/board/talkweb/niobe407/liteos_m/bsp/src/main.c

主要是PLL和GPIO。

//板子晶振是25M的,如下修改
#define BAUDRATE 115200
#define NIOBE_PLLM 25
#define NIOBE_PLLN 336
#define NIOBE_PLLQ 7
#define NIOBE_DELAY 1000

修改后,再次编译下载,还是没有反应。


经过一番调查后,发现这demo还编译了一个bootloader,这个bootloader什么也没做,只负责跳转到0x08010000。

参见:/device/board/talkweb/niobe407/liteos_m/bootloader/src/bootloader.c

最终bootloader合并app后,生成的文件名是:OHOS_Image_allinone.bin

用JLINK下载这个bin文件,终于在串口看到日志打印信息了。

*************************************************************

████████╗ █████╗ ██╗     ██╗  ██╗██╗    ██╗███████╗██████╗
╚══██╔══╝██╔══██╗██║     ██║ ██╔╝██║    ██║██╔════╝██╔══██╗
   ██║   ███████║██║     █████╔╝ ██║ █╗ ██║█████╗  ██████╔╝
   ██║   ██╔══██║██║     ██╔═██╗ ██║███╗██║██╔══╝  ██╔══██╗
   ██║   ██║  ██║███████╗██║  ██╗╚███╔███╔╝███████╗██████╔╝
   ╚═╝   ╚═╝  ╚═╝╚══════╝╚═╝  ╚═╝ ╚══╝╚══╝ ╚══════╝╚═════╝

         Welcome to use Niobe407 development board!
             Hardware version: 1.0.0
             Software version: 1.0.0
*************************************************************
entering kernel init...
hilog will init.
hievent will init.

hievent init success.
Entering scheduler
hiview init success.
[HDF:E/HDF_LOG_TAG]DeviceManagerStart in
printf error!
printf error!
[HDF:I/gpio_manager]GpioManagerAdd: start:0 count:6 added success
[HDF:D/HDF_LOG_TAG]PlatformManagerAddDevice: add dev:(null)(0) to PLATFORM_MODULE_GPIO success
[HDF:D/HDF_LOG_TAG]PlatformDeviceAdd: add dev:(null)(0) success

虽然到此代码在我的STM32F407上面跑起来了,但还有满脑子问号需要进一步学习和调查。

文章来源:https://blog.csdn.net/qq446252221/article/details/135823778
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。