首页 > 其他分享 >《痞子衡嵌入式半月刊》 第 113 期

《痞子衡嵌入式半月刊》 第 113 期

时间:2024-12-08 21:32:33浏览次数:3  
标签:闪存 痞子 文件系统 嵌入式 SPI 113 Spiffs modm

痞子衡嵌入式半月刊: 第 113 期

这里分享嵌入式领域有用有趣的项目/工具以及一些热点新闻,农历年分二十四节气,希望在每个交节之日准时发布一期。

本期刊是开源项目(GitHub: JayHeng/pzh-mcu-bi-weekly),欢迎提交 issue,投稿或推荐你知道的嵌入式那些事儿。

上期回顾《痞子衡嵌入式半月刊: 第 112 期》

唠两句

历史上的今天:1981年12月8日,中国自行设计制造的大型喷气式客机“运-10”试飞成功。

本期共 4 个项目,希望对你有帮助!

项目类

1、USB-SERIAL-L - 设计先进的USB转串口的开源硬件

USB-SERIAL-L 是一个 USB 转串口的开源硬件,其比大多数板更先进,不仅具有 Tx/Rx 引脚,还具有 CTS/RTS 引脚,支持高达 3 Mbps 的速度,以及从 0.65V 到 5.5V 的可调电压,以满足各种板的需求。目前版本 1.1,KiCAD 格式和 PDF 格式原理图和硬件设计文件、外壳的 3D 文件和文档完全开源。

2、JesFs - 专门为小型低功耗设备设计的文件系统

