• 一个简单但强大的协程库-PtPlus

    去年我基于Protothreads协程库实现了一些有意思的扩展功能以方便使用该协程库。相关的两篇文章可以翻看去年的博客。 更优雅的使用Protothreads协程框架 PT协程的一个小扩展 最近我继续完善了相关的功能,并增加了一些新的功能。实...
  • 我们需要非常谨慎的使用Cache

    最近在学习的过程中遇到一个软件上的问题,该问题非常折磨人。 在一个嵌入式软件系统中使用WiFi网络并通过FTP服务读取设备内存储在SD上的文件,就是这样一个看起来非常简单的逻辑,最近在测试过程中出现了一点问题。 发现小概率情况下文件传输会导致系统崩溃...
  • 在创建FreeRTOS任务时容易忽略的一个问题

    面向对象的编程思想经常出现在嵌入式软件开发过程中,通常将一组相关的业务逻辑及其相关联的数据封装为一个实例对象以方便数据和方法的集中管理,尤其是在该实例对象还涉及一个关联的任务时,为了将相关的数据传入线程,将所有的数据封装起来是一种非常合理的操作。下面...
  • 第一次向FreeRTOS内核提交代码

    背景前段时间我在测试wolfSSL中RSA相关代码的时候,发现在进行加密、解密、key生成过程中存在一些性能问题。在分析问题的过程中,发现算法对堆内存的申请非常频繁。生成一对2048长度的公钥和私钥,会进行10万次以上的内存申请。我为了跟踪函数在执行...
  • TLSF与FreeRTOS-heap4对比

    TLSF内存分配器的一些测试和比较FreeRTOS太出名了,就不介绍了。TLSF是一个实时动态内存分配器,可用于嵌入式系统。具有高效的内存使用效率和可预测的响应时间,它具体的工作原理可以参考作者主页上的一些文档。 我运行了一些简单的测试来比较二者的一...
  • 一个极简的DAPLink

    平时我的主要兴趣方向都是嵌入式软件开发方面的内容,但偶尔也做一些硬件相关的内容。我的硬件设计水平一般,仅仅是能够用嘉立创的EDA软件设计一些简单的PCB,焊接能力更是拿不出手😅。 之前我偶然间看到一个别人设计的DAPLink,使用51单片机完成的。...
  • 妙不可言的异常捕获机制

    什么是异常捕获异常捕获是程序员在程序中捕获异常的一种方式,异常捕获可以避免程序崩溃,让程序继续运行。当程序的运行环境收到异常信息后,会自动寻址处理该异常的catch块处理该异常,这个过程被称为异常捕获。 大部分高级的编程语言都提供了异常捕获机制,如J...
  • 体验国产RISC-V单片机

    RISC-V单片机并不是很新鲜的东西,但因为其市场占有率相比于ARM内核的芯片较小,所以此类芯片并不流行。在此之前,我并没有接触过RISC-V的芯片,趁着春节假期,购得一块国产单片机CH32V307,本着学习的态度,看看该芯片相比于ARM内核有何优...
  • 锁相环(PLL)基本原理

    本文转载自《模拟对话》卷52,文章原作者是Ian Collins,《模拟对话》是亚德诺半导体的一份技术期刊,专注于电子模拟技术的最新进展和应用。原作者和亚德诺半导体对本文保留所有权利。本文不采用 BY-NC-SA 许可协议。PLL被广泛应用于嵌入式...
  • 阻抗匹配

    本人非专业领域工作者,内容难免瑕疵,所以仅供参考。 什么是阻抗匹配?阻抗匹配的概念应用在各个工程领域,但在射频电路领域,阻抗匹配有更加重要的意义。阻抗匹配的目的在于将能量完整的从一个端口传输到另一个端口上,当负载的输入阻抗和源的输出阻抗共轭相等时...
/4