【国产MCU移植】移植RT-Thread到国产芯片HC32F460PETB

国产(华大)单片机 hc32f460入门 最近闹芯片慌,黄牛各种炒作,芯片价格居高不下,暂时选择国产方案替代. 本次选用了华大 m4内核方案, hc32f460芯片,型号很多,64pin的 keta(该版本实际有货),100脚的petb(实际没货,开发板基本上都是这一款). 上图中左边是 100管脚的hc32f640petb, 右边是64脚hc32f460keta. 由于两个芯片系列相同仅管脚数量不同, 官方给力的例程 库函数等 基本上都是相同的. 先拿着官方给的例子跑一下led实验. 先看下电... 阅读详情

本文由RT-Thread论坛用户@想当诸侯的小蚂蚁 原创发布:https://club.rt-thread.org/ask/article/3018.html

#移植前的准备

##前提
现在芯片价格不断上涨,国内很多厂商也在不断的找替换方案。虽然公司对芯片价格不是很敏感,作为新生代农民工菊花还是紧了紧,主动要求替换国产芯片本来想使用GD系列,领导拍板使用华大的,最终我选择了HC32F460PETB。
最近rt-thread举办【国产MCU移植】活动,工作人员建议我把原先移植nano版本基础上提交PR,刚好练练手。
HC32F460基于Keil MDK 移植 RT-Thread Nano
https://club.rt-thread.org/ask/article/2966.html

##硬件

  • 芯片型号:HC32F460PETB
  • 芯片内核:ARM Cortex M4
  • 芯片主频:最高200MHz
  • 片内SRAM:192K
  • 片内FLASH:512K

##目标

  • 环境搭建
  • 基础工程
  • 验证工程

#移植过程
##1.环境搭建
安装KEIL5。
安装HC32F460的pack:HDSC.HC32F460.1.0.7.pack,官网下载链接: http://www.hdsc.com.cn/Category83-1487

pack包.png

串口助手 - MobaXterm

##2.基础工程
###1.准备rt-thread-master源码包
下载地址: https://gitee.com/rtthread/rt-thread

###2.准备模版
查找基础模板华大系列bsp包,rt-thread代码仓库中已存在hc32f4a0,复制一份文件夹名修改为hc32f460

复制一份.png

按照目录文件顺序依次做修改

修改目录.png

###3.修改模版

修改hc32f460\application目录下main.c

main.png

hc32f460\application目录下SConscript 不做修改,可以继续使用

修改hc32f460\board\linker_scripts目录下link.sct,此文件为链接文件需要根据芯片资料修改

link脚本.png

修改hc32f460\board目录下board.c,此文件为芯片提供芯片时钟配置、系统时钟配置、滴答定时器、堆栈初始化、rtt Components初始化、console设置

boardc.png

修改hc32f460\board目录下board.h,设置堆栈其实位置、大小。

修改hc32f460\board目录下board_config.c,初始化串口引脚

borad_configc.png

修改hc32f460\board\Kconfig,源代码修改为

board_kconfig.png

hc32f460\board\Sconscript不做修改

hc32f460\drivers目录下保留 drv_gpio.c、drv_gpio.h、drv_irq.c、drv_irq.h、drv_usart.c、drv_usart.h、SConscript

hc32f460\drivers目录下 drv_gpio.c 修改为

drv_gpio.png

hc32f460\drivers目录下 drv_gpio.h 修改为

drv_gpioh.png

hc32f460\drivers目录下 drv_irq.c 修改为

drv_irqc.png

hc32f460\drivers目录下 drv_irq.h 修改为

drv_irq.png

hc32f460\drivers目录下 drv_usart.c 修改为

drv_usart.png

hc32f460\drivers目录下 drv_usart.h 修改为

drv_usarth.png

hc32f460\drivers目录下 SConscript 修改为

drv_sconscript.png
删除hc32f460\figures文件夹

删除figur.png

hc32f460\Libraries\CMSIS\Device\HDSC目录下文件夹修改为 HC32F460

修改hdsc下文件夹名.png

hc32f460\Libraries\CMSIS\Device\HDSC\HC32F460\Include删除ddl_config.h、hc32_common.h、hc32_ddl.h、hc32f4a0.h、system_hc32f4a0.h,

删除hc32f460include.png

替换为HC32F460系列文件

9e6667e05f346f7bd50542e06104d55c.png

hc32f460\Libraries\CMSIS\Device\HDSC\HC32F460\Source目录下删除system_hc32f4a0.c

hc32f460下删除source.png

hc32f460\Libraries\CMSIS\Device\HDSC\HC32F460\Source\ARM目录下替换为

arm目录下替换.png

hc32f460\Libraries\CMSIS\Device\HDSC\HC32F460\Source\GCC目录下替换为

gcc目录下替换.png

hc32f460\Libraries\CMSIS\Device\HDSC\HC32F460\Source替换为system_hc32f460.c

hc32f460source目录下替换.png

