|
发表于 2015-6-2 22:00:33
|
显示全部楼层
本帖最后由 chxaitz 于 2015-6-2 23:03 编辑
哇塞,哇塞,哇塞!!!
这两天就想在网上找一个嵌入式的日志库,都找不到适合嵌入式的,然后就看到的LZ,真心激动的不行,LZ我就希望找到那种,
1.纯标准C的
2.轻量级的,
3.易移植的,
4.稳定性高的,
可是总也找不到满意的。
我现在需求的环境就是,设备要在外面测试,所以希望产生的各种常规和异常信息都能够保存下来,以备回收回来的时候好进行分析,但找不到,都想自己写个最简单的了,但是这方面没有经验,不晓得什么样的架构比较合适。。。
LZ,你把项目放到GitHub上面或者Git@OSC上面托管吧,我也可以贡献自己的一份力~O(∩_∩)O哈哈~
补充:
1.看了LZ些的《EasyLogger 开发介绍与功能说明》,其中提到,“输出方式支持:终端、文件、Flash,采用静态宏定义方式进行区分”,我感觉,是不是底层可以提供标准的接口
比如标准的三个接口
elogger_port_open();
elogger_port_write();
elogger_port_close();
在Write中一次写一条
或者只提供一个接口
elogger_port_put();
一次将缓冲区中的数据全部封包写入。
底层具体用什么媒介显示,由用户自己实现O(∩_∩)O哈哈~
2.看了那个思维导图关于上层函数的命名方式,虽然写入的那几个都是简写,但是习惯了还好,不习惯的话,还是光看到函数名,不知道它属于什么级别,所以可不可以这样,可以定义个长点的文件名,然后可以在定义个宏
比如:
#define elog_a( a , b ) elog_assert( a , b )
然后函数还是
elog_assert();
elog_error();
elog_warn();
elog_info();
elog_debug();
elog_verbose();
elog_raw();
看着比较直观~O(∩_∩)O哈哈~
3.然后是看完LZ思维导图之后的其它想法
(1).感觉RTC那个,应该是个宏比较好,并且返回time_t格式,然后内部调用<time.h>函数,实现到字符串的转换,保证时间字符串格式统一。
(2).不知LZ为何没用到动态内存申请,如果用到,还需要下面两个函数。并且关于动态内存分配,感觉FreeRTOS的heap_4.c中实现的方式不错,支持碎片合并,分配方法也比较合理,并且直接改了就能用,用到现在感觉挺稳定的,推荐给LZ。
elog_malloc();
elog_free();
(3).然后是,不知道LZ为什么还有elog_output_lock()和elog_output_unlock()这两个函数,它是用来干啥的?
4.其它
LZ我现在用OS只要堆栈开小一点,稍微复杂一点的sscanf();,在本线程中还能运行,只要一调度到下一个就崩溃,还在还不确定是否就是堆栈的问题,还是其它的,LZ有什么好推荐的吗?O(∩_∩)O哈哈~ |
|