armink

armink

Member Since 10 years ago

@RT-Thread, Shanghai, China

Experience Points
1.5k
follower
Lessons Completed
18
follow
Lessons Completed
95
stars
Best Reply Awards
41
repos

192 contributions in the last year

Pinned
⚡ An ultra-lightweight database that supports key-value and time series data | 一款支持 KV 数据和时序数据的超轻量级数据库
⚡ An ultra-lightweight(ROM<1.6K, RAM<0.3k), high-performance C/C++ log library. | 一款超轻量级(ROM<1.6K, RAM<0.3k)、高性能的 C/C++ 日志库
⚡ Advanced fault backtrace library for ARM Cortex-M series MCU | ARM Cortex-M 系列 MCU 错误追踪库
⚡ Lightweight IoT device information storage solution: KV/IAP/LOG. | 轻量级物联网设备信息存储方案:参数存储、在线升级及日志存储 ,全新一代版本请移步至 https://github.com/armink/FlashDB
⚡ Add master mode to FreeModbus. | 在 FreeModbus 中添加主机模式
⚡ An using JEDEC's SFDP standard serial (SPI) flash universal driver library | 一款使用 JEDEC SFDP 标准的串行 (SPI) Flash 通用驱动库
Activity
May
21
1 day ago
pull request

armink merge to RT-Thread/rt-thread

armink
armink

[文档] 修正贡献代码指南对于日志使用的描述

拉取/合并请求描述:(PR description)

[ 这段方括号里的内容是您必须填写并替换掉的,否则PR不可能被合并。方括号外面的内容不需要修改,但请仔细阅读。 The content in this square bracket must be filled in and replaced, otherwise, PR can not be merged. The contents outside square brackets need not be changed, but please read them carefully.

请在这里填写您的PR描述,可以包括以下之一的内容:为什么提交这份PR;解决的问题是什么,你的解决方案是什么; Please fill in your PR description here, which can include one of the following items: why to submit this PR; what is the problem solved and what is your solution;

并确认并列出已经在什么情况或板卡上进行了测试。 And confirm in which case or board has been tested. ]

以下的内容不应该在提交PR时的message修改,修改下述message,PR会被直接关闭。请在提交PR后,浏览器查看PR并对以下检查项逐项check,没问题后逐条在页面上打钩。 The following content must not be changed in the submitted PR message. Otherwise, the PR will be closed immediately. After submitted PR, please use a web browser to visit PR, and check items one by one, and ticked them if no problem.

当前拉取/合并请求的状态 Intent for your PR

必须选择一项 Choose one (Mandatory):

  • 本拉取/合并请求是一个草稿版本 This PR is for a code-review and is intended to get feedback
  • 本拉取/合并请求是一个成熟版本 This PR is mature, and ready to be integrated into the repo

代码质量 Code Quality:

我在这个拉取/合并请求中已经考虑了 As part of this pull request, I've considered the following:

  • 已经仔细查看过代码改动的对比 Already check the difference between PR and old code
  • 代码风格正确,包括缩进空格,命名及其他风格 Style guide is adhered to, including spacing, naming and other styles
  • 没有垃圾代码,代码尽量精简,不包含#if 0代码,不包含已经被注释了的代码 All redundant code is removed and cleaned up
  • 所有变更均有原因及合理的,并且不会影响到其他软件组件代码或BSP All modifications are justified and not affect other components or BSP
  • 对难懂代码均提供对应的注释 I've commented appropriately where code is tricky
  • 本拉取/合并请求代码是高质量的 Code in this PR is of high quality
  • 本拉取/合并使用formatting等源码格式化工具确保格式符合RT-Thread代码规范 This PR complies with RT-Thread code specification
May
18
4 days ago
push

armink push armink/FlashDB

armink
armink

[tsdb] remove #pragma pack and rename fdb_tsl_iter_reverse.

armink
armink

update the version number.

commit sha: 03500fa92568a0fba944ed44877fb72ec74fd90c

push time in 4 days ago
push

armink push armink/FlashDB

armink
armink

Merge pull request #145 from MikeTuev/MikeTuev-patch-reverse_iterator

Mike tuev patch reverse iterator

commit sha: e3b1beed2b005ec34b8e4fa22a7626e64cd05641

push time in 4 days ago
pull request

armink pull request armink/FlashDB

armink
armink

Mike tuev patch reverse iterator

tsdb: add reverse iterator and struct packing

Activity icon
issue

armink issue comment armink/FlashDB

armink
armink

Mike tuev patch reverse iterator

tsdb: add reverse iterator and struct packing

armink
armink

@MikeTuev seems not respond. I merge first then

  • remove the #pack later
  • fix build error