hc32f460\Libraries目录下HC32F4A0_StdPeriph_Driver替换为HC32F460_StdPeriph_Driver

替换library内容.png

hc32f460\Libraries\HC32F460_StdPeriph_Driver目录下替换为HC32F460标准驱动程序

stdperiph目录下.png

hc32f460\Libraries\SConscript修改为以下内容

librarysconstrip.png
修改\hc32f460目录下 rtconfig.py 里面HC32F4A0全部替换为HC32F460

修改\hc32f460目录下 SConstruct.py 里面hc32f4a0全部替换为hc32f460

测试Kconfig是否修改成功。在\hc32f460目录下右键

conemu.png

输入命令 menuconfig 结束后保存配置文件

测试menuconfig.gif

控制台使用usart4 需要修改可在 RT-thread Kernel–>Kernel Device Object–>the device name for console
修改console串口.gif

修改模板工程

修改模板工程.png

换芯片Options for Target -> Device

选择芯片.png

选择仿真器 Options for Target ->Debug->J-LINK

选择jlink.png

修改芯片容量Options for Target->Utilities->Settings

选择芯片大小.png

新建工程
编译过程.gif

##验证工程
打开新建工程,编译下载
打开工程.png

运行结果
动画.gif

#经验总结

从8月20日确定接手,21日开搞到9月2日移植完成,期间走了小弯路,收益颇多。总结有一下几点:

  1. 之前从来都是拿来主义从没考虑过东西怎么来的,rtt实话只能说会用离精通还差老远并没有深入了解函数来龙去脉调用过程,此次移植稍微了解一下结构,我想说的是rtt架构师真是天人,叹为观止,程序架构设计精妙,大牛编程技巧真绝,今后编程过程中借鉴使用。

  2. 之前只是知道python可以用于人工智能、大数据处理等,平时都是使用py+qt编写一些小程序使用,此次移植过程中终于见识py批量处理文件的强大。

  3. 天外有天,人外有人。学海无涯。

  4. 吐槽一下hc函数库定义乱乱的,两个系列芯片函数居然不通用,移植过程中检查库函数功能太痛苦了。期间发现个rtt-master另一个系列中有严重bug,抽时间提交个PR。

使用HC32L136移植RT_Thread RT_Thread移植到HC32L136 阅读详情

相关推荐

国产MCU移植移植RT-Thread国产芯片HC32L196

移植原理 rt-thread源码结构 目录 说明 bsp 板级支持包。存放各种硬件平台的驱动代码,初始化代码,工程文件。 components 组件。如finsh控制台,抽象层驱动,文件系统,网络系统。 examples 示例程序 include 内核以及libc的头文件 libcpu 与CPU架构相关的接口,为操作系统调度提供支持。 src 内核代码,如线程、定时器、线程间通信(互斥锁,信号量)。 https://www.rt-thread.org/docume

wenbodong的专栏 7733

HC32F460基于Keil MDK 移植 RT-Thread Nano

由于大环境影响目前正在更换使用HC32F460HC32F460各个模块也在根据厂家demo摸索移植中,rtos也准备替换为更给力的rtthead。

基于HC32F460petb芯片给FLASH安装fat文件系统

目前单片机中用的最多的文件系统就是fat32,得益于正点原子和野火的大量资料,让我们很快的就能开发出来相关的功能,本篇用来记录一次fat32移植过程,芯片采用的是华大的PETB,flash才采用的是GD25Q40,虽然是GD系列的存储芯片,但是命令上基本兼容W25Q系列。需要注意的是,fat32是单片机读写flash的操作,USB的msc操作是通过USB主机如电脑读写flash的操作,这两个操作应该是独立的,否则会有冲突。

weixin_41579872的博客 1697

HC32L196单片机移植RT-Thread操作系统后的Keil工程

烧录即可使用,包含PIN驱动和uart驱动,程序已经实现IO口定时翻转,按键按下改变IO口翻转间隔,环境已经配置好可以使用ENV工具和finsh调试

HC32F460PETBRT-Thread BSP移植(一)修改模板

硬件目标。

Kevin_ZXW的博客 985

从零到一:国产MCU HC32F460PETBRT-Thread的深度适配之旅

本文详细介绍了国产MCU HC32F460PETBRT-Thread操作系统的深度适配过程,包括硬件选型、BSP工程创建、驱动适配及系统优化等关键步骤。通过实战指南帮助开发者高效完成移植工作,充分发挥ARM Cortex-M4内核性能,为国产芯片替代提供可靠解决方案。

weixin_29165465的博客 866

国产MCU实战】HC32F460PETB移植RT-Thread Nano的避坑指南与性能优化

本文详细介绍了在国产MCU HC32F460PETB移植RT-Thread Nano的实战经验与性能优化技巧。从硬件资源盘点、工程框架搭建到驱动层适配,提供了针对华大芯片特性的避坑指南,包括时钟配置、串口驱动、硬件定时器等关键模块的优化方案。通过实测数据展示Cortex-M4内核的性能优势,帮助开发者高效完成国产芯片替代方案。

