当前位置:   article > 正文

STM32F407移植OpenHarmony笔记2_openharmony3.2 niobe407

openharmony3.2 niobe407

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

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

先下载以下3份代码:

  1. https://gitee.com/openharmony/device_board_talkweb/tree/OpenHarmony-v3.2-Beta5/
  2. https://gitee.com/openharmony/vendor_talkweb/tree/OpenHarmony-v3.2-Beta5/
  3. 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。

  1. //板子晶振是25M的,如下修改
  2. #define BAUDRATE 115200
  3. #define NIOBE_PLLM 25
  4. #define NIOBE_PLLN 336
  5. #define NIOBE_PLLQ 7
  6. #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文件,终于在串口看到日志打印信息了。

  1. *************************************************************
  2. ████████╗ █████╗ ██╗ ██╗ ██╗██╗ ██╗███████╗██████╗
  3. ╚══██╔══╝██╔══██╗██║ ██║ ██╔╝██║ ██║██╔════╝██╔══██╗
  4. ██║ ███████║██║ █████╔╝ ██║ █╗ ██║█████╗ ██████╔╝
  5. ██║ ██╔══██║██║ ██╔═██╗ ██║███╗██║██╔══╝ ██╔══██╗
  6. ██║ ██║ ██║███████╗██║ ██╗╚███╔███╔╝███████╗██████╔╝
  7. ╚═╝ ╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝ ╚══╝╚══╝ ╚══════╝╚═════╝
  8. Welcome to use Niobe407 development board!
  9. Hardware version: 1.0.0
  10. Software version: 1.0.0
  11. *************************************************************
  12. entering kernel init...
  13. hilog will init.
  14. hievent will init.
  15. hievent init success.
  16. Entering scheduler
  17. hiview init success.
  18. [HDF:E/HDF_LOG_TAG]DeviceManagerStart in
  19. printf error!
  20. printf error!
  21. [HDF:I/gpio_manager]GpioManagerAdd: start:0 count:6 added success
  22. [HDF:D/HDF_LOG_TAG]PlatformManagerAddDevice: add dev:(null)(0) to PLATFORM_MODULE_GPIO success
  23. [HDF:D/HDF_LOG_TAG]PlatformDeviceAdd: add dev:(null)(0) success

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/274782
推荐阅读
相关标签
  

闽ICP备14008679号