自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(51)
  • 收藏
  • 关注

原创 FreeRTOS操作系统(详细速通篇)——— 第十一章

FreeRTOS中一种重要的机制,用于在任务与任务、任务与中断、中断与任务之间进行数据传递和通信。队列的主要作用是实现任务间的消息传递,以保证数据的安全性和可靠性。在队列中可以存储数量有限且大小固定的数据。队列中的每一项数据被称为“队列项目”,队列所能存储“队列项目”的最大数量称为队列的长度。在创建队列时,需要预先指定队列的长度和每个队列项目的大小。在向对列写入时候需要进入临界区在我专栏《FreeRTOS开发知识细节及问题详解》中有介绍什么为临界区),

2024-07-26 09:00:00 1358

原创 FreeRTOS操作系统(详细速通篇)——— 第十章

FreeRTOS提供的丰富API函数为开发者在任务管理、状态查询和时间统计等方面提供了强有力的支持。在实际应用中,开发者应根据项目需求选择合适的API函数,并注意相关宏定义的配置,以充分发挥FreeRTOS的功能优势。以下函数为获取任务相关数据的API函数,现在不必熟练使用,知道每个函数具体是用来做什么的即可,下文将对以下函数进行详细介绍。函数用于以表格形式获取系统中所有任务的信息。待获取状态任务的任务句柄。函数用于通过任务名获取任务的句柄。根据任务名获取该任务的任务句柄。获取任务的任务栈历史剩余最小值。

2024-07-25 09:15:00 836

原创 FreeRTOS操作系统(详细速通篇)——— 第九章

在之前的文章里我们已经对其进行过介绍,一共有三种调度方式。占式调度依赖任务的抢占优先级别,在FreeRTOS中抢占优先级数值越大,任务优先级越高。同等优先级任务它们轮流享有相同的运行时间(时间片),在该系统中一个时间片就相当于系统抵达定时器的一个中断周期。

2024-07-24 09:15:00 1117

原创 电机软件设计工程师笔试题(选择题)

A. Tracealyzer - Tracealyzer用于实时操作系统的调试和分析。: C. CAN - CAN协议用于实时控制网络中的设备通信,常用于汽车和工业自动化。: A. Dijkstra算法 - Dijkstra算法用于路径规划和最短路径计算。: B. 长期数据存储 - EEPROM用于长期数据存储,断电后数据不丢失。: A. MPLAB - MPLAB是用于编写和调试嵌入式系统代码的IDE。: A. CAN - CAN协议广泛应用于车载网络,用于设备间的实时通信。

2024-07-24 08:22:55 821

原创 FreeRTOS操作系统(详细速通篇)——— 第八章

在FreeRTOS中,列表是一个双向链表,包含多个列表项。每个列表具有一个列表根(List Root)和一个指向列表尾的指针。列表通过列表项来管理数据,每个列表项都存储了一个数值(通常是时间戳或优先级)和指向相应数据结构的指针。简而言之,列表就是数据结构,概念上和链表有点类似,列表被用来跟踪 FreeRTOS中的任务;列表项就是放在列表中的项目。列表项间的地址非连续的,是人为的连接到一起的。列表项的数目是由后期添加进来的个数决定的,随时可以改变。

2024-07-23 09:15:00 2205

原创 FreeRTOS操作系统(详细速通篇)— 第七章(零碎知识篇)

此外,为了减少临界区的延迟,FreeRTOS 还提供了另一种方式,即通过设置中断优先级屏蔽(Interrupt Priority Masking),只禁用优先级较低的中断,而不是全部禁用。它是指代码中某些需要原子操作或不被打断的部分。在 FreeRTOS 中,临界代码保护区可以有效地保护共享资源,避免并发访问带来的问题。在 FreeRTOS 中,临界代码保护区通常通过禁用中断来实现。任务调度器就像它名字一样,若将其挂起,任务将无法正常调度。,我们希望在任务中对其进行修改时不被打断。来保护这些访问操作。

2024-07-22 09:15:00 1296

