自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

创新改变世界!

活到老,学到老。

  • 博客(82)
  • 收藏
  • 关注

原创 ARM架构的微控制器总线矩阵优先级与配置

总线矩阵的优先级与配置是优化 ARM MCU 性能的核心手段,需根据具体应用场景权衡实时性、公平性和效率。通过合理设置优先级策略(固定、轮询或动态)和精细调整寄存器参数,可以显著提升系统响应速度并减少资源争用。总线矩阵通过仲裁逻辑(Arbiter)管理主设备对共享资源的访问冲突,优先级配置直接影响系统的实时性、带宽利用率和任务响应速度。总线矩阵的优先级通常通过寄存器配置实现,具体方式因厂商和芯片型号而异。总线矩阵的仲裁器根据主设备的优先级决定访问顺序。在 ARM 架构的微控制器中,

2025-04-26 13:15:10 144

原创 ARM架构的微控制器总线矩阵

总线矩阵是 ARM MCU 实现高效多主设备协同的核心机制,尤其在高性能 Cortex-M7/M33 或 Cortex-A 系列中广泛应用。其灵活的路由和仲裁能力,使得复杂嵌入式系统(如实时控制系统、物联网网关)能够兼顾性能与实时性。

2025-04-26 13:13:32 128

原创 ARM架构总线系统通常由地址总线(Address Bus)、数据总线(Data Bus)和控制总线(Control Bus)组成

在ARM架构中,访问和的总线系统通常由、**数据总线(Data Bus)控制总线(Control Bus)**组成。这三类总线协同工作,完成处理器与存储器之间的数据传输。

2025-04-26 12:42:51 77

原创 冯·诺依曼和哈佛架构​​​​两种架构的总线组成及核心特点

在计算机体系结构中,哈佛架构和冯·诺依曼架构是两种不同的存储与总线设计范式,它们的总线组成和访问方式有显著差异。以下是两种架构的总线组成及核心特点的详细分析:核心特点:总线组成:工作流程:典型应用:核心特点:总线组成:工作流程:典型应用:核心特点:总线组成:典型应用:这两种架构的选择取决于具体应用需求(如速度、功耗、成本等),而现代处理器往往通过缓存、流水线等技术弥补冯·诺依曼的瓶颈,实现高效运行。

2025-04-26 11:32:17 254

原创 冯·诺依曼与哈佛架构CPU的时序对比

• 并行执行:取指(0x00000000) + 加密数据读写(0x08000000)• 总线请求(Bus Request)与总线授予(Bus Grant)机制导致延迟。• 经典哈佛架构:在实时性和确定性要求高的场景不可替代(如电机控制)• 2组独立总线:程序总线(256位) + 数据总线(64位×2)• 冯·诺依曼架构:适合需要灵活存储分配的场景(如通用操作系统)• 指令TCM(ITCM)和数据TCM(DTCM)独立访问。• 多端口存储器(如Cortex-A系列的多核总线)

2025-04-26 11:26:36 342

原创 RTX51配置程序Conf_tny.A51代码分析

定时器配置:决定系统节拍频率,影响任务调度和时间片轮转。堆栈管理:每个任务有独立的堆栈空间,需防止溢出。任务切换:通过保存和恢复寄存器、堆栈指针实现上下文切换。空闲模式:无任务运行时降低功耗。中断处理:定时器中断触发任务调度,需高效处理以维持实时性。

2025-04-26 08:26:38 150

原创 FREERTOS 动态创建任务函数xTaskCreate

函数用于动态创建一个新的任务(Task)。它是 FreeRTOS 任务管理的核心函数之一,通常用于初始化阶段创建并发任务。建议结合 FreeRTOS 的文档和实际调试工具优化任务设计。FreeRTOS 中的。

2025-04-21 11:01:12 309

原创 集成运放的关键技术参数

掌握这些参数及其影响,能够根据具体需求(如精度、速度、功耗)快速筛选合适的运放,避免设计中的常见问题(如振荡、噪声、失真)。• 高速信号(如视频、ADC驱动)需SR>1000 V/μs(如THS3091)。• 类型:电压噪声(nV/√Hz)、电流噪声(fA/√Hz)、1/f噪声(低频)。• 微弱信号放大(如生物电、传感器)需低噪声运放(如OPA1612)。• 参数:失调电压温漂(μV/℃)、偏置电流温漂(pA/℃)。• 参数:输出电流(如±20mA)、输出阻抗(低至Ω级)。

