嵌入式科普(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

相关文章

怎样通过分析GC日志来定位Java进程的内存问题

《怎样通过分析GC日志来定位Java进程的内存问题》:本文主要介绍怎样通过分析GC日志来定位Java进程的内存问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、GC 日志基础配置1. 启用详细 GC 日志2. 不同收集器的日志格式二、关键指标与分析维度1.

Python中win32包的安装及常见用途介绍

《Python中win32包的安装及常见用途介绍》在Windows环境下,PythonWin32模块通常随Python安装包一起安装,:本文主要介绍Python中win32包的安装及常见用途的相关... 目录前言主要组件安装方法常见用途1. 操作Windows注册表2. 操作Windows服务3. 窗口操作

MySQL中的表连接原理分析

《MySQL中的表连接原理分析》:本文主要介绍MySQL中的表连接原理分析,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、背景2、环境3、表连接原理【1】驱动表和被驱动表【2】内连接【3】外连接【4编程】嵌套循环连接【5】join buffer4、总结1、背景

SQLite3 在嵌入式C环境中存储音频/视频文件的最优方案

《SQLite3在嵌入式C环境中存储音频/视频文件的最优方案》本文探讨了SQLite3在嵌入式C环境中存储音视频文件的优化方案,推荐采用文件路径存储结合元数据管理,兼顾效率与资源限制,小文件可使用B... 目录SQLite3 在嵌入式C环境中存储音频/视频文件的专业方案一、存储策略选择1. 直接存储 vs

嵌入式数据库SQLite 3配置使用讲解

《嵌入式数据库SQLite3配置使用讲解》本文强调嵌入式项目中SQLite3数据库的重要性,因其零配置、轻量级、跨平台及事务处理特性,可保障数据溯源与责任明确,详细讲解安装配置、基础语法及SQLit... 目录0、惨痛教训1、SQLite3环境配置(1)、下载安装SQLite库(2)、解压下载的文件(3)、

c++中的set容器介绍及操作大全

《c++中的set容器介绍及操作大全》:本文主要介绍c++中的set容器介绍及操作大全,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录​​一、核心特性​​️ ​​二、基本操作​​​​1. 初始化与赋值​​​​2. 增删查操作​​​​3. 遍历方

python中Hash使用场景分析

《python中Hash使用场景分析》Python的hash()函数用于获取对象哈希值,常用于字典和集合,不可变类型可哈希,可变类型不可,常见算法包括除法、乘法、平方取中和随机数哈希,各有优缺点,需根... 目录python中的 Hash除法哈希算法乘法哈希算法平方取中法随机数哈希算法小结在Python中,

Java Stream的distinct去重原理分析

《JavaStream的distinct去重原理分析》Javastream中的distinct方法用于去除流中的重复元素,它返回一个包含过滤后唯一元素的新流,该方法会根据元素的hashcode和eq... 目录一、distinct 的基础用法与核心特性二、distinct 的底层实现原理1. 顺序流中的去重

HTML img标签和超链接标签详细介绍

《HTMLimg标签和超链接标签详细介绍》:本文主要介绍了HTML中img标签的使用,包括src属性(指定图片路径)、相对/绝对路径区别、alt替代文本、title提示、宽高控制及边框设置等,详细内容请阅读本文,希望能对你有所帮助... 目录img 标签src 属性alt 属性title 属性width/h

关于MyISAM和InnoDB对比分析

《关于MyISAM和InnoDB对比分析》:本文主要介绍关于MyISAM和InnoDB对比分析,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录开篇:从交通规则看存储引擎选择理解存储引擎的基本概念技术原理对比1. 事务支持:ACID的守护者2. 锁机制:并发控制的艺