RT-Thread

RT-thread线程创建:动态线程与静态线程

邮差的信 提交于 2021-02-19 06:55:35
本文介绍了如何创建一个动态线程和一个静态线程 RT-thread版本:RT-thread system 3.1.0 开发环境:MDK5 为了编程方便,创建了sample1.c文件,然后添加到工程中 话不多说,先上代码 #include " rtthread.h " #define stack_size 1024 //设置动态线程栈大小 #define priority 25 //设置优先级 #define tick 10 //时间片 static rt_thread_t tid1 = NULL; //指针初始化为NULL static void thread1_entry( void * parameter) //线程1入口函数 { rt_base_t i; rt_uint16_t count = 0 ; for (i = 0 ; i < 10 ; i++ ) { rt_kprintf( " thread1, count: %d\n " , count++ ); } } ALIGN(RT_ALIGN_SIZE); static struct rt_thread thread2; static char thread_stack[ 1024 ]; static void thread2_entry( void * parameter) //线程2入口代码 { rt_base_t i,

华尔街证实!中芯国际官方回应也来了...

99封情书 提交于 2021-02-16 03:39:33
突发:昨日,一则信件疯传朋友圈。路透社、华尔街相继发出报道,美国政府已经对中芯国际施加出口限制,拉入贸易黑名单。多家外媒 报道相对可靠,该来的终归会来... 美国商务部正式向美国电脑芯片产业(the computer-chip industry)发出了一封信件,该信件明确提出制裁中芯国际—— 《华尔街日报》表示其亲眼看到了这份信件的复件。 路透社称,美国政府之所以对这家中国最大的芯片制造商进行出口限制,是因为美方认为出口给中芯国际的设备存在用于军事的风险,而且这种风险是“无法接受”的。 制裁名义很简单:军事相关。 路透社:中芯国际已被美国拉入“黑名单”芯榜:微信icrankcn (截图来自路透社的报道) (FT金融时报) 相关新闻链接: https://www.ft.com/content/7325dcea-e327-4054-9b24-7a12a6a2cac6?shareType=nongift https://www.wsj.com/articles/u-s-sets-export-controls-on-chinas-top-chip-maker-11601118353 路透社:中芯国际已被美国拉入“黑名单”芯榜:微信icrankcn (网上流传、路透社确认的信件) 路透社:中芯国际已被美国拉入“黑名单”芯榜:微信icrankcn

RTT MicroPython VS 官方原生MicroPython

穿精又带淫゛_ 提交于 2021-02-15 05:49:58
当下 MicroPython 变得 越来越流行,RT-Thread 也提供了对应的软件包的支持。那么,相比官方原生的 MicroPython 我们有哪些改进呢?本文将深入介绍,RT-Thread MicroPython软件包与官方原生MicroPython的区别。 首先,我们先来了解下 MicroPython 本身的一些优势及应用领域。 MicroPython 的优势 Python 是一款容易上手的脚本语言,同时具有强大的功能,语法优雅简单。使用 MicroPython 编程可以降低嵌入式的开发门槛,让更多的人体验嵌入式的乐趣。 通过 MicroPython 实现硬件底层的访问和控制,不需要了解底层寄存器、数据手册、厂家的库函数等,即可轻松控制硬件。 外设与常用功能都有相应的模块,降低开发难度,使开发和移植变得容易和快速。 MicroPython 的应用领域 MicroPython 在嵌入式系统上完整实现了 Python3 的核心功能,可以在产品开发的各个阶段给开发者带来便利。 通过 MicroPython 提供的库和函数,开发者可以快速控制 LED、液晶、舵机、多种传感器、SD、UART、I2C 等,实现各种功能,而不用再去研究底层硬件模块的使用方法,翻看寄存器手册。这样不但降低了开发难度,而且减少了重复开发工作,可以加快开发速度,提高开发效率

社区新人的RT-Thread学习笔记8——内存管理

浪尽此生 提交于 2021-02-11 16:40:45
前言 本文讲RT-Thread的内存管理,包括为何不使用C标准库的内存管理函数、内存管理的特点、RT-Thread 程序内存分布、内存堆管理、内存池管理以及使用STM32进行实验。 一、不直接使用 C 标准库中的内存管理函数的原因 很多人会有疑问,为什么不直接使用 C 标准库中的内存管理函数呢?在电脑中我们可以用 malloc() 和 free() 这两个函数动态的分配内存和释放内存。但是,在嵌入式实时操作系统中,调用 malloc() 和 free() 却是危险的,原因有以下几点: 1、这些函数在小型嵌入式系统中并不总是可用的,小型嵌入式设备中的 RAM 不足。 2、它们的实现可能非常的大,占据了相当大的一块代码空间。 3、他们几乎都不是线程安全的。 4、它们并不是确定的,每次调用这些函数执行的时间可能都不一样。 5、它们有可能产生碎片。 6、这两个函数会使得链接器配置得复杂。 7、如果允许堆空间的生长方向覆盖其他变量占据的内存,它们会成为 debug 的灾难 。 二、内存管理的功能特点 1、分配内存的时间必须是确定的。一般内存管理算法是根据需要存储的数据的长度在内存中去寻找一个与这段数据相适应的空闲内存块,然后将数据存储在里面。而寻找这样一个空闲内存块所耗费的时间是不确定的,因此对于实时系统来说,这就是不可接受的, 实时系统必须要保证内存块的分配过程在可预测的确定时间内完成