原创 FreeRTOS操作系统(详细速通篇)——— 第六章

1.1中断定义中断是 CPU 的一种常见特性,通常由硬件触发。当中断发生时,CPU 会暂停当前的程序,转而执行与该中断相关的服务程序。ARM Cortex-M 内核的微控制器(MCU)配备了嵌套向量中断控制器(NVIC,Nested Vectored Interrupt Controller),专门用于高效管理中断。简而言之,让CPU打断正常运行的程序,转而去处理紧急的事件(程序),就叫中断。

2024-07-21 09:15:00 829

原创 FreeRTOS操作系统(详细速通篇)——— 第五章

()挂起任务()恢复被挂起的任务()在中断中恢复被挂起的任务FromISR的API函数均是中断专用的函数。

2024-07-20 09:15:00 676

原创 FreeRTOS操作系统(详细速通篇)——— 第四章

静态任务创建函数详解如下所示,动态任务创建完成后也会会有一个返回值,其返回值与动态任务创建函数不同,当返回值不等于NULL时任务创建成功,若为其他值时说明任务创建失败!动态任务创建函数详解如下所示,动态任务创建完成后会有一个返回值,当返回值为pdPASS的时候说明任务创建成功,若为其他值时说明任务创建失败!空闲任务会负责释放被删除任务中由系统分配的内存,但由用户在任务删除前申请的内存, 则需要由用户在任务被删除前提前释放,否则将会导致内存泄露。静态任务创建函数很少使用,绝大部分都是动态任务创建函数。

2024-07-19 09:15:00 937

原创 FreeRTOS操作系统(详细速通篇)——— 第三章

这三个中断的中断服务函数在 HAL 库提供的文件中都有定义。根据上述步骤的修改,delay.c 文件中使用到了 FreeRTOS 的相关函数,因此就需要在delay.c文件中包含 FreeRTOS 的相关头文件,并且移除掉原本存在的 µC/OS 相关头文件。接下来修改 SYSTEM 文件夹中的最后一个文件——delay.c,delay.c 文件需要改动的地方比较多,大致可分为三个步骤:删除适用于 µC/OS 但不适用于 FreeRTOS 的相关代码、添加FreeRTOS 的相关代码、修改部分内容。

2024-07-18 14:15:00 1121

原创 FreeRTOS操作系统(详细速通篇)——— 第二章

由于运行态的任务只能有一个,运行态只能由就绪态任务进行转换,但进入就绪态的任务可以转换为其他三种状态。4.当Task3的阻塞状态解除(如延时结束或接收到信号量),Task3将恢复到就绪状态,并抢占Task2的运行。1.当Task1在运行时,若Task2变为就绪状态,抢占式调度器将使Task2抢占Task1的运行;2.当Task2在运行时,若Task3变为就绪状态,抢占式调度器将使Task3抢占Task2的运行;同样举例来说:Task4、Task5、Task6的优先级为相同的三个任务。

2024-07-17 09:15:00 1042 1

原创 自动驾驶与智能交通

随着技术的飞速发展,自动驾驶和智能交通系统正逐步改变着我们的生活方式和城市结构。这两个领域不仅在科技界引发了巨大关注,也在全球范围内催生了新的产业和商业模式。本文将探讨自动驾驶汽车的技术及其应用,以及智慧城市中智能交通系统的运作和影响。

2024-07-16 14:45:00 584

原创 FreeRTOS操作系统(详细速通篇)——— 第一章

首先,来看一下 FreeRTOS 这个名字,可以分为两部分:“Free”和“RTOS”。“Free”意味着免费、自由和不受约束,而“RTOS”则是实时操作系统(Real Time Operating System)的缩写。需要注意的是,RTOS 并不是指某一个特定的操作系统,而是一个类别,包括 μC/OS、FreeRTOS、RTX 和 RT-Thread 等等。这些都是 RTOS 类的操作系统。因此,从 FreeRTOS 这个名字中我们可以看出,它是一款免费的实时操作系统。

2024-07-15 09:30:00 1971 3

原创 绿色科技与可持续IT