JesFs(Jo's Embedded Serial File System)是一款专为资源受限的嵌入式系统设计的轻量级串行 NOR 闪存文件系统。它具备极小的内存占用、强大的安全性以及优异的性能,完美适用于各种物联网应用场景,例如数据采集、事件记录和固件更新等。

JesFS 的一个基本特性是:可以把嵌入式系统的文件通过互联网自动地镜像存储到服务器,服务器因此具有嵌入式文件系统的一个实时更新的副本。这个特性也可以用在分钟级获取数据的场景,但是为了降低功耗,一般不会频繁通过互联网对比更新服务器副本(通常几小时一次)。 即使传输了新文件、远程升级了固件,只要有需要,JesFS 就可以通过特殊标志位(时间戳和 CRC32 哈希校验)很容易地从服务器上找回文件。

3、Spiffs - 专门为嵌入式设备设计的轻量级文件系统

Spiffs (SPI Flash File System) 是一个专门为嵌入式目标上的 SPI NOR 闪存设备设计的轻量级文件系统。它针对小型嵌入式设备的特点进行了优化,特别是在内存资源有限的情况下表现出色。Spiffs 的设计目标是:在最小化 RAM 使用量的同时,提供 POSIX 风格的 API 接口,方便开发者使用。

Spiffs 的主要功能包括:

• 极低的RAM占用: Spiffs的设计理念是最大限度地减少RAM的消耗,它使用静态大小的RAM缓冲区,与文件数量无关,非常适合内存资源紧张的嵌入式系统。
• 类POSIX API: Spiffs提供了一套与POSIX标准兼容的API接口,包括open、close、read、write、seek、stat等常用函数,方便开发者快速上手和进行移植。
• 跨平台兼容性: 理论上,Spiffs不仅可以运行在SPI闪存上,也可以运行在微处理器的其他嵌入式闪存上,具有良好的平台兼容性。
• 多配置支持: 在同一个目标设备上,甚至在同一个SPI闪存设备上,可以运行多个Spiffs配置,灵活地管理不同的数据存储空间。
• 静态磨损均衡: Spiffs内置了静态磨损均衡算法,可以有效地延长闪存的使用寿命。
• 文件系统一致性检查: Spiffs具备内置的文件系统一致性检查机制,确保数据的完整性和可靠性。
• 高可配置性: Spiffs提供了丰富的配置选项,可以根据实际需求进行定制。

4、modm - 精简高效的嵌入式库生成工具

modm是一个用于构建定制 C++23 嵌入式库的工具箱。它能够生成启动代码、硬件抽象层 (HAL) 及其实现、通信协议、外部设备驱动程序和板级支持包 (BSP)。modm 的模块化和可定制化流程允许你根据自身需求进行微调,极大简化嵌入式开发的复杂性。

modm 的主要功能包括:

• 快速搭建项目骨架: 自动生成启动代码、HAL、驱动程序等,减少重复性工作,加快开发速度。
• 优化资源利用: modm 致力于最小化代码大小和内存消耗,特别适合资源受限的微控制器。它在 HAL 中避免内存分配,并提供轻量级的库,如 printf 实现和部分 libstdc++ 实现。
• 提高代码可移植性: 支持数千种来自 Microchip、STMicroelectronics 和 Raspberry Pi 的 AVR 和 ARM Cortex-M 微控制器,并与多种构建系统兼容,例如 SCons、CMake 和 Makefile。
• 简化外设操作: 提供了丰富的跨平台外设接口,包括 GPIO、中断、I2C、SPI、UART、CAN、以太网、ADC、DAC 等,并包含许多常用传感器的驱动程序。
• 增强代码可靠性: 拥有数百个单元测试,并进行持续集成测试,确保代码质量和稳定性。集成了一些有用的第三方软件,如 FreeRTOS、TinyUSB、FatFS 等。
• 高效的调试和日志系统: 提供基于 IOStream 和 printf 的调试和日志系统,方便开发和调试过程。
• 先进的并发模型: 支持协作式无栈 protothreads 和可恢复函数,以及协作式有栈 fibers 和调度器,方便进行并发编程。

欢迎订阅

文章会同时发布到我的 博客园主页CSDN主页知乎主页微信公众号 平台上。

微信搜索"痞子衡嵌入式"或者扫描下面二维码,就可以在手机上第一时间看了哦。

标签:闪存,痞子,文件系统,嵌入式,SPI,113,Spiffs,modm
From: https://www.cnblogs.com/henjay724/p/18593841

相关文章

  • 视野修炼-技术周刊第113期 | JS 29周年
    欢迎来到第113期的【视野修炼-技术周刊】,下面是本期的精选内容简介......
  • EasyRTC支持嵌入式智能硬件与微信小程序实时通话
    基础建设如此发达的时代,各种物联网设备都越来越普及,尤其是可穿戴设备和智能家居设备的发展,而在物联网设备中,视频物联网设备又是特别受人关注的设备,因为他们具备有看得见的属性,像智能家居里面的摄像头、可视门铃、智能猫眼、宠物机器人等等,在这些场景中现在存在几个比较大的......
  • 嵌入式中防linux的通用MCU系统
        ​大家好,今天分享一个仿linux分层架构实现的mcu通用系统,该项目的创建方便芯片级切换以及多产品线开发。《一个基于分层架构实现的MCU通用系统》项目整体框图项目亮点分层架构,清晰高效:usal_mcu采用仿Linux的分层架构设计,将系统划分为驱动层、系统层和应用......
  • 嵌入式系统的内存访问和总线通信机制解析、PCI/PCIe引入
    往期内容Uart子系统专栏:专栏地址:Uart子系统Linux内核早期打印机制与RS485通信技术–末片,有专栏内容观看顺序interrupt子系统专栏:专栏地址:interrupt子系统Linux链式与层级中断控制器讲解:原理与驱动开发–末片,有专栏内容观看顺序pinctrl和gpio子系统专栏:专栏地......
  • T113-S3 Tina 串口切换
    前面介绍了如何在Tina中添加新的板子及切换存储类型,本节介绍如何修改板子串口配置。1、修改调试串口Tina调试串口配置在device/config/chips/t113/configs/evbemmc/sys_config.fex文件中,可以修改uart_para变量来指定调试串口。;--------------------------------......
  • 新手必看!小小白也能用Rust点亮LED,入门嵌入式开发(上)
    讲动人的故事,写懂人的代码"你作为编程新手,为什么要学Rust?"我在微信里问小小白。我是一名有着30多年IT从业经验的老程序员,正在创作一本Rust编程入门书,致力于降低Rust那传说中陡峭的学习曲线。小小白是我最近在社交网络上认识的朋友,他对学习Rust充满热情。作为一名......
  • 嵌入式linux系统中实现I2C通信的方法
    第一章 I2C编程  I2C(Inter-IntegratedCircuitBUS)是I2CBUS简称,中文为集成电路总线,是目前应用最广泛的总线之一。和IMX6ULL有些相关的是,刚好该总线是NXP前身的PHILIPS设计。1.1I2C协议1.1.1概述I2C是一种串行通信总线,使用多主从架构,最初设计目的为了让主板、嵌入式系统......
  • 1137. 第 N 个泰波那契数
    题目如下:https://leetcode.cn/problems/n-th-tribonacci-number/description/?envType=study-plan-v2&envId=dynamic-programming思路:动态规划Java代码如下:`importjava.util.Scanner;classSolution{publicstaticvoidmain(String[]args){Scannerscanner=newScan......
  • 洛谷 P11362 [NOIP 2024] 遗失的赋值
    题目传送门如果没有其他限制,那么一个二元限制可能出现的方案数为\(v^2\)。考虑\(\{x_n\}\)的一个区间,设其中能放\(t\)个二元限制,它的左右端点有一元限制,求这\(t\)个限制的方案数。设这个数为\(f(t)\)。如果第一个二元限制的\(a\)与左端点\(i\)处的\(x\)值相同,那......
  • P1136 迎接仪式
    P1136迎接仪式动态规划好题状态设计:我们认为z是1,j是0,产生贡献的是01对我们用状态\(f[i][j][k][0/1]\)表示考虑到第\(i\)位,进行了\(j\)次将1变成0的操作和\(k\)次将0变成1的操作,操作过后第\(i\)位为\(0/1\)时的答案状态转移:然后我们就有方程:\(a_i=1:\)\(f......