RTT介绍J-Link RTT(Real Time Transfer,实时传输)是 SEGGER 公司为 J-Link 仿真器开发的一项高效调试数据通信技术,用于在嵌入式设备和主机PC之间进行高速、无阻塞的日志输出和数据交互。
在嵌入式开发中,调试信息的打印通常依赖于串口,但若未预留串口,JLINK调试器的RTT(Real-Time Transfer)功能可以成为替代方案。
RTT技术特点
与目标嵌入式应用的双向通信能力
不影响嵌入式应用的实时行为的高速传输速率
使用调试通道(SWD: SWDIO、SWCLK)用作通信(相当于不用再额外占用GPIO等外设接口)
不需要在目标嵌入式系统增加额外的硬件或引脚
任何的J-Link型号都支持(J-Link型号列表和比较可参考https://www.segger.com/products/debug-probes/j-link/models/model-overview/)
能被ARM Cortex-A/R/M系列芯片支持,以及被RISC-V和Renesas RX支持
提供完整的RTT的实现代码
RTT与串口对比:
...
前言在实际开发过程中,经常会遇见卡死的情况,大多数都是因为FreeRTOS的堆栈溢出造成,无论是分配给FreeRTOS的总Heap溢出,或者是单个任务的堆栈不够,都会造成卡死。
所以在FreeRTOS学会定位很重要,可以节省大量的时间,下面就来介绍一下常见的调式手段,在优化内存、定位堆栈溢出有着重要作用
启用FreeRTOS堆栈溢出钩子具体见FreeRTOS中钩子函数相关笔记
输出所有任务的信息vTaskList() 是 FreeRTOS 提供的一个非常有用的调试API,可以输出所有任务的运行状态、剩余栈空间等信息,有助于我们监控对应任务堆栈是否足够,堆栈是否分配过多造成浪费等
要使用vTaskList需要配置这两个宏,具体位置见下方
12#define configUSE_TRACE_FACILITY 1#define configUSE_STATS_FORMATTING_FUNCTIONS 1
configUSE_TRACE_FACILITY: 打开后,FreeRTOS 内核会收集更多和任务相关的运行数据,并使部分调试/统计API可 ...
前言为了方便每一次安装环境都能比较迅速,所以写一篇文档记录配置ESP-IDF环境的流程
参考官方的文档:
快速入门 - ESP32 - — ESP-IDF 编程指南 v5.4.2 文档
搭建ESP-IDF开发环境下载SDK源码和工具集Windows 平台工具链的标准设置 - ESP32 - — ESP-IDF 编程指南 v5.4.2 文档
我们需要的一共有两个东西:
ESP-IDF Frameworks:包含ESP32使用的API(软件库和源代码)和 运行工具链的脚本
ESP-IDF Tools: ESP-IDF需要安装一些必备工具集(平台工具链),才能围绕ESP32构建固件,包括Python、Git、交叉编译器、CMake 和 Ninja等。
我们可以分开下载,但是乐鑫官方为我们提供了一个ESP-IDF离线安装工具,可以同时安装SDK源码和Tool(工具链)等一系列东西
点击修复后,成功支持长路径,点击下一步
这里就是勾选对应的组件,默认即可,底部目标芯片有问题的话再勾选
对应IDF-SDK和工具链的目录,点击安装
然后全部勾选,点击完成
自带命令行使用ESP-IDF安装完 ...
摘自: https://subingwen.cn/cmake/CMake-primer/#2-6-3-%E6%80%BB%E7%BB%93来源: 爱编程的大丙
视频教程:哔哩哔哩_bilibili
官方文档:cmake-commands(7) — CMake 4.0.2 Documentation
CMake概述CMake 是一个跨平台的项目构建工具。关于项目构建还有Makefile(通过 make 命令进行项目的构建),大多是IDE软件都集成了make,比如:VS 的 nmake、linux 下的 GNU make、Qt 的 qmake等,如果自己动手写makefile,就会发现,makefile 通常依赖于当前的编译平台,而且编写makefile 的工作量比较大,解决依赖关系时也容易出错。
而 CMake 恰好能解决上述问题, 其允许开发者指定整个工程的编译流程,再根据编译平台,自动生成本地化的Makefile和工程文件,最后用户只需make编译即可,所以可以把CMake看成一款自动生成 Makefile的工具,其编译流程如下图:
蓝色虚线为makefile构建项目的过程
红 ...
电源转换芯片板子上一般使用的电源就是两类:DCDC(直流-直流变换器),LDO(低压差线性稳压器)
**对电源选择原则上:**大功率电源使用DCDC,因为转换效率很高。而LDO一般使用于小功率电源,电源质量,纹波要求等
线性稳压器LDO
名称:线性稳压器,简称LDO,即Low Dropout Regulator
功能:将较高的输入电压转换为较低且稳定的输出电压(这就是稳压的定义)。LDO的特点是低压差,且只能降压,且即使输入电压与输出电压接近时仍然能够稳定工作。
LDO电源的优缺点(记住纹波小,效率低)
优点:
1.LDO成本低,外围电路少,通常只需要一两个旁路电容
2.LDO负载响应快,输出纹波小,噪声小
缺点:
1.效率低(较大热损失),输入输出压差不能太大(几V左右)
2.LDO只能降压
3.LDO输出电流较低,最高可能就只有几A(1~2A左右),输出功率做不大(同比DC-DC)
应用:适用于低功耗/小功率系统、低纹波、较低噪声的系统,如无线通信设备、音频设备等。
常用LDO芯片:
**AMS1117芯片:**比较经典的芯片,低功耗,常用于5V到3.3
我们的电脑US ...
电容的介绍常见电容的作用:
主要用于电源滤波、信号滤波、信号耦合、谐振、滤波、补偿、充放电、储能、旁路、隔直等电路中。
电容价格:
通常是电容的容值越高,价格越贵,大电容比小电容成本更高
具体硬件相关知识见下面几篇文章
电容在电路设计中的应用-CSDN博客
【硬件电路知识】深度剖析去耦、旁路、滤波电容_去耦电容-CSDN博客
一文搞懂0.1UF和10UF电容并联使用技巧-CSDN博客
视频:
0.1uF和0.01uF两个电容并联就成了旁路电容和去耦电容?_哔哩哔哩_bilibili
去耦电容与旁路电容为什么需要去耦电容?
一个电路,从供电和用电的角度来看,可以分为2部分:电源和负载。负载一般需要纯净稳定的直流电,即不管负载电流如何变化,电源的电压波形应该是一条直线。这一点,几乎所有的电源都做不到,原因有很多:
电源有内阻,负载电流变化时,电源电压也跟着变。
电源可能带好多个负载(比如多个芯片),某个芯片的电流变化会导致电源电压跟着变化,从而再导致其他芯片的电压发生变化。
一些电子电源本身有较大的波纹,不是纯净的直流电。
各种电磁干扰窜入电路后,导致电源波动。
如上各种原因产生的 ...
USB介绍USB概念
单端信号与差分信号单端信号:
差分信号:
接收到的信号是两个信号线的电平差
差分信号的好处
**差分信号的抗干扰能力强。**因为两根差分走线之间的耦合很好,当外界存在噪声干扰时,几乎是同时被耦合到两条线上(两信号电压都变化,但是差值还是不变),而接收端只是关心两信号的差值,所以外界的共模噪声可以被完全抵消。
PCB设计差分线绘制
优先绘制差分线
差分线尽量短,避免受到一些干扰及信号的衰减
差分线上不要超过两对过孔
平行紧密走线,避免直角锐角走线
长度差尽量小(控制在5mil以内),尽量保证差分线等长!!!
与其他信号网络以及地的距离尽量在20mil以上(避免和其他信号发生相互干扰)
注意阻抗匹配(90欧姆差分阻抗)
对于阻抗匹配问题,对于高速信号非常的重要,是PCB设计中非常重要的一环,可以使用嘉立创阻抗设计神器进行阻抗设计
USB接口TYPE-AUSB Type-A又可称为USB-A
TYPE-BTYPE-CUSB TypeC 拥有诸多优点:双面可插不担心正反、可做USB/雷电高速传输载体,支持 PD快充、音频设备 ...