在当今全球面临气候变化和资源枯竭的背景下,绿色科技与可持续IT成为了企业和科技界的重要关注点。通过采用节能数据中心和可持续软件开发,科技企业可以在提供高效服务的同时,减少对环境的负面影响。本文将详细探讨节能数据中心和可持续软件开发的具体措施及其重要性。

2024-07-14 14:45:00 870

原创 网络安全:零信任安全与量子安全

随着信息技术的迅速发展,网络安全的重要性愈加凸显。传统的网络安全防护策略已经难以应对日益复杂和多样化的威胁。因此,零信任安全和量子安全等新兴技术正在成为现代网络安全体系的重要组成部分。本文将详细介绍这两种关键技术及其在网络安全领域的应用。

2024-07-13 09:00:00 721

原创 5G与未来通信技术

随着科技的迅猛发展,通信技术也在不断演进。5G技术作为第五代移动通信技术,已成为现代通信技术的一个重要里程碑。本文将详细介绍5G及其对未来通信技术的影响,重点探讨超高速互联网和边缘网络的应用。

2024-07-12 09:00:00 1331

原创 开源项目有哪些机遇与挑战?

随着全球经济和科技环境的快速变化,开源软件项目的蓬勃发展成为了开发者社区的热门话题。越来越多的开发者和企业选择参与开源项目,以推动技术创新和实现协作共赢。本文将从开源项目的发展趋势、参与开源的经验分享以及开源项目的挑战三个方面进行探讨。

2024-07-11 09:00:00 617

原创 增强现实(AR)与虚拟现实(VR)的区别?

随着科技的飞速发展,增强现实(AR)与虚拟现实(VR)技术在各个领域展现出巨大的潜力和应用前景。这两种技术虽然在体验和实现方式上有所不同,但都为用户提供了全新的感知体验。本文将详细解析AR和VR的概念、区别、技术实现、应用领域及未来发展趋势。

2024-07-10 09:00:00 911

原创 一文读懂:什么是云计算与混合云架构?

云计算(Cloud Computing)是一种通过互联网提供计算资源的模式,包括存储、计算能力、数据库、网络等。用户可以按需获取这些资源,而无需管理底层基础设施。

2024-07-09 09:15:00 1031

原创 一文读懂:什么是边缘计算与雾计算技术

边缘计算和雾计算为数据处理提供了不同的策略,满足了现代物联网、大数据和实时应用的需求。边缘计算侧重于在靠近数据生成源的位置进行处理,以实现快速响应和高效数据利用。通过将计算能力放置在“边缘”设备(如传感器、网关、智能设备等)上,边缘计算能够更快地处理数据,减少延迟,优化带宽利用率,并增强数据的安全性。(Fog Computing)是由思科提出的一种延伸边缘计算的概念,它在云计算和边缘计算之间架起了桥梁。雾计算通过在边缘层和云层之间引入一层雾层(Fog Layer),提供分布式的计算、存储和网络服务。

2024-07-08 09:00:00 661

原创 FreeRTOS 中delay、xtestdelay、xtestdelayUntil的区别

vTaskDelayvTaskDelay是 FreeRTOS 提供的标准延迟函数,用于将当前任务阻塞指定的时间。它的主要作用是让任务在一段时间内不参与调度,从而让其他任务有机会运行。

2024-07-07 09:00:00 463

原创 FreeRTOS中vTaskDelay 和 xTaskDelayUntil 的区别?

延迟时间起点vTaskDelay:延迟时间是从调用时刻开始计算的。:延迟时间是基于上次唤醒时间,确保任务以固定周期运行。精确度vTaskDelay:由于延迟时间相对,容易受其他任务执行时间的影响,不适合需要精确周期的任务。:提供了更高的时间精确度,适用于周期性任务。使用场景vTaskDelay:适合简单的延迟场景,比如需要在任务中添加一些等待时间。:适合周期性任务,比如需要以固定时间间隔采集传感器数据的任务。

2024-07-06 09:00:00 547

