RT-Thread 1. GD32移植RT-Thread Nano

这篇具有很好参考价值的文章主要介绍了RT-Thread 1. GD32移植RT-Thread Nano。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1. RT-Thread Nano 下载

RT-Thread Nano 是一个极简版的硬实时内核,它是由 C 语言开发,采用面向对象的编程思维,具有良好的代码风格,是一款可裁剪的、抢占式实时多任务的 RTOS。其内存资源占用极小,功能包括任务处理、软件定时器、信号量、邮箱和实时调度等相对完整的实时操作系统特性。适用于家电、消费电子、医疗设备、工控等领域大量使用的 32 位 ARM 入门级 MCU 的场合。
下图是 RT-Thread Nano 的软件框图,包含支持的 CPU 架构与内核源码,还有可拆卸的 FinSH 组件

https://www.rt-thread.org/document/site/#/rt-thread-version/rt-thread-nano/an0038-nano-introduction
RT-Thread 1. GD32移植RT-Thread Nano

RT-Thread 1. GD32移植RT-Thread Nano

2.移植 (这里是按Cortex-M3移植)
1)把rt-thread源码复制到工程下

添加源码文件

RT-Thread 1. GD32移植RT-Thread Nano
RT-Thread 1. GD32移植RT-Thread Nano
rtthread-nano-master\rt-thread\bsp
RT-Thread 1. GD32移植RT-Thread Nano
rtthread-nano-master\rt-thread\libcpu\arm\cortex-m3
RT-Thread 1. GD32移植RT-Thread Nano

2)增加一个RTE_Components.h,防止编译出错

#ifndef RTE_COMPONENTS_H
#define RTE_COMPONENTS_H
/*

  • Define the Device Header File:
    /
    #endif /
    RTE_COMPONENTS_H */
3)在裸机可运行的代码上修改如下

实际上只要删除时钟初始化函数,因为在board.c中已调用,不需要在Main()函数中再次调用。这里Main函数是作为rtthread的一个任务来实现的。

#include "gd32f3x0.h"
#include "gd32f330c_start.h"
#include "systick.h"
#include <rtthread.h>

#define delay_ms(x)   rt_thread_mdelay(x)


/*!
    \brief      main function
    \param[in]  none
    \param[out] none
    \retval     none
*/

int main(void)
{
  
    /* enable the LED GPIO clock */
    rcu_periph_clock_enable(RCU_GPIOB);
    /* configure led GPIO port */ 
    gpio_mode_set(GPIOB, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, GPIO_PIN_1);
    gpio_output_options_set(GPIOB, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_1);
    
    gpio_bit_set(GPIOB, GPIO_PIN_1);
    
    while(1){
        /* turn on led1 */
        gpio_bit_write(GPIOB, GPIO_PIN_1, RESET);
        delay_ms(1000);
        
        /* turn off led1 */
        gpio_bit_write(GPIOB, GPIO_PIN_1, SET);
        delay_ms(1000);
    }
}
4)编译成功

RT-Thread 1. GD32移植RT-Thread Nano文章来源地址https://www.toymoban.com/news/detail-448910.html

