- 博客(21)
- 收藏
- 关注
原创 一个用于管理对象树的 C 库
mr-object是一个用于管理对象树的 C 库。它提供了一组简单易用的 API,支持通过路径注册、查找和删除对象。支持基于路径的树状对象管理资源占用低,适合嵌入式系统使用中断安全的设计简单直观的 API。
2024-03-16 06:30:00
379
原创 如何简化嵌入式调试
在嵌入式开发过程中难免需要频繁调试一些硬件,调试过程经常需要不停修改代码以测试不同的功能,这一步骤将消耗大量的时间。一个强大的Shell(命令行界面)对于提高开发效率和系统管理的便捷性至关重要。依赖项目统一的设备接口,配合命令行工具即可实现一个便捷的命令行调试工具。
2024-02-01 06:30:00
865
1
原创 解决Keil-MDK使用痛点的自动工具脚本
MDK是嵌入式中常用的IDE,但是MDK太不方便,当需要向工程中添加多文件时,手动添加文件等步骤非常繁琐(添加文件的教程比我的工具代码还长)。为了自动完成这个脚本可以很方便地自动化MDK项目的配置过程。只需要提供文件名等参数,就可以一键完成配置,节省了在IDE里手动配置的时间。
2023-12-25 17:26:00
468
原创 嵌入式开源设备框架(实现应用层代码与底层驱动的解耦和抽象的轻量级框架)
MR框架是专为嵌入式系统设计的轻量级框架。充分考虑了嵌入式系统在资源和性能方面的需求。通过提供标准化的设备管理接口,极大简化了嵌入式应用开发的难度,帮助开发者快速构建嵌入式应用程序。框架为开发者提供了标准化的开启(open)、关闭(close)、控制(ioctl)、读(read)、写(write等接口。它将应用程序与底层硬件驱动进行解耦。应用程序无需了解驱动的实现细节。当硬件发生改变时,只需要适配底层驱动,应用程序就可以无缝迁移到新硬件上。这大大提高了软件的可重用性和应对新硬件的可扩展性。。
2023-12-09 11:08:13
1294
原创 如何为项目引入Kconfig配置系统
当项目规模较小,配置项和依赖关系相对简单时,我们可以通过手动修改源代码来实现配置功能。但是,随着项目规模的增长和配置复杂度的增加,这种方式也会出现一些问题。随着代码体量和调用关系的增多,对配置者来说很难完全熟悉代码结构及各模块之间的依赖关系。同时,如果配置项设置较为随意且缺乏约束,也很可能导致错误配置。这对项目质量和维护都带来一定难度。对于规模较大的项目来说,需要一套专业的配置管理系统来解决这些问题。Kconfig正是为了应对这种需求而产生的。它通过配置脚本定义各配置选项及其依赖关系,并提供图形化界面。
2023-11-27 12:43:08
986
原创 内存管理(C实现)
本文实现了一个动态内存管理系统,它可以进行内存块的分配与回收。系统会记录已分配和未分配的内存块信息,并采用内存块合并算法来减少内存碎片(内存管理思路来源于FreeRTOS)。具体来说,系统实现了:内存块的动态分配 - 根据应用的请求,从未分配内存块中选择一个块进行分配。内存块的释放回收 - 当块不再需要时,将其释放并标记为未分配状态。已分配与未分配块记录 - 使用链表或数组等数据结构实时跟踪各状态块的信息。内存块合并 - 在释放块后,检查相邻块状态,若均未分配则合并为一个大块减少碎片。
2023-11-22 12:51:29
97
原创 etask开发框架
事件任务框架是是一种用于处理异步事件和任务的编程模型。它提供了一种结构化的方式来管理和调度事件和任务,以便在单线程、多线程或多任务环境中实现高效的并发处理。使用事件任务框架,可以将复杂的并发处理逻辑进行抽象和管理,提高代码的可维护性和可扩展性。它使得开发人员能够更加专注于事件的处理逻辑,而无需过多关注底层的并发细节。事件任务框架支持动态添加和移除事件任务的能力。当系统需要新增功能或修改业务逻辑时,可以通过添加或替换相应的事件任务来实现,而无需修改其他部分的代码。
2023-10-17 10:54:31
104
原创 mr-library SPI设备使用教程
设备框架为开发者提供标准化的接口(open、close、ioctl、read、write),解耦应用程序与底层硬件驱动,使应用开发无需硬件驱动的实现细节。当硬件变动时,只需要适配底层驱动,上层应用可以无缝地迁移到新硬件上,大大提高了软硬件的可重用性和可扩展性。
2023-10-17 10:36:29
351
原创 mr-library 串口设备使用教程
设备框架为开发者提供标准化的接口(open、close、ioctl、read、write),解耦应用程序与底层硬件驱动,使应用开发无需硬件驱动的实现细节。
2023-10-17 10:29:37
504
原创 嵌入式开源框架
一个面向嵌入式系统的轻量级框架,提供了统一的底层驱动设备模型以及基础服务功能,具有模块化设计、可配置性和扩展性的特点,可以帮助开发者快速搭建嵌入式应用程序。框架支持互斥锁、对象管理等基础内核功能。集成异步事件驱动框架(event)、多时基软件定时器(soft-timer)等服务。提供串口、SPI、I2C、ADC/DAC等常见外设的驱动设备模型,通过统一的驱动接口(open、close、ioctl、read、write)访问底层硬件设备,解耦底层驱动和应用。
2023-07-21 12:13:39
1063
1
原创 软件定时器框架
软件定时器是一种在软件层面实现计时功能的机制,通过软件定时器,可以在特定时间点或时间间隔触发特定的事件。软件定时器框架代码模块,可无依赖,快速的部署到工程应用中。
2023-07-05 21:50:07
200
原创 事件驱动框架
事件驱动框架是一种异步事件处理机制,它通过事件分发和回调的方式,可以有效地提高系统的异步处理能力、解耦性和可扩展性。事件驱动框架代码模块,可无依赖,快速的部署到工程应用中。
2023-07-05 19:40:08
401
原创 设备驱动框架
将硬件设备抽象成设备对象,并提供了统一的设备操作接口,方便应用程序与硬件设备进行交互。通过将驱动层与设备层解耦,提高了代码的可靠性和可维护性。
2023-06-20 01:19:49
263
1
原创 自动初始化
模块为项目下的可裁剪模块,以C语言编写,可快速移植到各种平台(主要以嵌入式mcu为主)。模块通过隐式调用初始化函数,使代码更简介更模块化。
2023-02-01 07:30:00
510
4
原创 实现支持浮点输出的printf(c语言、嵌入式)
printf 大家应该使用的比较多,但是在嵌入式平台中,尤其是单片机中,libc中的printf对内存的占用较高,尤其是加上浮点输出功能时,占用更是能翻倍。同时移植适配相对困难,不同编译器下,需要适配的接口不同,遇到问题也因为看不到源代码,无从下手。故有了写自己的printf想法。现在网上也有不少自己写printf的教程,但是在我实际按照教程编写时又遇到了许多问题很多教程并不能正确实现功能,所以我把写完的代码开源出来,同时分享下我在编写时遇到的问题。
2023-01-21 01:54:54
1780
4
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人