0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

十分钟就将RT-Thread移植到了新唐新款单片机上的小窍门

Q4MP_gh_c472c21 来源:21ic论坛 作者:gaoyang9992006 2021-04-29 14:13 次阅读

NuMicro M0A23 系列是基于 Arm Cortex -M0 内核的 32 位微控制器。它的工作温度范围达 -40°C 至 125°C,在小封装中提供 CAN 功能,丰富的仿真外设及弹性的引脚分配功能。2.4V 至 5.5V 的工作电压。NuMicro M0A23 系列针对工控和较高的工作温度应用,如雷达,电池管理系统 (BMS),汽车照明,车用控制及工控传感器等应用。

之前我发过一个帖,移植RTT到NUC029上的帖,这次拿到新的开发板,我们试试能否轻松移植RTT到这个M0A23开发板。 准备工具 Keil V5,在pack里安装RTOS,如下图所示

5566c830-a86f-11eb-9728-12bb97331649.png

接下来新建工程,工程目录存放M0A23的Lib文件

5599e648-a86f-11eb-9728-12bb97331649.png

然后按照RTE的创建工程方式,添加启动文件与RTT RTOS文件到工程

55c4881c-a86f-11eb-9728-12bb97331649.png

在工程创建目录,添加USER文件和Lib文件

564b203e-a86f-11eb-9728-12bb97331649.png

最后对工程配置进行修改,因为要用stdio.h 所以在Target选项卡勾选Use MicroLIB,同时选中编译器为V5版本

569558de-a86f-11eb-9728-12bb97331649.png

在C/C++选项卡设置头文件路径 .LibraryDeviceNuvotonM0A21Include;.LibraryStdDriverinc;.LibraryCMSISInclude 在Linker选项卡设置Misc controls --map --first=‘startup_M0A21.o(RESET)’ --datacompressor=off --info=inline --entry Reset_Handler 在调试器设置对应的调试器,并选择为自动侦测模式

56b01070-a86f-11eb-9728-12bb97331649.png

配置烧录功能如下

56d60cb2-a86f-11eb-9728-12bb97331649.png

基本配置到此完成,接下来进行RTT移植修改。 在board.c文件中进行时钟与串口的初始化配置,同时别忘了将头文件NUMicro.h包含进来。

可以直接将M0A23的BSP中的模板配置复制来用即可

void SYS_Init(void){ /* Unlock protected registers */ SYS_UnlockReg(); /* Enable HIRC clock (Internal RC 48MHz) */ CLK_EnableXtalRC(CLK_PWRCTL_HIRCEN_Msk); /* Wait for HIRC clock ready */ CLK_WaitClockReady(CLK_STATUS_HIRCSTB_Msk); /* Select HCLK clock source as HIRC and HCLK source divider as 1 */ CLK_SetHCLK(CLK_CLKSEL0_HCLKSEL_HIRC, CLK_CLKDIV0_HCLK(1)); /* Enable UART0 clock */ CLK_EnableModuleClock(UART0_MODULE);

/* Switch UART0 clock source to HIRC */ CLK_SetModuleClock(UART0_MODULE, CLK_CLKSEL1_UART0SEL_HIRC, CLK_CLKDIV0_UART0(1)); /* Update System Core Clock */ SystemCoreClockUpdate(); /* Set PB multi-function pins for UART0 RXD=PB.6 and TXD=PB.4 */ SYS-》GPB_MFP1 = (SYS-》GPB_MFP1 & ~(SYS_GPB_MFP1_PB4MFP_Msk | SYS_GPB_MFP1_PB6MFP_Msk)) | (SYS_GPB_MFP1_PB4MFP_UART0_TXD | SYS_GPB_MFP1_PB6MFP_UART0_RXD); /* Lock protected registers */ SYS_LockReg(); UART_Open(UART0, 115200);} 然后在rt_hw_board_init()

中引用该初始化并删除该函数中的时钟更新函数,因为我们已经在上面的函数完成了该操作。

接下来在该文件末尾添加

void rt_hw_console_output(const char *str){ printf(“%s”,str);} char rt_hw_console_getchar(void){return getchar();} 以实现串口打印与交互输入。

然后我们发现,工程的启动文件目录有重定向文件,我们用库函数中的进行替换该文件。

然后找到

__asm int32_t HardFault_Handler(void)

该函数,并注释掉该函数,因为RTT中已经实现了该函数,不然就重复定义了。另外就是通过rtconfig.h启用某些功能了,支持配置向导模式

56e6ea64-a86f-11eb-9728-12bb97331649.png

接下来保存工程,在main.c添加个简单的代码

#include 《stdio.h》#include “NuMicro.h”#include 《rtthread.h》 int main(void){ return 0;} 编译,一次通过。 “.Objectsdemo.axf” - 0 Error(s), 0 Warning(s)。 下载测试

57147a74-a86f-11eb-9728-12bb97331649.png

这里提供工程供大家测试学习

编辑:jq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 微控制器
    +关注

    关注

    48

    文章

    6786

    浏览量

    147562
  • 传感器
    +关注

    关注

    2522

    文章

    47970

    浏览量

    739650
  • 函数
    +关注

    关注

    3

    文章

    3859

    浏览量

    61296
  • RTT
    RTT
    +关注

    关注

    0

    文章

    63

    浏览量

    16879
  • RT-Thread
    +关注

    关注

    31

    文章

    1147

    浏览量

    38857

原文标题:我只用了十分钟:将RT-Thread移植到了新唐新款单片机上