到了这里,关于RT-Thread 1. GD32移植RT-Thread Nano的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Rt-Thread 移植5--空闲线程和线程阻塞(KF32)

    src中定义idle.c clock.c 5.3.6 中断函数 irq.c main.c

    2024年02月06日
    浏览(29)
  • 手把手教-gd32f450基于rt-thread发布的bsp包手动添加以太网外设

    一、开发环境 rt-thread发布版本4.1.0; bsp包选用的是gd32目录下的gd32450z-eval 开发板gd32f450z系列开发板。 二、手动添加以太网ETH外设 先看下初始结构 可以看到,配置中什么也没有。 手动添加步骤如下: ①复制相应的驱动到gd32_drivers文件夹中,同时修改该文件夹中的SConscript文件

    2024年02月15日
    浏览(30)
  • RT-Thread 内核移植

    内核移植就是指将RT-Thread内核在不同的芯片架构、不同的板卡上运行起来,能够具备线程管理和调度,内存管理,线程间同步和通信、定时器管理等功能。 移植可分为CPU架构移植和BSP(Board support package,板级支持包)移植两部分。 在嵌入式领域有多种不同CPU架构,例如Cort

    2024年01月23日
    浏览(33)
  • NUCLEO-F411RE RT-Thread 体验 (1) - GCC环境 RT-Thread 的移植

    a、用stm32cubemx新建一个工程。 时钟配置 st-link提供8M的mco输出,所以配置hse 8m,sysclk最高100M,设置如下: 配置LED 连接pa5,设置pa5为输出模式。 配置串口 st-link可以做虚拟串口用,这样可以省下一个usb转串口的模块。st-link连接f411的PA2 PA3,也就是uasrt2。 配置SWD 生成Makefile工程

    2024年02月09日
    浏览(30)
  • 【STM32&RT-Thread零基础入门】 2. 新建RT-Thread项目

    硬件:STM32F103ZET6、ST-LINK、usb转串口工具 RT-Thread的全称是Real Time Thread,顾名思义,它是一个嵌入式实时多线程操作系统。相较于 Linux 操作系统,RT-Thread 体积小,成本低,功耗低、启动快速,除此之外 RT-Thread 还具有实时性高、占用资源小等特点,非常适用于各种资源受限(

    2024年02月13日
    浏览(32)
  • 使用RT-Thread Studio搭配STM32CubeMX新建RT-Thread项目

    STM32CubeMX下载 RT-Thread Studio下载 安装好RT-Thread Studio后,先打开RT-Thread SDK管理器确认有没有自己MCU需要的SDK包,直接安装好之后里面是有STM32F1系列的SDK包,其他的需要自己安装。 之后点击文件→新建→RT-Thread项目,根据自己需要配置好后点击完成就会生成RT-Thread项目。 新建项

    2024年02月11日
    浏览(31)
  • NUCLEO-F411RE RT-Thread 体验 (2) - GCC环境 Pin 驱动的移植

    前面控制LED的函数,其实还是调用的hal的函数,RT-Thread分离了驱动层与应用层,驱动层往下对接hal库,往上对接pin组件。 驱动层代码路径如图: pin组件代码位于 第一次编译 报错提示没有board.h,在Core/Inc目录新建一个board.h,内容如下: 第二次编译 无错误。 编译无报错。 添加

    2024年02月09日
    浏览(22)
  • NUCLEO-F411RE RT-Thread 体验 (9) - GCC环境 PWM的驱动移植以及简单使用

    驱动位于drv_pwm.c文件中,components层代码位于rt_drv_pwm.c中。 修改Makefile文件 修改配置文件rtconfig.h LED2链接PA5,而TIM2_CHANNEL1可从PA5输出PWM,所以我们需要配置TIM2,并使能TIM2_CH1. 修改RT-Thread-basic/Core/Src/stm32f4xx_hal_msp.c HAL_TIM_MspPostInit 函数在stm32_hw_pwm_init函数中被调用。主要配置

    2024年02月10日
    浏览(26)
  • STM32 + RT-Thread + LwIp + DM9000

    开发板:STM32F103ZET6(战舰) RT-Thread:5.0.0 LwIp:2.1.2 网卡芯片:DM9000 编译环境:keil 我简单了解了一下,在嵌入式中,网络芯片的使用方式大致有三种,如下: (MCU + MAC + PHY) (MUC + MAC) —— PHY MCU —— (MAC + PHY) 注意: 我用括号里面的表示在同一块芯片中 移植 RT-Thread 不是此文

    2024年02月07日
    浏览(37)
  • 【STM32&RT-Thread零基础入门】 4. 线程介绍(理论)

    前文中的最后一个任务发现,一个main()函数很难同时实现按键功能和闪灯功能,就好像人很难同时完成左手画圆右手画方一样,这种情况可以安排一人去画圆、一人去画方,并行进行就很容易了,两人各司其职,互不干扰。 操作系统中,一个线程就像做事的一个人。一个操作

    2024年02月12日
    浏览(28)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包