weixin_29195615的博客 637

HC32F460移植RT-Thread Nano实战:从零搭建工控RTOS系统

实时操作系统RTOS)是嵌入式开发中实现多任务调度、资源管理的核心软件基础,其原理是通过任务调度器管理多个并发执行的任务,并提供信号量、消息队列等同步通信机制。在工控、物联网等对实时性和可靠性要求较高的场景中,RTOS能有效提升系统响应速度和资源利用率。RT-Thread作为一款国产开源RTOS,以其模块化设计、丰富组件和活跃社区生态著称,其精简版RT-Thread Nano尤其适合资源受限的微控制器(MCU)项目。本文聚焦于将RT-Thread Nano移植到华大半导体的HC32F460 Cortex-

weixin_32349093的博客 224

国产MCU移植系列教程汇总,欢迎查看!

过去由于技术、生态等各种原因导致国产芯片厂商推广和应用上难以突破。但是现在,情况已经发生了变化。近两年芯片缺货潮拉开了大幕,让越来越多人关注到了国产芯片,也掀起新一轮国产替代浪潮。 RT-Thread发起的国产MCU移植贡献活动已经圆满结束,本文也给大家汇总了国产MCU移植系列文章,一起来看看吧! 1.【国产MCU移植移植RT-Thread国产芯片N32G452XX 2.【国产MCU移植】ch32f10x移植 3.【国产MCU移植移植RT-Thread国产芯片ACM32F0x0芯片 4.【国产MCU

rtthreadiotos的博客 2099

hc32f460petb_template.zip

HC32F460移植RT-ThreadNano+FinSh工程源码

华大HC32F46x系列的pack包

华大HC32F46x系列的pack包

【技术文章】9月优秀文章收集汇总帖,快来充充电!

互相分享,共同进步!汇总了9月左右的优秀文章拿来与大家分享。有时间可以来看看,给自己充充电 。作为一名合格的开发者,持续学习是技术提升的关键! 充电完毕后,也别忘记来分享噢,RT-Thread每月都有原创文章征集活动,鼓励大家多多分享技术文章! 9月优秀文章收集汇总 记一次解决MQTT软件包内存泄露的心路历程 本文为MQTT软件包内存泄露问题分析帖,从定位、分析到解决超详细,看完受益匪浅,别错过! J-Trace入门系列:1)感动人心的功能与更感动人心的售价 本文简单介绍了 J-Trace ,并做了一些功能

rtthreadiotos的博客 439

开放原子训练营(第二季)RT-Thread Nano学习营-第一课心得

本人学习并使用 RT-Thread 一个重要的原因是:它是一款主要国开源社区主导开发的开源实时操作系统!!!RT-Thread支持国产芯片,比如在bsp板级支持包中,直接支持:兆易创新的gd32303e-eval和gd32450z-evalRT-Thread 实时线程操作系统不仅仅是一个单一的实时操作系统内核,它也是一个完整的应用系统,包含了实时、嵌入式系统相关的各个组件:TCP/IP协议栈,文件系统,libc接口,图形用户界面等。

郭老二 1190

RT-Thread操作系统全面支持飞腾腾珑E2000系列芯片

近日,国内领先的自主核心芯片提供商飞腾和国内领先的RTOS(实时操作系统) RT-Thread 共同完成了针对飞腾系列CPU的适配支持,并且全部源码已经发布到开源社区平台,为嵌入式开发者们提供了广泛而全面的支持。https://github.com/RT-Thread/rt-thread/tree/master/bsp/phytiumhttps://gitee.com/rtthread/rt-th...

rtthreadiotos的博客 1660

新建HC32F460PETB工程 IAR平台

前往documentsdriversbsp/cmsis/projectsutilsLICENSE。

qq_48066057的博客 459

小华HC32F460JETA KETA PETB 多个封装选择

⚫ ARMv7-M 架构 32bit Cortex-M4 CPU 集成FPU、 MPU,支持 SIMD指令的 DSP,及CoreSight标准调试 单元 。最高工作主频200MHz Flash加速 单元实现 0-wait程序 执行达到 250DMIPS或 680Coremarks的运算性能 ⚫ 内置存储器 – 最大 512KByte的 Flash memory,支持安全保护及数据加密 *1 – 最大 192KByte的 SRAM,包括 32KByte的200MHz单周期访问高速 RAM 4KByte

jiang15323794243的博客 359

【亲测免费】 开源精品:HC32F460 PETB带你高效驱动LCD,打造绚丽图形界面

开源精品:HC32F460 PETB带你高效驱动LCD,打造绚丽图形界面 【下载地址】HC32F460PETB硬件SPI驱动LCD及LVGLV8.0.1移植模板 HC32F460 PETB 硬件SPI驱动LCD及LVGL V8.0.1移植模板 ...

gitblog_09735的博客 721
上一篇: 【国产MCU移植】移植RT-Thread到国产芯片FM33LC026
下一篇: RTT STM32系列CAN发送卡死问题与根本解决
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值