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

    文章

    8249

    浏览量

    162269
  • 传感器
    +关注

    关注

    2573

    文章

    54363

    浏览量

    785790
  • 函数
    +关注

    关注

    3

    文章

    4406

    浏览量

    66812
  • RTT
    RTT
    +关注

    关注

    0

    文章

    66

    浏览量

    18125
  • RT-Thread
    +关注

    关注

    32

    文章

    1540

    浏览量

    44252

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

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

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    RISC-V单片机快速入门02,移植RT_Thread Nano系统

    前言: 上一节,我们使用芯来科技Nuclei Studio IDE搭建了裸机开发环境,本节我们开始正式移植RT_Thread系统。 一、基础知识 1.RT_Thread简介 RT-Thread
    发表于 11-10 07:23

    移植最新版的rt-thread nano时程序进入到entry就报错,为什么?

    我在移植最新版的rt-thread nano时发现程序只要一进去entry函数就直接跳到一个死循环里,我使用的编译器是armgcc10.2版本。然而我移植旧版的rt-thread na
    发表于 10-09 07:17

    如何在rt-thread studio上开发STM32H747这类双核的单片机

    如题,我希望在rt-thread studio上开发STM32H747IIT6这款双核单片机,在keil里两个核的代码是完全隔离的,分别在两个工程中编写。 但是在rt-thread studio上生成的标准版工程只有一个工程,想
    发表于 09-19 08:08

    【好书推荐】RT-Thread第20本相关书籍!《嵌入式实时操作系统RT-Thread原理与应用》| 技术集结

    01内容简介ContentSummary本书为读者提供了一个全面、系统的RT-Thread学习指南,旨在帮助初学者及有经验的开发者掌握RT-Thread实时操作系统和STM32嵌入式微控制器的核心
    的头像 发表于 08-24 10:05 685次阅读
    【好书推荐】<b class='flag-5'>RT-Thread</b>第20本相关书籍!《嵌入式实时操作系统<b class='flag-5'>RT-Thread</b>原理与应用》| 技术集结

    RT-Thread编译太慢怎么解决?

    刚下载RT-Thread Studio之后创建了一个stm32L496VET6的工程,示例程序没有任何改动之间编译的,到了19%就几乎不动了,然后10分钟才增加1%,这是啥情况啊,请问大佬们这怎么解决?
    发表于 08-22 08:26

    恩智浦MCU教程 基于MCUXpresso和FRDM-MCXA346的RT-Thread Nano移植

    本篇还是以移植RT-Thread Nano到MCUXpresso IDE为主,移植的代码可以在nxpic.org.cn论坛搜索到。
    的头像 发表于 08-21 09:49 6220次阅读
    恩智浦MCU教程 基于MCUXpresso和FRDM-MCXA346的<b class='flag-5'>RT-Thread</b> Nano<b class='flag-5'>移植</b>

    如何移植 RT-Thread Nano 并创建 2 个线程?

    基于 BSP 中的 GPIO_OutputInput 演示,展示了如何移植 RT-Thread Nano 并创建 2 个线程。
    发表于 08-19 07:45

    RT-Thread 遇上 Rust:安全内核 RusT-Thread 的诞生

    老师的推荐,很快我们就被其极高的安全特性,强大的包管理系统和编译器以及丰富的社区支持所折服。然后我们在调研时注意到了RT-Thread。它有着经典的操作系统架构,
    的头像 发表于 08-02 11:03 3193次阅读
    <b class='flag-5'>RT-Thread</b> 遇上 Rust:安全内核 RusT-<b class='flag-5'>Thread</b> 的诞生

    RT-Thread Nano硬核移植指南:手把手实现VGLite图形驱动适配 | 技术集结

    VGLite是NXP提供的轻量级2D图形API,本文将手把手带你实现VGLite图形驱动适配RT-Thread。文章分为上、下两篇,将手把手教您移植。上篇对RT-ThreadNano内核与Finsh组件进行
    的头像 发表于 07-17 14:40 3039次阅读
    <b class='flag-5'>RT-Thread</b> Nano硬核<b class='flag-5'>移植</b>指南:手把手实现VGLite图形驱动适配 | 技术集结

    RT-Thread荣获2025优秀开源项目 | 新闻速递

    6月底,RT-Thread睿赛德受邀参与由上海开源信息技术协会主办的2025上海开源创新精英荟。上海市商委副主任张杰出席会议并致辞。RT-Thread嵌入式操作系统项目凭借其卓越的技术创新与开源生态
    的头像 发表于 07-04 09:04 2418次阅读
    <b class='flag-5'>RT-Thread</b>荣获2025优秀开源项目 | 新闻速递

    深度剖析 RT-Thread 线程调度流程

    RT-Thread调度第一个线程的主要流程如下:rtthread_startup:RTT的启动函数,主要负责板级驱动,调度器,系统线程初始化,启动调度的工作
    的头像 发表于 06-25 18:24 1434次阅读
    深度剖析 <b class='flag-5'>RT-Thread</b> 线程调度流程

    如何在rt-thread studio上开发STM32H747IIT6?

    如题,我希望在rt-thread studio上开发STM32H747IIT6这款双核单片机,在keil里两个核的代码是完全隔离的,分别在两个工程中编写。 但是在rt-thread studio上生成的标准版工程只有一个工程,
    发表于 06-11 06:24

    RT-Thread审核团招募: 深度参与开源RTOS社区治理与演进

    全球开发者招募:RT-Thread审核团(ReviewTeam)正式开放申请!在开源的世界里,代码审查(CodeReview)是保证软件质量、促进技术交流的关键环节。RT-Thread作为全球领先
    的头像 发表于 05-21 18:02 1058次阅读
    <b class='flag-5'>RT-Thread</b>审核团招募: 深度参与开源RTOS社区治理与演进

    如何将RT-Thread移植到NXP MCUXPressoIDE上

    RT-Thread默认支持的IDE只有IAR 和 Keil, 那如何将RT-Thread移植到NXP MCUXPressoIDE上呢?本文内容比较简单但稍有琐碎,希望对有需要的小伙伴有所帮助。
    的头像 发表于 02-13 10:37 2431次阅读
    如何将<b class='flag-5'>RT-Thread</b><b class='flag-5'>移植</b>到NXP MCUXPressoIDE上

    Deepseek上单片机RT-Thread上跑通大语言模型

    前言单片机也能聊天?RT-Thread上跑通大语言模型在RT-Thread论坛上忽然看到了单片机和大模型对话的文章,想着春节期间看到大语言模
    的头像 发表于 02-07 18:59 2364次阅读
    Deepseek上<b class='flag-5'>单片机</b>?<b class='flag-5'>RT-Thread</b>上跑通大语言模型