May
16
6 days ago
Activity icon
issue

armink issue comment armink/FlashDB

armink
armink

配置关闭cache,编译失败

版本为最新的release 1.1.2(7062902a3e7b6b8a7e8f5886ae242271a0164e05)

复现方法: fdb_cfg.h中配置

#define FDB_KV_CACHE_TABLE_SIZE     0
#define FDB_SECTOR_CACHE_TABLE_SIZE 0

编译报错

flashdb/src/fdb_kvdb.c:1486: undefined reference to `update_kv_cache'
armink
armink

最新 master 应该没问题了,可以更新测试一下

pull request

armink merge to RT-Thread/rt-thread

armink
armink

[simulator] avoid conflicts between winsock.h and sys/time.h

拉取/合并请求描述:(PR description)

[ e1560e1d4d3885d8a23ca6d2b23ccd6

Squash信息:

解决掉了开启SAL vs 模拟器报错的问题,为winsock对接sal做出准备。
搭出winsock对接模板,af_inet_winsock.c
整理sal Kconfig逻辑
重命名sal.h为sal_low_lvl.h 防止sal.h与微软的头文件重名冲突

https://github.com/RT-Thread/rt-thread/issues/5808 ]

以下的内容不应该在提交PR时的message修改,修改下述message,PR会被直接关闭。请在提交PR后,浏览器查看PR并对以下检查项逐项check,没问题后逐条在页面上打钩。 The following content must not be changed in the submitted PR message. Otherwise, the PR will be closed immediately. After submitted PR, please use a web browser to visit PR, and check items one by one, and ticked them if no problem.

当前拉取/合并请求的状态 Intent for your PR

必须选择一项 Choose one (Mandatory):

  • 本拉取/合并请求是一个草稿版本 This PR is for a code-review and is intended to get feedback
  • 本拉取/合并请求是一个成熟版本 This PR is mature, and ready to be integrated into the repo

代码质量 Code Quality:

我在这个拉取/合并请求中已经考虑了 As part of this pull request, I've considered the following:

  • 已经仔细查看过代码改动的对比 Already check the difference between PR and old code
  • 代码风格正确,包括缩进空格,命名及其他风格 Style guide is adhered to, including spacing, naming and other styles
  • 没有垃圾代码,代码尽量精简,不包含#if 0代码,不包含已经被注释了的代码 All redundant code is removed and cleaned up
  • 所有变更均有原因及合理的,并且不会影响到其他软件组件代码或BSP All modifications are justified and not affect other components or BSP
  • 对难懂代码均提供对应的注释 I've commented appropriately where code is tricky
  • 本拉取/合并请求代码是高质量的 Code in this PR is of high quality
  • 本拉取/合并使用formatting等源码格式化工具确保格式符合RT-Thread代码规范 This PR complies with RT-Thread code specification
Activity icon
issue

armink issue comment armink/EasyLogger

armink
armink

默认没有颜色输出的问题

在使用时默认没有颜色输出,查看代码发现默认是关闭颜色输出的,及时定义了ELOG_COLOR_ENABLE,跟逻辑上有点不符啊,希望定义该宏后能默认打开颜色输出。 image

armink
armink

嗯,比较赞同的,你方便提一下 PR 吗?

May
13
1 week ago
Activity icon
issue

armink issue comment armink/FlashDB

armink
armink

kvdb插入三万条记录的性能问题

hi 我们有个门禁卡的项目想使用flashdb, 我们想用kvdb来存储每个 门禁卡的信息,一台设备大约需要最多存储三万条数据。 我做了个简单的实验想在flash中插入三万条记录做测试: for (count = 1; count < 30000; count++) { snprintf(key,128,"%010d", count); snprintf(val,128,"2023-08-11 14:39 %8d", count); fdb_kv_set(&kvdb, key, val); LOG_D("insert [%d]", count); } 测试发现插入非常非常慢(我等了三四个小时三万条数据也没加完),而且会经常打印 GC XXXXX类似的信息 请问是我使用方式不对吗? 另外还想请问,三万条数据中检索 key的性能如何?

Regards,

robo

armink
armink
Activity icon
issue

armink issue comment armink/FlashDB

armink
armink

kvdb插入三万条记录的性能问题

hi 我们有个门禁卡的项目想使用flashdb, 我们想用kvdb来存储每个 门禁卡的信息,一台设备大约需要最多存储三万条数据。 我做了个简单的实验想在flash中插入三万条记录做测试: for (count = 1; count < 30000; count++) { snprintf(key,128,"%010d", count); snprintf(val,128,"2023-08-11 14:39 %8d", count); fdb_kv_set(&kvdb, key, val); LOG_D("insert [%d]", count); } 测试发现插入非常非常慢(我等了三四个小时三万条数据也没加完),而且会经常打印 GC XXXXX类似的信息 请问是我使用方式不对吗? 另外还想请问,三万条数据中检索 key的性能如何?

Regards,

robo

armink
armink

这种最好分库来存

May
10
1 week ago
push

armink push RT-Thread/env

armink
armink

Modify the information statistics method (#146)

  • add Information statistics

  • Remove printing

  • Modify the information statistics code

  • Restore some code

commit sha: cb678a5926b4c561ec5f4c4082218d3ba9ac50fc

push time in 1 week ago
pull request

armink pull request RT-Thread/env

armink
armink

Modify the information statistics method

Activity icon
issue

armink issue comment RT-Thread/rt-thread

armink
armink

📋📌 v5.0.0 特性征集与讨论 | v5.0.0 discussion

v5.0.0是一个大版本发布,一些前期的准备也在推进,考虑到的部分包括:

  • 更好的Cortex-A支持;
    • 在Cortex-A上启用device tree,fdt代码大部分以软件包方式存在;
  • 更好的64位支持;
    • TCP/IP协议栈部分整体验证过,保证64位情况下都没问题;
    • 文件系统相关的都进行验证通过;
  • 完善整体的多核代码,特别是内核代码,核心组件(文件系统,网络协议栈,命令行)的多核支持;
  • 合并rt-smart分支,尽可能的影响只涉及到components/lwp组件的情况即可支持MMU下全进程的特性;
    • 支持用户态下以rust方式编程;
    • 支持用户态的rust egui移植(应用);
  • 集成Flash管理组件,如FAL或类似的;
  • 整理,梳理驱动框架、及bsp驱动命名规则。

其他请多多补充。

armink
armink

VS 模拟器上开启网络相关功能后存在编译错误:

  • 打开 SAL 有错误
  • 打开 LWIP 有错误
May
9
1 week ago
Activity icon
issue

armink issue comment armink/FlashDB

armink
armink

LittleFS integration

It's a good opportunity to start to integrate also littlefs as FS.

armink
armink

Is it possible to directly add POSIX or LIBC file system support to LFS

May
7
2 weeks ago
started
started time in 2 weeks ago
Activity icon
issue

armink issue comment armink/CmBacktrace

armink
armink

BL 和 BLx 指令在判断的时候减去的长度好像存在问题

disassembly_ins_is_bl_blx(pc - sizeof(size_t)) && (depth < size)) 这里的减4 应该只适用于BL 指令,在指向BL或者BLX 之前会把当前地址加上一个指令大小,BLx 指令应该是减去2吧?这里仅仅是我个人的看法,还没去验证,如果有错误,还请指导一下

armink
armink

参考一下 demo 文件下的示例吧

Activity icon
issue

armink issue comment armink/CmBacktrace

armink
armink

BL 和 BLx 指令在判断的时候减去的长度好像存在问题

disassembly_ins_is_bl_blx(pc - sizeof(size_t)) && (depth < size)) 这里的减4 应该只适用于BL 指令,在指向BL或者BLX 之前会把当前地址加上一个指令大小,BLx 指令应该是减去2吧?这里仅仅是我个人的看法,还没去验证,如果有错误,还请指导一下

armink
armink

可以触发一下断言或 Hardfault 正好测试一下有没有效果哈

May
6
2 weeks ago
pull request

armink merge to armink/FlashDB

armink
armink

Mike tuev patch reverse iterator

tsdb: add reverse iterator and struct packing

open pull request

armink wants to merge armink/FlashDB

armink
armink

Mike tuev patch reverse iterator

tsdb: add reverse iterator and struct packing

armink
armink

Yes, this will have compatibility issues.

May
5
2 weeks ago
Activity icon
issue

armink issue comment armink/CmBacktrace

armink
armink

BL 和 BLx 指令在判断的时候减去的长度好像存在问题

disassembly_ins_is_bl_blx(pc - sizeof(size_t)) && (depth < size)) 这里的减4 应该只适用于BL 指令,在指向BL或者BLX 之前会把当前地址加上一个指令大小,BLx 指令应该是减去2吧?这里仅仅是我个人的看法,还没去验证,如果有错误,还请指导一下

armink
armink

你好,可否有时间验证一下呢

Apr
29
3 weeks ago
Activity icon
issue

armink issue comment armink/FlashDB

armink
armink

TSDB without rollover corrupts database if all sectors are inuse

Hi, i have a TSDB running on an ESP32 and i have disabled the rollover mechanism to keep my old data instead of overwriting it with new entries. When the flash partition is full, fdb_tsl_append returns with FDB_SAVED_FULL which is OK. But if i reboot my device, the database seems to be broken:

TSDB (log) oldest sectors is 0x00000FFF, current using sector is 0xFFFFFFFF.

And when i then try to read data, i receive the following error message:

[E/FAL] (fal_partition_read:415) Partition read error! Partition address out of bound.

My expected behaviour would be that the database will not accept new data until enough old data has been marked as deleted, so when new data is added, the freed sector can be deleted and reused. But i can't read the old data so cannot mark them as deleted.

armink
armink

OK, The FDB_TSDB_CTRL_SET_ROLLOVER shoud before initialization. Can you change it and try again?

    case FDB_TSDB_CTRL_SET_ROLLOVER:
        /* this change MUST before database initialization */
        FDB_ASSERT(db->parent.init_ok == false);
        db->rollover = *(bool *)arg;
        break;
Activity icon
issue

armink issue comment armink/FlashDB

armink
armink

TSDB without rollover corrupts database if all sectors are inuse

Hi, i have a TSDB running on an ESP32 and i have disabled the rollover mechanism to keep my old data instead of overwriting it with new entries. When the flash partition is full, fdb_tsl_append returns with FDB_SAVED_FULL which is OK. But if i reboot my device, the database seems to be broken:

TSDB (log) oldest sectors is 0x00000FFF, current using sector is 0xFFFFFFFF.

And when i then try to read data, i receive the following error message:

[E/FAL] (fal_partition_read:415) Partition read error! Partition address out of bound.

My expected behaviour would be that the database will not accept new data until enough old data has been marked as deleted, so when new data is added, the freed sector can be deleted and reused. But i can't read the old data so cannot mark them as deleted.

Apr
28
3 weeks ago
Activity icon
issue

armink issue comment armink/FlashDB

armink
armink

TSDB without rollover corrupts database if all sectors are inuse

Hi, i have a TSDB running on an ESP32 and i have disabled the rollover mechanism to keep my old data instead of overwriting it with new entries. When the flash partition is full, fdb_tsl_append returns with FDB_SAVED_FULL which is OK. But if i reboot my device, the database seems to be broken:

TSDB (log) oldest sectors is 0x00000FFF, current using sector is 0xFFFFFFFF.

And when i then try to read data, i receive the following error message:

[E/FAL] (fal_partition_read:415) Partition read error! Partition address out of bound.

My expected behaviour would be that the database will not accept new data until enough old data has been marked as deleted, so when new data is added, the freed sector can be deleted and reused. But i can't read the old data so cannot mark them as deleted.

armink
armink

What version are you using

Apr
26
3 weeks ago
Activity icon
issue

armink issue comment armink/EasyLogger

armink
armink

EasyLogger Error: no such instruction: `wfi'

