LwRB - 一款适用嵌入式系统的轻量级 RingBuffer+MultiTimer - 超精简的纯软件定时器驱动
1、Micro Magic发布世界上最快的64-bit RISC-V核
近日,一家位于美国加州森尼维尔的小型电子设计公司Micro Magic宣称设计、生产出了全世界最快的64位RISC-V内核,比苹果的M1 芯片和 Arm Cortex-A9 表现还要出色。
这款原型CPU在1.1v电压下可以达到5GHz的时钟速度,远高于运行速度为3.2GHz的英特尔Xeon服务器芯片E7,CoreMarks跑分达到13000分。而1.1伏时,该芯片只需要消耗1瓦的功率,不到英特尔Xeon功率的1%。此外,单个Micro Magic核心在0.8V下可以达到4.25GHz,CoreMarks跑分达到11000分,但消耗的功率仅为200mW。据称,该RISC-V芯片的速度和效能同样超过了三星基于Arm Holdings Plc计算核心的Exynos 4芯片。
项目类
1、LwRB - 一款适用嵌入式系统的轻量级 RingBuffer
ringbuffer(环形缓冲区)可以说是嵌入式应用非常常用的数据缓存设计了,LwRB 是国外开发者 MaJerle 维护实现的轻量级 ringbuffer,是一个为嵌入式系统特殊优化设计的 FIFO。
LwRB 特点:
1. 纯ANSI C99实现, 数据类型兼容于size_t
2. 与具体硬件平台无关
3. 类FIFO缓冲设计
4. 未使用动态内存分配,纯静态内存
5. 特殊优化过的memcpy实现
6. 当用作单写/单读的管道时是线程&中断安全的
7. 适用于DMA在缓冲区和应用程序内存之间进行零拷贝开销的DMA传输
8. 支持数据查看、读跳过、写进
9. 实现对事件通知的支持
LwRB 的代码设计很完善了,是个开源项目,更难能可贵的是它的设计文档也相当详实。下图很好地展示了 LwRB 对于不同的缓冲区边界处理情况,可以让你对其内部如何管理数据有个基本理解。
2、MultiTimer - 超精简的纯软件定时器驱动
MultiTimer 是网友 0x1abin 开发的一个纯软件定时器扩展模块,可无限扩展你所需的定时器任务,取代传统的标志位判断方式, 更优雅更便捷地管理程序的时间触发时序。
MultiTimer 使用用法特别简单:
#include "multi_timer.h"
struct Timer timer;
void timer_callback()
{
printf("timer timeout!\r\n");
}
int main()
{
timer_init(&timer, timer_callback, 1000, 1000); //1s loop
timer_start(&timer);
while(1)
{
timer_loop();
}
}
void HAL_SYSTICK_Callback(void)
{
timer_ticks(); //1ms ticks
}
工具类
1、DSLogic - 一款跨平台的逻辑信号分析仪
DSLogic是梦源实验室出品的一款基于USB的逻辑分析仪,支持最大采样率高达1GHz,stream模式下最大采样深度16G。DSLogic有配套专用上位机,支持各种模式,例如逻辑分析仪,示波器,数据采集等,随着功能的不断集成和完善,DSLogic被打造成易上手的信号分析综合平台。
DSLogic的两大优势:
1.支持Windows / MacOS / Linux。 由于具有开源功能,还可以将DSView移植到个人平台上。
2.易于使用是DreamSourceLab的设计初衷,能够有效、快速地帮助您的项目落地成功。
2、WinHex - 强大的十六进制编辑软件
WinHex是在Windows下运行的十六进制编辑软件,此软件功能非常强大,有完善的分区管理功能和文件管理功能;它能够编辑任何一种文件类型的二进制内容(用十六进制显示)其磁盘编辑器可以编辑物理磁盘或逻辑磁盘的任意扇区。
在嵌入式应用场景下,用它来编辑分析bin文件简单小菜一碟。