【单片机进阶日记】RTOS篇① 在STM32/AT32上使用RT-Thread_stm32用rt-thread的多不多-程序员宅基地

技术标签: stm32  单片机进阶日记  嵌入式硬件  单片机  

提示:在AT32/STM32上使用RT-Thread


前言

RT-Thread是一个开源的实时操作系统,它在嵌入式系统领域广泛应用。本文将介绍如何在AT32单片机上使用RT-Thread,包括环境搭建、工程配置和简单示例。


引言

AT32是一款较为常见的单片机,使用RT-Thread可以为AT32提供一个强大的实时操作系统支持。本文将详细介绍AT32上使用RT-Thread的步骤,帮助读者快速上手。

一、环境搭建

下载RTT内核:RTT官网

二、工程配置

在这里插入图片描述
RT-Thread 会接管异常处理函数 HardFault_Handler() 和悬挂处理函数 PendSV_Handler(),这两个函数已由 RT-Thread 实现,所以需要删除工程里中断服务例程文件中的这两个函数,避免在编译时产生重复定义。如果此时对工程进行编译,没有出现函数重复定义的错误,则不用做修改。
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

  1. 在RT-Thread源码目录下,进入bsp目录,找到对应的AT32开发板目录,拷贝其中的示例工程。
  2. 打开示例工程,修改配置文件rtconfig.h,根据实际需求进行配置,比如任务数量、内存大小等。
  3. 在工程中添加自定义的驱动和应用程序,根据需要进行编写和配置。

三、示例程序

下面是一个简单的示例程序,演示了在AT32上使用RT-Thread实现LED灯的闪烁。

#include <rtthread.h>
#include <board.h>

/* LED线程的入口函数 */
static void led_thread_entry(void *parameter)
{
    
    while (1)
    {
    
        rt_pin_write(LED_PIN, PIN_LOW);
        rt_thread_delay(RT_TICK_PER_SECOND);  // 延时1秒
        rt_pin_write(LED_PIN, PIN_HIGH);
        rt_thread_delay(RT_TICK_PER_SECOND);
    }
}

int main(void)
{
    
    rt_thread_t led_thread;

    rt_pin_mode(LED_PIN, PIN_MODE_OUTPUT);  // 设置LED引脚为输出模式

    led_thread = rt_thread_create("led", led_thread_entry, RT_NULL,
                                  512, 20, 10);
    if (led_thread != RT_NULL)
    {
    
        rt_thread_startup(led_thread);
    }

    return 0;
}

四、编译和烧录

  1. 使用AT32工具链编译示例程序,生成可执行文件。
  2. 将可执行文件烧录到AT32开发板上,可以使用JTAG或串口等方式进行烧录。

五、运行和调试

将AT32开发板上电,程序将自动运行。LED灯会不断地闪烁,表示RT-Thread在正常运行。

结束语

本文介绍了在AT32上使用RT-Thread的方法(STM32也是同样配置方法),包括环境搭建、工程配置和应用示例。希望本文能够帮助读者在AT32上快速使用RT-Thread开发嵌入式应用。

RTT内核文件及官方Demo例程详见链接:https://pan.baidu.com/s/17rh5w6a3QZ9U1s-CKEXWYQ?pwd=MGKJ
提取码:MGKJ

参考文献:

  1. RT-Thread 官方网站
  2. AT32 官方网站
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_42037809/article/details/132542582

智能推荐

《精通ArcGIS Server 应用与开发》——2.4 ArcGIS Server的安装与配置-程序员宅基地

文章浏览阅读118次。本节书摘来自异步社区《精通ArcGIS Server 应用与开发》一书中的第2章,第2.4节,作者: 何正国 , 杜娟 , 毛海亚 更多章节内容可以访问云栖社区“异步社区”公众号查看。2.4 ArcGIS Server的安装与配置精通ArcGIS Server 应用与开发2.4.1 安装环境1.ArcGIS Server 10支持的平台Windows..._精通arcgis server 应用与开发

matlab 图像变换函数,Matlab中的常用图像变换函数-程序员宅基地

文章浏览阅读793次。1. 离散傅立叶变换的 Matlab实现Matlab 函数 fft、fft2 和 fftn 分别可以实现一维、二维和 N 维 DFT 算法;而函数 ifft、ifft2 和 ifftn 则用来计算反 DFT 。这些函数的调用格式如下:A=fft(X,N,DIM)其中,X 表示输入图像;N 表示采样间隔点,如果 X 小于该数值,那么 Matlab 将会对 X 进行零填充,否则将进行截取,使之长度为 ..._matlab中dctmtx用法

Linux SSH命令大全-程序员宅基地

