嵌入式科普(8)ESP-IDF newlib相关介绍和对比分析

2023-12-31 19:28

本文主要是介绍嵌入式科普(8)ESP-IDF newlib相关介绍和对比分析,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、目的/概述
二、资料来源
三、ESP-IDF简介
        3.1 ESP-IDF FreeRTOS
        3.2 ESP-IDF heap_caps
        3.3 ESP-IDF newlib
四、对比

嵌入式科普(8)ESP-IDF newlib相关介绍和对比分析

一、目的/概述

  • 1、在我的嵌入式科普(6)你听说过FreeRTOS heap6吗?b站有评论ESP-IDF

  • 2、我们就来简介ESP-IDF,重点看看与newlib相关的概念和源码

  • 3、对比分析

二、资料来源

  • ESP-IDF:https://www.espressif.com.cn/zh-hans/products/sdks/esp-idf

  • ESP-IDF 编程指南:https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32/

  • esp-idf github:https://github.com/espressif/esp-idf/tree/master

三、ESP-IDF简介

  • 首版ESP-IDFv0.9 Sep 30, 2016 ===> 里程碑ESP-IDFv5.0 2022年12月30日。

  • 2019 年 7 月,乐鑫科技在上海证券交易所科创板挂牌上市

  • ESP-IDF(Espressif IoT Development Framework 乐鑫物联网开发框架物联网开发框架)

    图片

    图片

芯片v4.3v4.4v5.0v5.1v5.2
ESP32

图片

图片

图片

图片

图片

ESP32-S2

图片

图片

图片

图片

图片

ESP32-C3

图片

图片

图片

图片

图片

ESP32-S3

图片

图片

图片

图片

芯片发布公告
ESP32-C2

图片

图片

图片

芯片发布公告
ESP32-C6

图片

图片

芯片发布公告
ESP32-H2

图片

图片

芯片发布公告
ESP32-P4

图片

芯片发布公告

图片

图片

图片

3.1 ESP-IDF FreeRTOS

  • FreeRTOS-Kernel-SMP

  • FreeRTOS-Kernel
     

    图片

    图片

3.2 ESP-IDF heap_caps

  • Heap初始化: voidheap_caps_init(void)

  • Heap分配: void *heap_caps_malloc( size_t size,uint32_t caps )

  • Heap释放: void heap_caps_free(void *ptr)

  • esp32 heap 内存管理简析

图片

图片

3.3 ESP-IDF newlib

  • ESP32 SDK中的malloc/calloc/free等系统调用,最终都是调用以上函数执行(参见syscall_stub_table)

  • _write_r ===> _write_r_console ===> esp_rom_uart_tx_one_char

图片

图片

图片

四、对比

类型软件对比特点
mcu/mpu库+freertos+其他毛坯房+傲慢
socesp-idf精装修+接地气

图片

这篇关于嵌入式科普(8)ESP-IDF newlib相关介绍和对比分析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/556939

相关文章

最长公共子序列问题的深度分析与Java实现方式

《最长公共子序列问题的深度分析与Java实现方式》本文详细介绍了最长公共子序列(LCS)问题,包括其概念、暴力解法、动态规划解法,并提供了Java代码实现,暴力解法虽然简单,但在大数据处理中效率较低,... 目录最长公共子序列问题概述问题理解与示例分析暴力解法思路与示例代码动态规划解法DP 表的构建与意义动

C#使用DeepSeek API实现自然语言处理,文本分类和情感分析

《C#使用DeepSeekAPI实现自然语言处理,文本分类和情感分析》在C#中使用DeepSeekAPI可以实现多种功能,例如自然语言处理、文本分类、情感分析等,本文主要为大家介绍了具体实现步骤,... 目录准备工作文本生成文本分类问答系统代码生成翻译功能文本摘要文本校对图像描述生成总结在C#中使用Deep

Redis的Zset类型及相关命令详细讲解

《Redis的Zset类型及相关命令详细讲解》:本文主要介绍Redis的Zset类型及相关命令的相关资料,有序集合Zset是一种Redis数据结构,它类似于集合Set,但每个元素都有一个关联的分数... 目录Zset简介ZADDZCARDZCOUNTZRANGEZREVRANGEZRANGEBYSCOREZ

四种Flutter子页面向父组件传递数据的方法介绍

《四种Flutter子页面向父组件传递数据的方法介绍》在Flutter中,如果父组件需要调用子组件的方法,可以通过常用的四种方式实现,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录方法 1:使用 GlobalKey 和 State 调用子组件方法方法 2:通过回调函数(Callb

Python进阶之Excel基本操作介绍

《Python进阶之Excel基本操作介绍》在现实中,很多工作都需要与数据打交道,Excel作为常用的数据处理工具,一直备受人们的青睐,本文主要为大家介绍了一些Python中Excel的基本操作,希望... 目录概述写入使用 xlwt使用 XlsxWriter读取修改概述在现实中,很多工作都需要与数据打交

Linux使用fdisk进行磁盘的相关操作

《Linux使用fdisk进行磁盘的相关操作》fdisk命令是Linux中用于管理磁盘分区的强大文本实用程序,这篇文章主要为大家详细介绍了如何使用fdisk进行磁盘的相关操作,需要的可以了解下... 目录简介基本语法示例用法列出所有分区查看指定磁盘的区分管理指定的磁盘进入交互式模式创建一个新的分区删除一个存

2.1/5.1和7.1声道系统有什么区别? 音频声道的专业知识科普

《2.1/5.1和7.1声道系统有什么区别?音频声道的专业知识科普》当设置环绕声系统时,会遇到2.1、5.1、7.1、7.1.2、9.1等数字,当一遍又一遍地看到它们时,可能想知道它们是什... 想要把智能电视自带的音响升级成专业级的家庭影院系统吗?那么你将面临一个重要的选择——使用 2.1、5.1 还是

java脚本使用不同版本jdk的说明介绍

《java脚本使用不同版本jdk的说明介绍》本文介绍了在Java中执行JavaScript脚本的几种方式,包括使用ScriptEngine、Nashorn和GraalVM,ScriptEngine适用... 目录Java脚本使用不同版本jdk的说明1.使用ScriptEngine执行javascript2.

关于Maven生命周期相关命令演示

《关于Maven生命周期相关命令演示》Maven的生命周期分为Clean、Default和Site三个主要阶段,每个阶段包含多个关键步骤,如清理、编译、测试、打包等,通过执行相应的Maven命令,可以... 目录1. Maven 生命周期概述1.1 Clean Lifecycle1.2 Default Li

numpy求解线性代数相关问题

《numpy求解线性代数相关问题》本文主要介绍了numpy求解线性代数相关问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 在numpy中有numpy.array类型和numpy.mat类型,前者是数组类型,后者是矩阵类型。数组