原创 FreeRTOS中的delay与vtaskdelay的区别?

FreeRTOS中,delay和vTaskDelay都是用于延时任务的操作,但它们的应用场景和实现方式有所不同。详细了解这两者对于正确使用FreeRTOS进行嵌入式开发非常重要。本文将深入探讨FreeRTOS中的延时机制,尤其是delay和vTaskDelay的区别。

2024-07-05 09:00:00 857

原创 AI是在帮助开发者还是取代他们?

在软件开发领域,生成式人工智能(AIGC)正在改变开发者的工作方式。无论是代码生成、错误检测还是自动化测试,AI工具正在成为开发者的得力助手。然而,这也引发了对开发者职业前景和技能需求变化的讨论。AI究竟是在帮助开发者还是取代他们?本文将从AI工具的现状、对开发者的影响及其未来发展方向三个方面探讨这一问题。

2024-07-04 09:38:48 1222

原创 FreeRTOS 中 vListInsertEnd 函数详解

在 FreeRTOS 中,函数用于将新项插入到指定列表的尾部(但实际行为是插入到一个特定的索引位置之前)。FreeRTOS 使用双向链表(doubly linked list)来管理任务和其他系统对象,这样可以高效地插入、删除和遍历列表。

2024-07-04 09:00:00 644

原创 什么是滴答定时器?

滴答定时器是嵌入式系统中重要的定时工具,广泛用于时间管理、任务调度和延时操作。其简单高效的工作原理使得它在各种嵌入式应用中都能发挥关键作用。然而,在设计和使用滴答定时器时,必须考虑中断开销和滴答间隔的选择,以平衡系统的性能和精度需求。

2024-07-02 06:30:00 688

原创 什么是ISR?

(Interrupt Service Routine,中断服务程序)是一个用于处理硬件中断的特定程序。中断是硬件或软件引起的事件,会暂时打断当前正在运行的任务,以便紧急处理某个事件。ISR的目的是快速响应中断信号,执行所需的操作,并尽快返回继续执行被打断的任务。

2024-07-01 19:00:00 839

原创 什么是 人工智能(AI)与机器学习(ML)?

人工智能(Artificial Intelligence,AI)和机器学习(Machine Learning,ML)是现代科技的核心概念,它们在不同领域中应用广泛。了解它们之间的关系及其工作原理对理解现代技术至关重要。本文将详细介绍人工智能和机器学习,并用图示解释它们的基本概念和应用。人工智能是指计算机系统模拟人类智能的能力,使其能够执行通常需要人类智能的任务,如视觉感知、语音识别、决策制定和语言翻译。AI 试图赋予机器类似人类的智能,使其能够自动处理复杂的问题和任务。

2024-06-30 18:30:00 540

原创 什么是区块链与去中心化技术?

区块链是一种分布式数据库技术,它由一系列按时间顺序连接的“区块”组成,每个区块包含了若干条交易记录。这些区块通过密码学手段相互连接,形成一个不可篡改的、透明的、可追溯的链条。这种技术最早在2008年由中本聪提出,作为支持比特币的基础技术而问世。

2024-06-29 09:00:00 1087

原创 什么是量子计算?

量子计算是一种基于量子力学原理的新型计算模式。与传统的经典计算不同,量子计算利用量子比特(qubit)进行信息处理,提供了在某些问题上的显著加速潜力。以下是对量子计算的详细介绍。

2024-06-28 09:00:00 1063

原创 FreeRTOS:任务调度与进出临界区函数

在FreeRTOS中,任务调度是通过函数启动的。这个函数初始化系统定时器和中断,并开始调度所有已创建的任务。然而,如果任务在调度器启动后立即运行而不是根据设定的优先级运行,可能是由于某些任务创建后的行为导致的。为了解决这种问题,可以使用进入临界区和退出临界区的方法来确保任务的创建和初始化不被调度器打断。这样可以保证在调度器启动前,任务的创建和初始化是同步的,并且调度器启动后任务按优先级正确运行。

2024-06-27 09:00:00 583