文章浏览阅读37次。rm -rf mydir /* 删除mydir目录 */ cd mydir /* 进入mydir目录 */ cd – /* 回上一级目录 */ cd ~ /* 回根目录 */ mv tools tool /* 把tools目录改名为tool */ ln -s tool bac/* 给tool目录创建名为bac的符号链接,最熟悉的应该就是FTP中www链接到public_html目录了...

30个思科设备巡检命令,值得每位网络工程师收藏!_思科ac巡检命令-程序员宅基地

文章浏览阅读1.2k次。以上是30个常用的思科设备巡检命令,用于获取设备的各种配置和状态信息。在网络设备的日常运维和故障排查中,这些命令可以帮助管理员快速了解设备的状态、配置和性能情况,以便及时发现和解决潜在的问题。今天给大家带来的是30个思科设备巡检的命令,每个命令都有解释,希望对每位网络工程师有所帮助!你好,这里是网络技术联盟站。_思科ac巡检命令

mac电脑触控板快速选择(三指拖移、三指选择)_mac trackpad 两指移动-程序员宅基地

文章浏览阅读2w次。mac电脑触控板快速选择前提:在截图或者选择的时候,点击触控板在拖动会很麻烦,mac提供一个三指拖移的功能,能够用三指快速拖移,这样就变成四指切换。步骤左上角,点击苹果logo,选择系统偏好设置点击辅助功能,选择“鼠标与触控板”点击“触控板选项”,勾选启动拖移,选择“三指拖移”,选择“好”就设置完毕啦。这样,就可以一指滑动,轻触点击;二指滑动三指拖移四指切换面板棒呆..._mac trackpad 两指移动

H.266/VVC技术学习54:划分_h.266 ctb-程序员宅基地

文章浏览阅读2.2k次。文章目录1 图片被划分为CTU2 图片被划分为SubPicture、Slice、Tile2.1 Tile、SLice、SubPicture的概念2.2 光栅扫描分区模式2.3 矩形分区模式3 CTU以树形继续向下划分3.1 HEVC的划分方式3.2 VVC的划分方式3.3 编解码方式3.4 示例3.5 高层参数及限制3.6 帧内的色度独立划分4 CU在图片边缘的划分5 CU冗余划分的限制6 虚拟管..._h.266 ctb

随便推点

一站直达!!!了解Linux信息收集操作_)使用两种方式在用户信息文件中查看此用户信息(只看此用户),把结果分别存放于-程序员宅基地

文章浏览阅读966次,点赞28次,收藏16次。Linux系统信息收集操作大全,收藏随时查看!!!!_)使用两种方式在用户信息文件中查看此用户信息(只看此用户),把结果分别存放于

Git,Github和Gitlab简介和基本使用_公司项目为何不直接在gitlab上建立-程序员宅基地

文章浏览阅读318次。什么是GitGit是一个版本控制系统(Version Control System,VCS)。版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统。多年前,我在法国做第一个实习时(2011年),那时候自己编程还在入门阶段,根本没听过版本控制系统。那时候真是蠢(现在也没好到哪里去),每次修改多一点的代码,就要复制、黏贴整个项目目录。因此,公司的电脑里有着几十个项目的副本(简直了)。前不久,我看到公司的一个实习生也在做和我多年前同样的事。而且我们问他,他说没听说过版本控制系统._公司项目为何不直接在gitlab上建立

nvm use 报错 nvm use 18.12.1 exit status 5: �ܾ����ʡ�_nvm use 18.19.1-程序员宅基地

文章浏览阅读342次。右键以管理员身份运行。_nvm use 18.19.1

蓝桥杯星期几/wps设置填充方式:按年/月/日填充_wps excel根据年份月份星期填日期-程序员宅基地

文章浏览阅读1.2k次。wps设置填充方式:按年/月/日填充1.首先在新建的WPS表格中输入某一天的日期,将开始一栏中的“常规”改为长日期2.点击表格的右下角黑色加号,下拉,下拉完成后会出现一个自动填充选项在如图位置 没截上3.点击填充选项,选择填充方式即可如图,以年填充4.右击选中的表格,选择设置单元格格式,类型选择为星期,即可查看某日是星期几如图..._wps excel根据年份月份星期填日期

mysql中 out syssys_refcursor_oracle存储过程中的select与参数详细说明-程序员宅基地

文章浏览阅读444次。create or replace procedure pro_testisbeginselect * from t_test;end pro_test;这个正确吗?昨天因为这个,耽误了好久(在一个存储过程中用了select语句,但既没有用游标也没有用into).在存储过程(oracle)中如果用了select语句,要么使用"select into 变量"语句要么使用游标,oracle不支持单独的..._addrecords out sys_refcursor

关于RSA算法密钥长度/密文长度/明文长度_rsa2048原文长度限制-程序员宅基地

文章浏览阅读2.3k次,点赞2次,收藏2次。zhuanzai1.密钥长度rsa算法初始化的时候一般要填入密钥长度,在96-1024bits间(1)为啥下限是96bits(12bytes)?因为加密1byte的明文,需要至少1+11=12bytes的密钥(不懂?看下面的明文长度),低于下限96bits时,一个byte都加密不了,当然没意义啦(2)为啥上限是1024(128bytes)?这是算法本身决定的...当然如果某天网上出_rsa2048原文长度限制