移植准备源码准备rtthread官网源码下载软件准备STM32CubeMX Keil5 Xshell Scons Python开始移植把源码解压到一个没有中文路径的文件夹,我就解压到D:\software\workspace\rt-thread进入bsp\stm32这些bsp都是一些厂商自己的开发板,rtthread官方给这些板子写好了bsp。我用的板子是普中科技STM32F103ZET6的板子,
文章目录基本多线程Arduino示例配置创建任务消息队列信号量定时器互拆量(Mutex)事件组(Event Group) 基本多线程Arduino示例配置#if CONFIG_FREERTOS_UNICORE
#define ARDUINO_RUNNING_CORE 0
#else
#define ARDUINO_RUNNING_CORE 1
#endif当FreeRTOS配置为单核模式时,AR
转载
2024-08-29 13:34:21
509阅读
调度,实际涉及到两个问题,一个是调度的对象是什么(你要调度啥),另一个就是如何进行调度。本文就来聊聊 FreeRTOS 的任务调度过程。说到调度对象,很容易想起那句名言:进程是资源的最小单位,线程是调度的最小单位。在 FreeRTOS 中没有区分进程,线程的概念,统称为任务,对应的结构体为:tskTCB。lib/FreeRTOS/tasks.c:typedef struct tskTaskCont
转载
2024-06-03 21:19:16
145阅读
对于esp32,其开发程序中有且只能有一个app_main函数,该函数是用户程序的入口,这在没有调用FreeRTOS的系统中相当于函数main,但其实在app_main之前,系统还有一段初始化的过程,其大致可以分为以下三个过程:ROM中的第一级引导加载程序将闪存偏移0x1000的第二级引导加载程序映像加载到RAM(IRAM和DRAM)。第二级引导程序从闪存加载分区表和主应用程序映像。主应用程序包含
转载
2024-04-03 20:01:32
462阅读
一、前言本人也是刚刚开始学习ESP32,还未毕业。对嵌入式开发有一点点基础,之前一直还玩的是8051和STM32单片机。自从我发现了ESP32后,我就对它产生了浓厚的兴趣。之后我就在官网买了一块开发板,开始我的学习之旅。 首先说说我为什么会对它产生浓厚的兴趣,第一、片上资源丰富,有多丰富大家可以到官网查找手册。对于一个想入门嵌入式的人来说,这些都是必须的。第二、软件框架开源。如果你目前不想去了
转载
2024-05-28 13:52:28
65阅读
文章目录Bootloader分区表默认分区表自定义分区表出厂程序恢复出厂设置自定义Bootloader应用级程序追踪FreeRTOS简介内核组成源码结构任务管理(线程管理、线程调度)优先级抢占式调度算法时间管理(时钟节拍)ESP32的硬件定时器定时器初始化定时器控制ESP32中的FreeRTOS时钟内存管理(内存堆)通信管理(消息队列、事件集、信号量、互斥量)消息队列事件集ESP32上的Free
转载
2024-08-27 19:26:09
150阅读
疑问我们知道32位win7一般只能使用4GB内存,原因是如果按照地址宽度是32bit(其实并不是)来算的话系统最多只能管理232字节的内存(通过补丁的方式可以使32位win7突破4GB的限制,关键词:ReadyFor4GB,后面我会讲下对其实现原理的猜测)。那么照这么算,64位系统应该能使用264字节的内存,也就是16EB(1EB = 1024PB, 1PB = 1024TB),这也太夸张了吧,谨
转载
2024-07-18 21:39:43
314阅读
在ESP32上充分利用双核的FreeRTOS多核编程介绍ESP32是一款功能强大的Wi-Fi和蓝牙双模芯片,内置两个处理核心(核心0和核心1)。FreeRTOS作为ESP32的操作系统,提供了多任务支持,可以使得这两个核心同时工作,双核,包含核心0(CPU0)和核心1(CPU1),在不使用freeRTOS情况下程序是跑在核心1上,而核心0主要运行WIFI和bluetooth,如果我们的项目不频繁使
转载
2024-07-17 13:16:12
237阅读
这里是调用双核的方法哈,和我们单核使用的方法不兼容,因为有一些函数是不一样的,不通用,但是下一篇博文我会更一篇单核使用队列进行任务间通讯的问题队列是什么?队列是可以从一个任务向其他任务以并发安全的方式发送消息的机制,也就是说他的目标是实现任务间的通讯,比如A任务向名为Queue的队列中发布了数据,那么B任务就可以从Queue这个队列中又把数据给取出来,并且,这个数据是复制式的,也就是说把数据复制一
转载
2024-03-26 14:35:26
165阅读
ESP32 RTOS 任务同步与消息通信篇概述概述在 RTOS 系统中,任务之间、任务和中断服务之间必然需要交互信息,以此来完成整体的系统功能。交互信息的目的可以是协调程序运行的先后顺序(称为任务同步),也可能是传递一块数据(称为消息通信)。总之在这样一个交互信息的过程中,有生产数据的一方,被称为“生产者“,有获取数据的一方,被称为”消费者“: 为了满足任务之间、任务与中断之间交互信息的需求,RT
探索无限可能:ESP8266 开源项目详解去发现同类优质开源项目:https://gitcode.com/1、项目介绍走进物联网的世界,你一定听说过 ESP8266 这个神奇的芯片。这是一个强大的、低成本的 Wi-Fi 模块,它让各种智能设备接入互联网变得轻而易举。在这个开源项目中,我们不仅能够找到 ESP8266 的相关资源,还有丰富的社区支持和代码示例,助你快速上手并打造出自己的物联网解决方案
ESP32-FreeRTOS基于 Michael_ee 老师的视频做的笔记 https://space.bilibili.com/1338335828 视频深入浅出,很适合初学者以及开发者提升用。一、FreeRTOS基础优势:系统免费方便代码复用实时性系统代码量很小,只需要3个C文件已经移植到很多平台二、ESP32中FreeRTOS启动过程2.1 FreeRTOS核心代码 在esp-idf-co
转载
2024-05-22 22:25:40
487阅读
C2是一个芯片采用4毫米x 4毫米封装,与272 kB内存。它运行框架,例如ESP-Jumpstart和ESP造雨者,同时它也运行ESP-IDF。ESP-IDF是Espressif面向嵌入式物联网设备的开源实时操作系统,受到了全球用户的信赖。它由支持Espressif以及所有ESP32芯片的社区。ESP32-C2的ROM代码经过优化,减少了对闪存的需求,ESP32-C2还延续了Espressif卓
转载
2024-03-29 13:04:55
381阅读
1、背景看图片_calloc_r ->_malloc_r ->heap_caps_malloc_default->heap_caps_malloc->multi_heap_malloc->multi_heap_malloc_impl->get_next_block
/* Return the next sequential block in the heap.
转载
2024-08-26 22:35:57
448阅读
ESP32-Arduino环境安装ESP32介绍&&使用前提1.ESP32 Arduino支持库下载2.ESP32-Arduino支持库安装3.开心的使用起来 ESP32介绍乐鑫ESP32 SoC 芯片支持以下功能:2.4 GHz Wi-Fi 蓝牙 4.2 标准 高性能双核 超低功耗协处理器 多种外设 ESP32 采用 40 nm 工艺制成,具有最佳的功耗性能、射频性能、稳定性、
转载
2024-03-28 19:35:55
124阅读
本 esp32 Arduino 教程的目的是解释如何在 freertos 队列的前面和后面插入内容。此 esp32 教程的测试是使用集成在esp32 开发板中的dfrobot 的 模块设备进行的。引言本文主要说明如何在FreeRTOS队列前/后插入数据。有关在ESP32上使用FreeRTOS队列的入门教程,请参见这一篇文章:http://mc.dfrobot.com.cn/thread-27558
转载
2024-06-04 22:10:52
101阅读
ESP32简介ESP32 是上海乐鑫公司开发的一款比较新的32位微控制器,它集成了WiFi及蓝牙等功能,有着性能稳定、功耗低、价格低廉等特点,非常适用于物联网开发,但也可以作为普通的MCU使用。ESP8266 也是乐鑫公司开发的一种非常流行的WiFi芯片。相比 ESP8266 ,ESP32 更加强大。ESP32的主要芯片种类有ESP32-C系列、ESP32-S系列和ESP32系列。这些芯片的参数和
转载
2024-02-26 15:42:03
349阅读
一、安装软件包打开终端输入命令(以下命令都是Ubuntu系统的) sudo apt-get install git wget libncurses-dev flex bison gperf python python-click python-pip python-setuptools python-serial python-cryptography python-future python-
转载
2024-05-07 23:43:35
39阅读
学习STM32单片机的时候,总是能遇到“堆栈”这个概念。分享本文,希望对你理解堆栈有帮助。 对于了解一点汇编编程的人,就可以知道,堆栈是内存中一段连续的存储区域,用来保存一些临时数据。堆栈操作由PUSH、POP两条指令来完成。而程序内存可以分为几个区:栈区(stack)堆区(Heap)全局区(static)文字常亮区程序代码
转载
2024-04-29 11:21:54
70阅读
重要提示这里我们将重点介绍 ESP32 的单核模式,因为该模式下可以适用更多内存优化功能;我们将在这里考虑典型的 IoT 用例,在该用例下牺牲性能获得内存是可以接受的准则;我们将以典型的云应用程序为研究用例,该应用需要具有相互认证支持的 TLS 连接;这里使用的 ESP-IDF 功能分支可查阅 https://github.com/mahavirj/esp-idf/tree/featu
转载
2024-03-05 14:31:01
3063阅读