文章出处:【微信号:gh_c472c2199c88,微信公众号:嵌入式微处理器】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    BL808 RT-Thread Wi-Fi驱动适配

    BL808 WiFi 属于 SOC 单芯片型无线 MCU,片上集成 WiFi 功能,移植 RT-Thread 过程中,需要使用 RT-Thread wlan 框架。
    的头像 发表于 12-04 11:38 398次阅读

    RT-thread源码移植到STM32F10x和STM32F4xx

    RT-thread源码移植到STM32F10x和STM32F4xx: 一、源码下载 点击入门->下载   在历史版本里边随便选取一个   会进入百度云盘的下载地址,里边有全部版本的源码。这里下载
    的头像 发表于 11-15 09:38 983次阅读
    <b class='flag-5'>RT-thread</b>源码<b class='flag-5'>移植</b>到STM32F10x和STM32F4xx

    i.MX RT1170:VGLite移植RT-Thread Nano过程讲解(下)

    上篇介绍了如何移植 RT-Thread Nano 内核与 Finsh 控制台到 RT1170。本篇继续介绍如何将 NXP 官方的 VGLite API 移植
    的头像 发表于 11-09 11:22 482次阅读

    i.MX RT1170:VGLite移植RT-Thread Nano过程讲解(上)

    RT-Thread 是国人自主研发的开源实时操作系统(RTOS),RT-Thread Nano 是极简版的硬实时内核,内存占用小,移植简单。VGLite 是 NXP 提供的轻量级 2D 图形 API,基于 FreeRTOS 实现
    的头像 发表于 11-09 11:20 1191次阅读
    i.MX <b class='flag-5'>RT</b>1170:VGLite<b class='flag-5'>移植</b><b class='flag-5'>RT-Thread</b> Nano过程讲解(上)

    基于rt-thread的socket通信设计

    最近再研究 rt-thread 的通信 ,想设计出 eps8266(多个) rt-thread(作为中控) 服务器的通信框架,使用的开发板是 潘多拉
    的头像 发表于 10-13 15:02 662次阅读
    基于<b class='flag-5'>rt-thread</b>的socket通信设计

    RT-Thread移植使用webserver (lwip+httpd)

    开发环境:野火的stm32f407,rt-thread studio版本是版本: 2.2.6,stm32f4的资源包为0.2.2,rt-thread版本为4.0.3。
    的头像 发表于 10-12 12:49 534次阅读
    <b class='flag-5'>RT-Thread</b><b class='flag-5'>移植</b>使用webserver (lwip+httpd)

    试用RT-Thread Studio(VSCode)

    想尝试RT-Thread studio (VSCode),先下载安装VSCode,再搜索RT-Thread
    的头像 发表于 10-12 10:58 536次阅读
    试用<b class='flag-5'>RT-Thread</b> Studio(VSCode)

    RT-Thread v5.0.2 发布

    RT-Thread 代码仓库地址: ●  https://github.com/RT-Thread/rt-thread RT-Thread 5.0.2 版本发布日志详情: ●  htt
    的头像 发表于 10-10 18:45 746次阅读
    <b class='flag-5'>RT-Thread</b> v5.0.2 发布

    梁山派GD32F450/470-RT-Thread Nano移植(二)

    在上一篇文章中,我实现了在keil中给梁山派移植RT-Thread Nano,但在官方的移植教程中,除了系统的移植,还有在 RT-Thread
    的头像 发表于 09-25 15:40 1126次阅读
    梁山派GD32F450/470-<b class='flag-5'>RT-Thread</b> Nano<b class='flag-5'>移植</b>(二)

    RT-Thread qemu mps2-an385 bsp移植制作 :环境搭建篇

    最近打算系统地研究一下 RT-Thread,包括 RT-Thread BSP 的移植,由于一直在使用 QEMU 进行一些软件功能的验证,qemu 支持很多的CPU 与 开发板,所以想移植
    的头像 发表于 08-02 14:45 343次阅读
    <b class='flag-5'>RT-Thread</b> qemu mps2-an385 bsp<b class='flag-5'>移植</b>制作 :环境搭建篇

    怎么知道RT-Thread的CRYPTO设备对M2354支持怎样呢?

    前面碰到了一个问题,RT-Thread 支持 MD5,可是 M2354 却不支持,那怎么知道 RT-Thread 的 CRYPTO 设备对 M2354 支持怎样呢?
    的头像 发表于 07-27 15:21 559次阅读
    怎么知道<b class='flag-5'>RT-Thread</b>的CRYPTO设备对M2354支持怎样呢?

    移植RT-Thread nano到CW32L083

    移植RT-Thread Nano到CW32L083开发板上,并成功运行。
    的头像 发表于 07-03 09:04 2.1w次阅读
    <b class='flag-5'>移植</b><b class='flag-5'>RT-Thread</b> nano到CW32L083

    【灵动微】FTHR-G0140开发板移植RT-Thread驱动

    灵动微G0140移植RT-Thread驱动。
    的头像 发表于 06-05 13:45 21.6w次阅读
    【灵动微】FTHR-G0140开发板<b class='flag-5'>移植</b><b class='flag-5'>RT-Thread</b>驱动

    RT-Thread最小系统的移植方法

    目标为进一步研究RT-Thread,掌握系统移植的基本方法
    发表于 06-02 09:47 297次阅读
    <b class='flag-5'>RT-Thread</b>最小系统的<b class='flag-5'>移植</b>方法

    基于RT-Thread Studio学习

    前期准备:从官网下载 RT-Thread Studio,弄个账号登陆,开启rt-thread学习之旅。
    的头像 发表于 05-15 11:00 2544次阅读
    基于<b class='flag-5'>RT-Thread</b> Studio学习