原创 FreeRTOS中任务控制块和任务句柄的作用

它们在FreeRTOS中协同工作,使得任务管理和调度成为可能。任务句柄为应用程序提供了一种方便的方式来引用和操作任务,而任务控制块则在内核中管理和维护任务的详细信息。是FreeRTOS内核用于管理任务的关键数据结构。它包含了任务执行所需的各种信息。每个任务对应一个唯一的TCB。是指向任务控制块(TCB)的指针。它是任务在应用程序中的引用,允许任务通过任务句柄进行操作。

2024-06-26 09:00:00 570

原创 什么是滑动窗口?

滑动窗口(Sliding Window)是一种用于管理和处理数据流的技术,通过在数据流上定义一个固定大小的窗口,从而实现高效的数据处理、传输控制和资源管理。这种技术广泛应用于计算机网络、算法设计、图像处理等领域。

2024-06-25 09:00:00 1136

原创 什么是流水线?

流水线(Pipeline)是一种提升系统效率和性能的方法,通过将任务分解成多个阶段(也称为“阶段”或“段”),使得各个阶段能够并行工作。这种技术广泛应用于计算机处理器、工业生产、软件开发、数据处理等领域,以最大限度地提高吞吐量和减少延迟。

2024-06-24 09:00:00 1168

原创 什么是FIFO管理单元?(First-In-First-Out)

FIFO(First-In-First-Out,先进先出)管理单元是一种广泛用于数据处理和存储系统中的机制,其核心理念是确保最早进入系统的数据最早被处理或移出。这种管理方法类似于排队的方式,最早进入队列的项目会最先得到服务。FIFO管理单元通常用于缓冲区(Buffer)设计、任务调度、内存管理等多个领域。在硬件和软件系统中,FIFO机制有助于保证数据的有序处理,从而提高系统的效率和响应能力。

2024-06-23 10:00:00 1016

原创 一文讲解什么是内容可寻址寄存器(Content-Addressable Register)

(Content-Addressable Register,CAR)是一种根据内容而非地址来存取数据的存储单元。这种寄存器可以通过指定的数据值来查找对应的存储位置,显著提高了数据匹配和检索的效率,尤其适用于需要快速数据查找的场景。

2024-06-22 09:43:53 1114

原创 一文概括:内容可寻址寄存器(CAR)

内容可寻址寄存器(Content-Addressable Register,CAR)是一种能够根据内容(数据)而非传统的存储地址来进行数据访问的特殊存储单元。与地址可寻址寄存器不同,内容可寻址寄存器可以通过指定的数据值来查找存储的位置,使其在需要高效数据检索的应用中尤其有用。

2024-06-21 11:32:16 783

原创 一文读懂什么是双端队列(Double-Ended Queue)?

双端队列是一种允许在数据结构的两端进行插入和删除操作的线性数据结构。与普通队列不同,它不仅支持在尾部插入和删除,还允许在头部进行同样的操作,结合了栈和队列的功能,提供了更大的操作灵活性。

2024-06-16 14:20:36 689

原创 什么是寄存器文件(Register File)?

寄存器文件是 CPU 内的高速存储器,用于存储和快速访问处理器执行指令时所需的操作数和中间结果。它的特点是容量小、速度快,设计目标是提供最小的访问延迟,以提高指令执行效率。

2024-06-15 10:00:00 726

原创 什么是仲裁器(Arbiter)?

在电子系统设计中,仲裁器(Arbiter)是关键组件,用于管理多设备或信号对共享资源(如总线、内存、I/O通道等)的竞争访问。通过确保公平和高效的资源分配,仲裁器提升了系统的性能和可靠性。本文将详细探讨仲裁器的作用、常见算法及其应用,并通过代码示例展示其实现。

2024-06-14 10:16:18 857

FreeRTOS程序移植

FreeRTOS程序移植,对应专栏文章

2024-07-15

STM32F103C8T6 MPU6050 串口打印三轴加速度、角速度

STM32F103C8T6 MPU6050 串口打印三轴加速度、角速度

2024-05-27

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除