new thread 、 new stack和New Object的形象说明_堆栈

New Thread

用途

New Thread 用于创建新的线程,特别是在使用实时操作系统(RTOS)时。线程是程序执行的基本单元,允许程序并行执行多个任务。通过创建新线程,你可以管理不同任务的执行,确保系统的实时性和响应性。

形象说明

  • 多任务处理:想象你在一台电脑上同时运行多个应用程序,比如浏览器、音乐播放器和文字处理软件。每个应用程序就像一个线程,它们同时运行,但彼此独立。
  • 任务分离:在嵌入式系统中,一个线程可能负责传感器数据读取,另一个线程负责通信,还有一个线程负责用户界面。通过分离这些任务,可以更有效地管理和调试系统。

New Stack

用途

New Stack 用于添加和配置软件堆栈(如文件系统、网络协议栈等)。软件堆栈是一组协同工作的库和服务,它们提供特定功能,例如存储管理、通信协议处理等。通过添加新堆栈,你可以扩展系统的功能,使其支持更多的中间件和服务。

形象说明

  • 功能扩展:想象你的系统像一个智能手机,基本功能包括拨打电话和发短信。添加文件系统堆栈就像在手机上安装一个文件管理应用,它允许你存储和管理文件。添加网络协议栈则类似于安装一个浏览器应用,使你可以访问互联网。
  • 模块化设计:通过模块化设计,你可以根据需求添加或移除功能。例如,在一个简单的传感器读取系统中,你可能不需要网络协议栈,但在一个复杂的物联网设备中,网络协议栈是必不可少的。

示例配置

New Stack 选项中,你可以选择以下分类:

  • Analog:添加和配置模数转换器(ADC)等模拟外设。
  • Connectivity:添加和配置通信协议栈,如 SPI、串口 和IIC等。
  • Input:配置输入设备,如按钮、传感器等。
  • OpenAMP:配置多核通信框架。
  • RTOS:添加和配置实时操作系统堆栈,如 FreeRTOS。
  • Timers:配置计时器外设,如 GPT、PWM 等。

new thread 、 new stack和New Object的形象说明_网络协议栈_02

New Object

用途

New Object 主要用于添加和配置系统中的各种同步和通信原语,如信号量、队列、互斥量等。这些对象用于在多线程环境中进行线程间的同步和通信。

形象说明

  • 功能单元:想象你正在建造一台复杂的机器(如机器人)。每个外设对象就像机器的一个功能单元,如传感器模块、电机控制模块、通信模块等。通过配置这些模块,你可以让机器具备多种功能,并且可以控制每个模块的行为。
  • 细粒度控制:在软件开发中,每个对象代表一个具体的硬件组件。通过创建和配置这些对象,你可以对每个组件进行细粒度的控制。例如,为 ADC 设置采样率,为 UART 设置波特率等。

具体对象类型

  • Binary Semaphore(二元信号量):用于线程间同步,可以用来控制访问共享资源。
  • Counting Semaphore(计数信号量):允许多个线程同时访问一定数量的资源。
  • Event Group(事件组):用于多个线程间的事件标志管理,允许线程等待多个事件中的一个或多个。
  • Message Buffer(消息缓冲区):用于线程间的消息传递,支持发送和接收消息。
  • Mutex(互斥量):用于线程间互斥访问,防止同时访问共享资源。
  • Queue(队列):用于线程间的消息队列,支持先进先出的消息传递。
  • Stream Buffer(流缓冲区):用于传输连续的数据流,适合处理连续的数据输入输出。
  • Timer(定时器):用于定时执行任务,支持周期性和一次性定时任务。

new thread 、 new stack和New Object的形象说明_网络协议栈_03


个人见解

     New Thread是多线程运行,这也是FreeRTOS的一个优势所在,每个线程对应不同的任务,如果在e2 studio中创建,就会生成不同任务的源文件和头文件,这跟我们在做逻辑开发的时候,喜欢用某模块名作为源文件和头文件是一样的,便于编程和纠错,同时也是实现实时性和并行处理的关键。完成某种特定的任务

     New Stack主要用于配置各种协议吧,比如某个传感器你采集电压,你需要遵循的协议是IIC或者其他,你就得使用它,也】通过添加中间件和服务库,提升了系统能力。完成某种任务需要的基础

    New Object 就是任务之间的通讯使者,因为一个系统中总存在某几个任务需要打配合,比如数据传递,你这边准备好数据了,当然要告诉使用者你得数据已经准备好了,这样使用者才可以安全使用,不会出现某些抢占等等导致出现的程序紊乱的问题。强调线程间的同步和通信,确保多线程环境的稳定性和可靠性。保证任务安全完成