RT-Thread 设备驱动-硬件定时器浅析与使用

杀马特。学长 韩版系。学妹 提交于 2021-02-11 15:57:43
RT-Thread 4.0.0 访问硬件定时器设备 应用程序通过 RT-Thread 提供的 I/O 设备管理接口来访问硬件定时器设备,相关接口如下所示: 函数 描述 rt_device_find() 查找定时器设备 rt_device_open() 以读写方式打开定时器设备 rt_device_set_rx_indicate() 设置超时回调函数 rt_device_control() 控制定时器设备,可以设置定时模式(单次/周期)/计数频率,或者停止定时器 rt_device_write() 设置定时器超时值,定时器随即启动 rt_device_read() 获取定时器当前值 rt_device_close() 关闭定时器设备 RT-Thread 提供的 I/O 设备硬件定时器,示例仅提供最通用简单的定时功能,其他定时器高级功能需自行在control中添加; 下面对基于CubeMX、Hal库的BSP的硬件定时器的使用做简单描述。 配置CubeMX 配置之后生成代码, 在 stm32f4xx_hal_conf.h 中 会实现 hal模块驱动 #define HAL_TIM_MODULE_ENABLED 修改工程目录下的 Kconfig 在 Kconfig 中添加对 TIM的支持 menuconfig BSP_USING_TIM bool " Enable Hardware TIM

社区新人的RT-Thread学习笔记9——PIN 设备

倖福魔咒の 提交于 2021-02-11 15:54:34
作者: sanjay 来源: CSDN 前言 本文主要学习RT-Thread的设备驱动框架之PIN 设备,这里以及后面更新的博客内容将不会详细介绍I/O 设备模型,当学习PIN 设备以及其他设备需要对I/O 设备模型有所了解,请和我一样刚学习RT-Thread的朋友们先自行到《RT-Thread编程指南》看一下I/O 设备模型。这里主要讲解如何访问PIN 设备,针对PIN设备各个函数讲解,以及教你如何基于PIN设备实现自己的GPIO驱动以及基于外部GPIO的外部中断实现,详细的gpio驱动文件的各个函数,学完PIN 设备就可以基于自己的开发板制作一个属于自己的bsp的GPIO驱动文件。本文讲的都是以STM32作为硬件设备的。 一、RT-Thread的架构 学习过FreeRTOS或UCOS的朋友都知道,这两个实时操作系统只有内核,RT-Thread不像FreeRTOS或UCOS, 它不仅仅有内核,还有设备驱动框架(如PIN 设备、I2C 设备、UART设备等)、丰富的上层组件和软件包,而软件包更是做了MQTT、LWM2M等协议,因此,RT-Thread是一个IoT OS,功能强大,这也是我为什么喜欢RT-Thread,学习RT-Thread的原因。 RT-Thread 软件框架图(来源RT-Thread编程指南) 二、I/O 设备模型框架 RT-Thread 提供了一套简单的 I/O

【RT-Thread笔记】PIN设备中断实验

馋奶兔 提交于 2021-02-11 15:21:25
点击上方「 嵌入式大杂烩 」,选择「置顶公众号」第一时间查看编程笔记! 通用I/O的特性 通用I/O口主要特性如下: 1、输入输出模式可控制。 (1)输出模式一般包括:推挽、开漏、上拉、下拉。引脚为输出模式时,可以通过配置引脚输出的电平状态为高电平或低电平来控制连接的外围设备。 (2)输入模式一般包括:浮空、上拉、下拉、模拟。引脚为输入模式时,可以读取引脚的电平状态,即高电平或低电平。 2、可编程控制中断:中断触发模式可配置,一般有下图所示5种中断触发模式: 上一篇笔记 【RT-Thread笔记】IO设备模型及PIN设备 分享了PIN设备的输入输出例子。这篇笔记分享PIN设备的中断实验。 PIN设备中断实验 应用程序通过 RT-Thread 提供的 PIN 设备管理接口来访问 GPIO,中断用到的是 rt_pin_attach_irq() 接口及 rt_pin_irq_enable 接口: 根据原理图: 按键KEY0被按下时其对应的GPIO引脚应读取到低电平,所以引脚模式设置为下拉输入。废话不多说,直接看代码: # include <rtthread.h> # include <rtdevice.h> # include <board.h> # define STACK_SIZE 512 # define THREAD_PRIORITY 25 # define TIMESLICE

