一个超级简单的内存数据库,可以跑在单片机上。

[复制链接]
1331|2
 楼主| keer_zu 发表于 2020-4-10 15:51 | 显示全部楼层 |阅读模式
本帖最后由 keer_zu 于 2020-4-10 16:17 编辑

这里实现了一个简单的key-value的内存数据库,可以在单片机上运行。

可以在单片机上使用的内存数据库

接口简单:

  1. /////////////////////////// user implementation //////////////////////
  2. typedef int (*EVENT_HANDLER)(const int event,const int msgId);

  3. int CRITICAL_INIT();
  4. void ENTER_CRITICAL();
  5. void EXIT_CRITICAL();
  6. int CRITICAL_DEINIT();



  7. /////////////////////////////////// debug ////////////////////////////
  8. //#define __DEBUG__
  9. #ifdef __DEBUG__
  10. #define DEBUG(format,...) printf("File: "__FILE__", Line: %05d: "format"/n", __LINE__, ##__VA_ARGS__)
  11. #else
  12. #define DEBUG(format,...)
  13. #endif
  14. /*example*/
  15. // char str[]="Hello World";  
  16. // DEBUG("A ha, check me: %s",str);
  17. //
  18. //////////////////////////////////////////////////////////////////////
  19. #define MAX_ASYNC_MSG_NUM   10

  20. ///////////////////////////// API ////////////////////////////////////
  21. int CommuInit(void);
  22. int CommSetEventHandler(EVENT_HANDLER ev);
  23. int CommSaveMsg(const int msgId,const char *msgData,unsigned int dataLen);
  24. int CommGetMsg(const int msgId,char *msgData,unsigned int* pDataLen);
  25. int OnTimer();


  26. #endif

源代码:

https://github.com/smtp-http/ucomlib.git
欢迎star,fork。。。

欢迎一起完善。


在mcu下,可以在定时器里面调用:OnTimer(),来实现超时机制。
超时后的处理在类似:
  1. int handler(const int event,const int msgId)

这样的函数中实现,比如读出超时消息等等。




chunyang 发表于 2020-4-10 16:14 | 显示全部楼层
支持原创分享。
 楼主| keer_zu 发表于 2020-4-10 16:15 | 显示全部楼层

多谢春哥
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:qq群:49734243 Email:zukeqiang@gmail.com

1488

主题

12947

帖子

55

粉丝
快速回复 在线客服 返回列表 返回顶部