2025-04-20 12:34:18 479

原创 Keil MDK中禁用半主机(No Semihosting)

的详细配置代码,请提供具体型号!

2025-04-19 21:11:37 369

原创 Keil A51伪指令?用法

符号的伪指令,可以高效管理代码和内存布局,尤其在混合编程和复杂系统开发中至关重要。建议结合 Keil 的链接器文档(开头的段名,用于管理代码、数据、堆栈等系统资源。这些段名由链接器自动处理,需遵循其规则。,其用法具有特定约定。开头的段名,但需避免与系统段冲突。可作为通配符表示任意字符(需结合。Keil 预定义了一些以。

2025-04-19 13:37:13 278

原创 Keil A51汇编伪指令

掌握Keil A51伪指令后,可高效管理代码结构、优化内存使用,并实现C与汇编的无缝协作。建议结合Keil的官方文档和实际项目加深理解。

2025-04-19 13:22:18 425

原创 MCS-51单片机汇编语言编程指南

MCS-51(如8051、STC89C52等)的汇编语言编程是嵌入式开发的基础,适用于时序敏感、资源受限的场景。掌握MCS-51汇编语言后,可进一步学习C51混合编程或RTOS调度,提升复杂系统开发能力。

2025-04-19 13:09:39 486

原创 不同编译器ARM MCU的指令与伪指令相同吗?

在ARM MCU开发中,和。

2025-04-15 09:31:32 438

原创 ARM Cortex汇编宏定义

使用。

2025-04-15 09:29:30 569

原创 ARM Cortex汇编伪指令

在ARM架构(尤其是Cortex-M系列MCU)的汇编中,伪指令(Pseudo-Instructions)是由汇编器解释的特殊指令,用于定义数据、符号、代码结构或控制汇编过程。通过合理使用伪指令,可以高效组织代码结构、定义数据和符号,这是编写MCU底层驱动(如启动文件、中断处理)的基础。用于定义数据常量、变量或缓冲区,不生成机器码,仅在汇编时分配内存。用于条件汇编(非运行时流程控制,而是汇编时的代码生成控制)。这些伪指令借用指令名称,但由汇编器处理,用于生成特定操作。用于包含文件、调试或控制汇编器行为。

2025-04-15 09:00:36 722

原创 ARM Cortex汇编指令

在ARM架构的MCU开发中,汇编指令集是底层编程的核心。

2025-04-15 08:54:43 871

原创 xPendedTicks与xYieldPending参数

在 FreeRTOS 中,和是调度器和时间管理相关的两个关键变量,它们的核心作用都与相关,但针对的场景不同。

2025-04-13 11:45:02 246

原创 FreeRTOS使任务处于运行态的API ?

在 FreeRTOS 中,任务的**运行态(Running State)**是任务实际占用 CPU 执行代码的状态。FreeRTOS 的调度器(Scheduler)会根据任务优先级和调度策略自动选择就绪态中的最高优先级任务进入运行态。

2025-04-12 17:57:22 724

原创 FreeRTOS使任务处于就绪状态的API

在FreeRTOS中,任务的**就绪状态(Ready State)**意味着任务已准备好运行,但尚未被调度器分配CPU时间。将被挂起(Suspended)的任务恢复为就绪状态。通过更灵活的方式(如覆盖、递增)发送通知,唤醒任务。在中断服务程序(ISR)中恢复被挂起的任务。向指定任务发送通知,唤醒等待任务通知的任务。

2025-04-12 16:54:09 589

原创 FreeRTOS使任务处于挂起态的API

直到显式调用恢复函数,而阻塞状态的任务会在特定条件(如超时、信号量可用等)满足后自动恢复。的场景(如暂停非关键任务以节省资源),但需谨慎处理同步和资源释放问题。在 FreeRTOS 中,任务的。

2025-04-12 16:40:44 541

原创 FreeRTOS使任务处于阻塞态的API

这些API通过让任务等待特定条件,有效管理了CPU资源,适用于事件驱动或同步操作的设计。从队列读取数据,若队列为空则阻塞,直到数据到达或超时。向队列发送数据,若队列满则阻塞,直到空间可用或超时。将任务阻塞固定时间(相对延时,从调用时开始计算)。按固定频率阻塞任务(绝对时间,用于周期性任务)。等待任务通知(类似二进制信号量),通知值减1。查看队列数据(不移除),若队列为空则阻塞。等待任务通知并获取通知值,支持更复杂场景。从消息缓冲区接收完整消息,无消息时阻塞。从流缓冲区读取数据,缓冲区为空时阻塞。

2025-04-12 16:36:11 262

原创 FreeRTOS 中的xPortPendSVHandler()

两者通过 PendSV 机制协作,实现了 FreeRTOS 高效、可靠的任务切换。理解它们的区别与联系,是掌握 FreeRTOS 调度原理和进行系统调试的关键。是任务切换流程的两个核心组成部分,但它们的职责和实现方式截然不同。在 FreeRTOS 中,

2025-04-12 10:44:35 607

原创 FreeRTOS的xTaskIncrementTick( )函数

是 FreeRTOS 实时操作系统内核的核心函数之一,主要用于系统节拍(Tick)的管理,通常在。如果需要更深入的分析(如代码实现细节或调度策略),可以进一步探讨!不会更新 Tick 计数,直接返回。:如果调度器被挂起(

2025-04-11 16:11:39 301

原创 ARM Cortex M内存屏障指令__dsb( )和__isb( )

是内存屏障指令,用于确保内存操作的顺序性和可见性,尤其在涉及外设、多核/多线程、自修改代码或关键系统配置时至关重要。通过合理设计中断与屏障的交互,可确保 Cortex-M 系统的强实时性和数据一致性。通过合理使用这两种屏障,可确保代码在 Cortex-M 处理器上的正确性和可靠性。修改系统关键状态(如 MPU、VTOR)时,先禁用中断,执行屏障后再启用。当处理器执行一条指令时,会确保该指令完全执行完毕后再响应中断。若中断处理依赖屏障前的操作,需在中断处理函数内插入屏障。在关键系统配置中,通常需。

2025-04-11 16:03:01 618

原创 FreeRTOS 中 SVC与SysTick以及PendSV 优先级配置

此配置在多数Cortex-M设备中通用,具体数值需结合芯片中断优先级位数(如STM32为4位,0~15)调整,始终遵循。

2025-04-11 12:52:49 552

原创 FreeRTOS uxSchedulerSuspended与xYieldPending变量作用

是调度器内部使用的关键状态变量,用于控制任务调度和切换的时机。这两个变量共同确保 FreeRTOS 在复杂场景(如临界区、中断处理)下的任务调度安全性和效率。(恢复调度器),通过计数器管理嵌套的挂起/恢复操作。在 FreeRTOS 中,

2025-04-11 11:27:17 347

原创 FreeRTOS configASSERT(x)断言函数作用

验证系统的内部状态、参数和假设条件是否合法。它是 FreeRTOS 的重要调试工具,能够帮助开发者在开发早期发现潜在的错误,确保系统的健壮性。检测动态内存分配(如任务栈、队列创建)是否成功,避免因内存不足导致未定义行为。,可显著提升 FreeRTOS 应用的可靠性,减少运行时错误。确保 FreeRTOS 运行时处于预期状态。在 FreeRTOS 的 API 函数中调用。,验证传入的参数是否合法。是一个由用户定义的宏,用于在。在 FreeRTOS 中,

2025-04-11 10:31:22 393

原创 vTaskSuspendAll( ),taskENTER_CRITICAL( ),taskDISABLE_INTERRUPTS( )使用对比

在 FreeRTOS 中,和是用于保护关键代码段或共享资源的机制,但它们的实现方式和适用场景有显著区别。

2025-04-09 10:37:43 280

原创 FreeRTOSConfig.h配置文件分析

通常设置为 1000 Hz(1ms 周期),但低功耗场景可降低(如 100 Hz)。启用协程(Co-routines),适用于资源极度受限的场景(现代应用较少使用)。启用跟踪功能,配合调试工具(如 Tracealyzer)分析任务状态。启用抢占式调度(任务可抢占)或协作式调度(需任务主动释放 CPU)。建议:根据任务复杂度设置(如 5-10),避免过多导致调度开销。定义空闲任务的最小栈大小(单位:字,32位系统为4字节)。定义 CPU 主频(Hz),用于正确计算定时器周期。启用互斥锁(Mutex)。

2025-04-09 09:39:33 936

原创 FreeRTOS临界区

临界区是一段代码,执行期间需要独占访问共享资源(如全局变量、硬件寄存器、数据结构等)。禁用中断:防止中断触发导致资源访问冲突。禁止任务切换:确保当前任务不会被高优先级任务抢占。FreeRTOS 的临界区是保护共享资源的核心机制,通过灵活的中断屏蔽策略平衡了实时性与安全性。简短高效:临界区代码应尽可能短。正确配对:严格匹配ENTER和EXIT调用。合理配置:根据硬件架构选择中断优先级屏蔽方式。通过合理使用临界区,可显著提升多任务系统的稳定性和可靠性。

2025-04-08 23:34:37 284

原创 configMAX_SYSCALL_INTERRUPT_PRIORITY和configKERNEL_INTERRUPT_PRIORITY

在 FreeRTOS 中,和是控制中断优先级和内核交互的关键宏。

2025-04-08 23:24:00 1112

原创 C应用常见的编程错误

覆盖相邻内存,导致数据损坏或安全漏洞(如栈溢出攻击)。:长期运行的程序内存耗尽,性能下降甚至崩溃。:严格检查索引范围,使用静态分析工具检测。:未定义行为(程序崩溃、数据损坏)。:使用内联函数或确保宏参数无副作用。:未使用头文件保护导致重复定义。:错误类型转换导致未对齐访问。:尝试修改只读的字符串字面量。:写入数据超出内存块边界。:确保类型转换安全,使用。:访问超出数组边界的位置。:改用迭代或限制递归深度。:混用有符号和无符号类型。:显式转换类型并检查符号。:指针指向已释放的内存。• 释放后将指针置为。

2025-04-08 21:02:54 793

原创 字符串与字符数组的对比

密切相关,但又有重要区别。

2025-04-08 20:49:25 520

原创 可控硅类型以及驱动方法

可控硅(Thyristor)是电力电子中的核心开关器件,广泛应用于交流调压、电机控制、固态继电器等领域。根据结构和功能,可控硅可分为多种类型,其驱动方法也各有特点。,需满足电流、电压和时序要求。

2025-04-07 16:11:40 752

原创 光耦合器输出类型分类

可分为多种类型,不同输出器件决定了光耦的驱动能力、速度、线性度等特性。光耦合器(光耦)根据输出端采用的。

2025-04-07 10:43:16 951

原创 提高MCU的效率方法

通过结合硬件特性、代码优化和高效算法,可以显著提升MCU的效率和响应速度。具体优化策略需根据目标MCU的架构(如ARM Cortex-M、AVR、PIC)调整。要提高MCU(微控制器单元)的编程效率,需要从硬件特性、代码优化、算法选择、资源管理等多方面入手。

2025-04-05 21:05:31 803

原创 FreeRTOS的空闲任务

空闲任务是 FreeRTOS 调度器自动创建的后台任务,核心作用是资源回收、低功耗支持和系统保底运行。开发者可通过钩子函数扩展其功能,但需注意其特殊性和限制。在 FreeRTOS 中,

2025-04-05 20:43:31 442

原创 FreeRTOS 软件定时器工作原理及应用

是一种基于系统节拍(Tick)的计时机制,允许开发者创建周期性或单次触发的定时任务,而无需依赖硬件定时器。管理,适用于需要时间控制但无需高精度的场景(如心跳检测、状态轮询等)。通过合理配置和 API 使用,软件定时器可以高效地实现复杂的定时逻辑。等,需检查返回值并可能触发上下文切换。FreeRTOS 的。

2025-04-05 20:40:46 582

原创 FfreeRTOS有阻塞作用的API

是指那些会导致调用任务进入阻塞状态(Blocked State)的函数,即任务会暂时让出 CPU,直到某个条件满足(如超时、信号量可用、队列数据到达等)。FreeRTOS 的阻塞 API 主要用于任务同步和资源管理,涵盖延时、队列、信号量、事件组等场景。使用时需注意阻塞时间、上下文(任务/中断)及优先级配置,避免死锁或性能问题。空闲任务(Idle Task)不能调用任何阻塞 API,否则会导致系统死锁。高优先级任务阻塞时,低优先级任务无法运行,需合理设计任务优先级。中调用,必须使用其非阻塞版本(通常以。

2025-04-05 20:27:57 1064

原创 Cortex-M3 NVIC可以控制异常向量表的哪些部分

Cortex-M3 的 NVIC(嵌套向量中断控制器),但可以管理向量表中与中断相关的部分行为。NVIC 主要管理和部分的行为,但对向量表本身的存储位置和内容没有直接控制权。

2025-04-05 15:56:15 418

空空如也

空空如也

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

TA关注的人

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