《RT-Thread驱动框架分析》-Pin驱动

老子叫甜甜 提交于 2021-02-11 14:57:46
简要 接下来做一个专辑《RT-Thread驱动框架分析》,我会按照自己的理解来描述每一个驱动。有不对的欢迎随时来怼我。 RT-Thread的版本分为两大类,一个是完整版本,一个是nano版本。而驱动框架是相对于完整版本的。所以要了解驱动框架,只能在完整版上了解。 RT-Thread提供了很多驱动框架,比如常见的外设驱动:I2C, SPI等。还有网络相关的WLAN驱动等。 驱动框架分析,主要以STM32来分析。 驱动分析 API简要说明 RT-Thread的pin驱动为上层应用提供两套不同的API,一套是对接设备驱动框架。一套是封装好的API,用户层可以直接使用。接下来我们来分析一下这两套API的使用,以及实现。 pin框架层次 用户访问的方式的接口不同,访问的层次是不一样的。 层次结构如下: 从上面的图可以看出,对于不同芯片,用户层的接口是统一的,而对于驱动层来说,只需要对接好相应的回调函数。 通过统一的接口,应用开发人不需要知道底层驱动,也减少造轮子的时间。 GPIO驱动层 驱动层的任务主要有:①对接底层硬件,②对芯片的GPIO统一编号,③注册下面描述的6个回调函数。 驱动层中,我们特别关注一个结构体rt_pin_ops,如下: /* pin.h */ struct rt_pin_ops { void (*pin_mode)(struct rt_device *device,

许愿活动,中奖名单公示!

拟墨画扇 提交于 2021-02-04 04:09:58
本周二,我们举行了朋友圈许愿活动,非常多小伙伴对RT-Thread说出了自己的愿望,有祝福、有期许、有诉求····隔着屏幕就感受到了小伙伴们的热情~虽然只有3位幸运伙伴可以实现心愿,但其他人也不要失望以后我们还会有更多的活动可以参与~下面就来看一下,这三位幸运者是谁吧: 活动中奖名单公示 网名:薄荷味儿阳光 网名: 嗯哼 网名: HJC 请中奖的小伙伴,联系微信: RT-Thread2006 领奖 END RT-Thread线上活动 1、 【RT-Thread能力认证考试12月——RCEA】 经过第一次考试的验证, RT-Thread能力认证得到了更多社区开发者和产业界的大力支持 ! (点此查看) 如果您有晋升、求职、寻找更好机会的需要,有深入学习和掌握RT-Thread的需求,欢迎垂询/报考! 能力认证官网链接: https://www.rt-thread.org/page/rac.html (在外部浏览器打开) 立即报名 #题外话# 喜欢RT-Thread不要忘了在GitHub上留下你的 STAR 哦,你的star对我们来说非常重要!链接地址: https://github.com/RT-Thread/rt-thread RT-Thread线下活动 1、 STM32全国研讨会,RT-Thread近期参展城市预告:上海、广州、顺德 你可以添加微信18917005679为好友,注明

2020年终总结——一颗红心,两手准备

早过忘川 提交于 2021-02-01 20:25:05
今年做了什么 Flag 验收 看回 2019年总结,又啪啪打脸了。。。果然计划赶不上变化,以后立 Flag 还是要慎重! 编制并出版一本书 设计并发布一个网站平台 做一个电台节目 去菲律宾读语言学校进修英语 考个无人机驾驶证(极飞农业无人机操作员考试) 先汇报一下: 之前构思了好多遍,要写一本关于 Linux 和物联网方面的书,于是在 Gitee 上用小号折腾了一年,还是没搞定!(希望在 2021 年 Q1 结束这场战斗) 不过倒是因为参与了《开源指北》的编写计划,算是共同协作出了一本电子书 (・-・*) 网站的话目前主要在维护两个,一个科技类的,一个人文类的。因为近期还要改版,所以暂时先不在这里公布了,等合适的时机再给大家宣传。 我自己喜欢听播客,所以老早就想我能不能做个电台节目给大家分享一下。但是由于懒… 内容定位也还没想好,所以迟迟没有落实下来,估计 2021 年也看不到了。不过因为参加硬禾学堂的 Funpack 活动,亲自出演拍了几个短视频,也算是在 B 站出道了~ 然后因为疫情嘛,本来计划找时间去菲律宾语言学校进修一下,也被推迟了,2021 年再看看情况。不过今年一直有坚持在开言英语 App 上练习,也把抖音 App 训练成了英语学习神器,可以看到世界各地的情况,还蛮有用的。 无人机驾驶证这个被忽略了,之前想玩这个是因为家里是山区,想看看能不能将无人机跟当地的农业结合起来