前言RT-Thread是一个嵌入式实时多线程操作系统,系统完全开源,它不仅仅是一个实时内核,还具备丰富的中间层组件,包括如文件系统、图形库等较为完整的中间件组件,具备低功耗、安全、通信协议支持和云端连接能力的软件平台。我们可以结合rtthread提供的组件和服务,制作软件包,丰富rt-thread的软件生态。让更多的开发者做到开箱即用,不用重复造轮子。必备知识熟悉rt-thread 了解Kconf
时钟节拍RT_TICK_PER_SECOND:操作系统中最小的时间单位是时钟节拍 (OS Tick)。周期性中断,这个中断可以看做是系统心跳,是系统延时(OS Tick(10ms)的最新倍),超时,时间片轮转调度的基础。中断之间的时间间隔取决于不同的应用,一般是 1ms–100ms,由​​ SysTick​​硬件定时器中断产生。精准延时:用其它硬件定时器或基于os tick的精准硬件阻塞方法如下:
转载 2020-05-01 16:31:00
491阅读
2评论
邮箱与消息队列:邮箱:开销小,效率高(每次4字节,32位任意值或指向缓冲区的指针),相当于MQTT中的代理,函数调用过程中的传地址(指针,浅拷贝)。一(发)对多(收)关系;因为一个邮箱可以有多封邮件,所以接收者可以通过地址(指针==数组名)判断是哪个邮箱发过来的。使用邮箱的前提是保证邮箱接收完成前内容不能改变,或者用邮箱的等待发送(设定超时),否则就用消息队列。   分阻塞(邮箱不存在或超时参数不
转载 2020-05-01 16:00:00
222阅读
2评论
nona版本为精简版本,只保留FISH(选配)最小内核,可以适配STM的STD.HAL/LL库,需要手动进行移植;现在可以在KEIL MDK/CUBEMX中进行集成,也可以RT-Thread Nano 离线安装包下载手动下载源码(安装在 )自己搭建。keil mdk在实时运行环境中打开,通过RT_CONFIG.H进行配置。 中断处理:原3个中断需要注释掉避免重复定义HardFault_Handle
转载 2019-12-04 17:53:00
369阅读
2评论
CmBacktrace (Cortex Microcontroller Backtrace)是一款针对 ARM Cortex-M 系列 MCU 的错误代码自动追踪、定位,错误原因自动分析的开源库。支持裸机、ucos  rh-thread,freertos.适配 Cortex-M0/M3/M4/M7 MCU;支持中英文输出。  ulog:与开源easy log很像,可将程序运行过程中的一些状态信息分
转载 2019-12-05 00:33:00
492阅读
2评论
0. 介绍1. 消息队列消息队列(Message Queue)是一种应用间的通信方式,消息发送后可以立即返回,由消息系统来确保消息的可靠传递。消息发布者只管把消息发布到 MQ 中而不用管谁来取,消息使用者只管从 MQ 中取消息而不管是谁发布的。这样发布者和使用者都不用知道对方的存在。1. 三个角色队列服务端队列生产者队列消费者2. 队列产品RabbitMQ:Erlang编写的消息队列产品,企业级消
     unix早期通信机制中的信号能够传送的信息量有限,管道则只能传送无格式字节流,这远远是不够的。     消息队列(也叫报文队列)客服了这些缺点:     消息队列就是一个消息的链表。     可以把消息看作一个记录,具有特定的格式。    &nbsp
Tornado是一个Python web框架和异步网络库,最初是在FriendFeed开发的。通过使用非阻塞网络I/O, Tornado可以扩展到数以万计的开放连接,非常适合长轮询、WebSockets和其他需要与每个用户进行长时间连接的应用程序。我们知道tornado是一个异步网络库而且是非阻塞网络IO模型,那, 什么是异步,同步, 什么又是阻塞非阻塞呢?(来自知乎上面严肃大牛的解答~)1.同步
RT-Thread零基础快速入门第8讲——软件包的使用 目录RT-Thread零基础快速入门第8讲——软件包的使用前言一、准备一个完整的工程二、打开配置页面三、下载软件包四、编译运行五、总结 前言RT-thread有很多实用的软件包,包含网络、IOT、外设、系统等多个方面,对于项目的快速开发或者评估来说是非常方便的。但不是所有软件包都是友好的,因为有些软件包是第三方贡献的,软件的质量参差不齐,即使
转载 2024-07-30 16:35:29
205阅读
  目前主流的嵌入式GUI开发技术中,RT-Thread/Persimmon、TouchGFX和emWin是最受人瞩目的。     RT-Thread/ Persimmon是国内主导开发的实时线程操作系统RT-Thread中的图形用户界面,是一款面向嵌入式系统的,具备多窗口、多线程的,类似Android界面
转载 11月前
40阅读
1 ENV中配置后不能下载,原因是将pkge --update 写成了pkge --upgrade 2 RTThread中falut定位方法 3将原来工程拷贝后该文件夹名导入时出错“某些项目因为已在工作空间中而不能被导入 “的原因和解决办法:   原因:导致这个错误的原因是工程重名bai了,并不是du仅仅指文件夹重名,关键是修zhi改工程里面“.project"这个文件。用记事本打开,修改工程名字
转载 2020-04-23 10:39:00
637阅读
2评论
1. 序言今天跟大家简单分享 LWIP + RTThread 的移植注意事项,记得以前刚接触 LWIP 那会,是跟着野火的教程一起走,而大部分 LWIP 移植教程都是以 freeRTOS 为主,本着支持 RTThread 的想法,在当时就想着移植 LWIP 到 RTThread 上,没想到翻车了,sockets 连接总是连接不上而 netconn 就可以,后面就放弃了…………,直到现在,把它捡起来
转载 2024-10-12 08:24:22
266阅读
近期要学习一款RTOS,让裸机不再孤单。 此次系统学习的RTOS是国产的RTthread(rtthread官网 )。官网中其实有很全面的介绍,还有相关入门视频讲解。RT-Thread 简介作为一名 RTOS 的初学者,也许你对 RT-Thread 还比较陌生。然而,随着你的深入接触,你会逐渐发现 RT-Thread 的魅力和它相较于其他同类型 RTOS 的种种优越之处。RT-Thread 是一款完
转载 11月前
119阅读
大家好本人大三菜鸟一枚,第一次写教程多有不足,敬请原谅。主要是记录一下自己的学习过程tep1:选择新建RT_Thread
转载 2022-04-13 16:25:11
420阅读
一 线程同步:信号量,互斥量,事件集 信号量:(任何线程都可释放,已经不存在实例,线程递归持有会发生主动挂起(最终形成死锁),优先级反转) 生成者(线程1)-共享数据(临界区)-消费者(线程2)模型中对共享数据的操作;对SPI总线的占有操作要互斥;对临界区的保护rt_hw_interrupt_disable/enable();rt_enter/exit_critical()。           
转载 2020-05-01 14:50:00
187阅读
2评论
引言并发是什么?企业在进行产品开发过程中为什么需要考虑这个问题?想象一下天猫的双11和京东的618活动,一秒的点击量就有几十万甚至上百万,这么多请求一下子涌入到服务器,服务器需要对这么多的请求逐个进行消化掉,假如服务器一秒的处理能力就几万,那么剩下的不能及时得到处理的这些请求作何处理?总不能让用户界面一直等着,因此消息队列应运而生,所有的请求都统一放入消息队列,工作线程从消息队列不断的消费,消息队
1.前言        很多时候我们需要将程序中的一些参数、数据等存储在EEPROM或者Flash中,达到掉电保存的目的。但有些情况下,程序需要频繁的修改这些参数,如果每次修改参数都进行一次保存,那将大大降低存储器的寿命。尤其是单片机内部Flash,以STM32F030K6T6为例,擦写寿命只有1000次。当然,这是最
前言11月中旬的时候,我在RT-Thread的推文看到了柿饼UI的入门课程活动。其实也不是第一次看到这个GUI的介绍,但是用Js开发的方式确实有点吸引我。关于柿饼UI官方介绍:https://mp...com/s/60asR4OnWoB7z5MpgJLdkw柿饼UI也叫PersimmonUI,即为澎心UI,前段时间在RT-Thread的开发者大会上亮相也有官方介绍过。底层
转载 5月前
46阅读
  最近老看一些服务器网关的代码页看了一些开源的代码。一个重要的技术线程池。  何为线程池,所谓线程池就是一组用来处理,客户请求的线程组 这里的客户指代的是线程池服务的对象。    线程池的实现原理:    (1)消息队列调用函数,当有消息到来时候,将消息封装插入消息队列。    (2)有一个 线程池附服务线程,该线程负责检索消息队列,创建线程池线程,将该消息派发到线程池的某一线程处理。    (
2020年是不平凡的一年:   这一年,世界在新冠疫情的阴霾中艰难前行;中国成功抵抗住新冠的肆虐成为全球唯一经济保持连续增长的国家;rt-thread成功发布了几个版本,也新推出了smart混合微内核,受众也越来越多;而我自己也在这一年首次将rt_thread应用于2个产品的开发,即将开始第三个项目的开展。一句话,都太TMD不容易了!       痛点,一般都是发现商机和行业机会的起点,rt-th
转载 2021-02-18 23:46:00
100阅读
2评论
  • 1
  • 2
  • 3
  • 4
  • 5