你好,博主,能否提供一个集成到cmake,自己的Linux项目的示例呀,我把你的.h 和.cpp都复制到我自己的项目里,然后用cmake编译就出现这种问题了。 Error: no such instruction: wfi' /home/chen/libevent_server/third_party/include/core_cm3.h:1212: Error: no such instruction: wfe' third_party/CMakeFiles/easylogger.dir/build.make:989: recipe for target 'third_party/CMakeFiles/easylogger.dir/src/stm32f10x_pwr.c.o' failed make[2]: *** [third_party/CMakeFiles/easylogger.dir/src/stm32f10x_pwr.c.o] Error 1 CMakeFiles/Makefile2:205: recipe for target 'third_party/CMakeFiles/easylogger.dir/all' failed

armink
armink

linux 有现成的 demo 哈,你对着 Makefile 看下,文件很少的

Apr
25
3 weeks ago
push

armink push armink/FlashDB

armink
armink

adding ifdef guards to update method. should only be called if cache is used.

armink
armink

Merge pull request #147 from T721/master

adding ifdef guards to update method. should only be called if cache is used

commit sha: c175635358c356e95034d6ff8cab12f40ae7a4b2

push time in 3 weeks ago
pull request

armink pull request armink/FlashDB

armink
armink

adding ifdef guards to update method. should only be called if cache is used

resolving issue #142

Activity icon
issue

armink issue comment armink/FlashDB

armink
armink

adding ifdef guards to update method. should only be called if cache is used

resolving issue #142

push

armink push armink/FlashDB

armink
armink

commit sha: 76fff09a0a8d834880f54788000d3330ca06a147

push time in 3 weeks ago
push

armink push armink/FlashDB

armink
armink

feat: add demo project for esp32

armink
armink

fix: set printf format depending on size of time

armink
armink

Merge pull request #146 from kaans/feature/esp32_spi_flash_demo

Add demo project for esp32

commit sha: a7b33d810a3a273beec042a488f3812be7a627c4

push time in 3 weeks ago
Previous