2012年12月16日

可变长结构体

摘要: 经常遇到消息体变长问题,小总结一下。变长结构体的核心思想就是在结构体的最后一个数据结构为一个指针,这个指针指向的是这个结构体的末尾数据,说的有点绕,见下面结构体typedef struct stru_tcp_server_msg{ uint32_ msgLength; //消息体长度 此长度为整个消息长度,包括msgLength本身的长度 uint32_ returnCode; //消息TcpServer返回码 uint8_ zmqMsgBody[0]; //消息体}TS_TCP_SERVER_MSG;见上面zmqMsgBody[0]的定义,看起来很奇怪,其实它的作用... 阅读全文

posted @ 2012-12-16 20:24 dangerman 阅读(6123) 评论(0) 推荐(0) 编辑

Log4cpp 崩溃

摘要: Log4cpp 崩溃昨天测试时出现Log4cpp打印崩溃问题,不是很快出现,多线程情况下快速打印大概3分钟左右会蹦,崩溃位置如下 void OstreamAppender::_append(const LoggingEvent& event) { (*_stream) << _getLayout().format(event); if (!_stream->good()) { // XXX help! help! } } 上面加粗那行的 “oprater<<” 函数崩溃,但这个函数是系统函数,只能看看format()... 阅读全文

posted @ 2012-12-16 20:06 dangerman 阅读(1099) 评论(0) 推荐(0) 编辑

2012年5月27日

原来CoreBluetooth 只支持Bluetooth Low Energy

摘要: 原来CoreBluetooth 只支持Bluetooth Low Energy 我还拿MAC mini调了半天,就是搜不到设备,坑爹啊。。。。。 阅读全文

posted @ 2012-05-27 11:26 dangerman 阅读(352) 评论(0) 推荐(0) 编辑

2012年3月16日

Vx7zip改进

摘要: 最近有时间将以前移植到vxworks上的7zip代码整理了一下,7zip格式资源需求比较大,不太适合嵌入式开发,在整理版本中去掉了这个格式,只保留zip,因此大大减小了代码量。源代码中zip格式支持deflate、lzma等算法,都试了一下,lzma压缩率最高,但是必须用7zip的程序才能解压,winrar解不了,最后干脆就用deflate。改进版本分两个文件,一个包括加密模块,另一个为纯zip,此代码都支持打包、解包。有兴趣的朋友可以试一下,感觉一般的可以用了。增加了zipLib工程,可以编译为*.a文件做代码库连接。 阅读全文

posted @ 2012-03-16 19:58 dangerman 阅读(438) 评论(0) 推荐(0) 编辑

GoAhead 2.5 Web Server 网页ROM化的改进

摘要: GoAhead 是嵌入式Web Server设计的首选利器,其中将HTML文件及其资源转换为*.c文件编译进最终执行文件的功能,为一些没有文件系统的嵌入式工程提供了完美的解决方案,其转换原理就是将文件以Byte的形式转换为若干数组,在页面请求的时候Goahead将数组内容返回给用户,从而达到无需外部文件依赖的目的,但转换中存在的一个问题是,HTML文件为文本文件,其中可能存在很多冗余数据,转换后会在ROM中加入无数毫无用处的数据,从而很难降低最终编译后的ROM大小,这将对一些资源要求很高的嵌入式系统提出很大挑战, 在实际的代码研读中不难发现,这种问题可以通过将HTML的压缩数据存入*.c文件解决,同时在页面请求的时候在使用解压缩接口将数据解压,由于页面数据通常较小,且存在内存中,因此并不影响读取速度,zlib是一种比较简洁的压缩模块,用在此处非常合适。 由于我们使用的是Vxworks系统,因此现在的版本只测试过win32和vxworks,其他没有时间测。 阅读全文

posted @ 2012-03-16 18:26 dangerman 阅读(900) 评论(1) 推荐(0) 编辑

2011年6月11日

试验Boost在Vxworks上的应用日记 三

摘要: 今天把xpressive和smart_ptr从boost里往外抠,smart_ptr还可以,相对比较独立,xpressive虽然有心理准备,但结果还是很郁闷,关联很多,抠出了很多代码,明天还要看看在vxworks使用的话会使OUT文件增加多少,呵呵,这个很关键,道路是曲折的,嘿嘿,不过也很有意思:) 阅读全文

posted @ 2011-06-11 21:30 dangerman 阅读(316) 评论(0) 推荐(0) 编辑

2011年6月5日

移植的7zip到Vxworks 取名vx7zip

摘要: 已经将7zip移植到Vxworks上,确切的说是将7zip的框架移植过来,因为本身7z压缩率虽然高,但是在压缩大文件时占用内存较多,在板子上使用可能有隐患,但我们的硬件资源不是很紧缺所以可以用,呵呵,幸福啊。今天把源码放出来,版本还存在一些问题,希望大家共同改进,开源其实是一个好习惯,希望每个程序员都开源,大家共同进步,本人是程序员,也是代码爱好者,职业和爱好不冲突,呵呵^_^ 阅读全文

posted @ 2011-06-05 16:47 dangerman 阅读(1063) 评论(3) 推荐(0) 编辑

2011年5月30日

试验Boost在Vxworks上的应用日记 二

摘要: 今天把代码拿到板子上跑了一下,smart_ptr和xpressive很幸福的跑过了,没有什么问题,执行和预想的一样。但property_tree果然杯具了,能编译通过,但是出现一堆红叉,有没有error,诡异。。。。一跑就崩,仔细看了看确实没有error的地方,.o文件也可以生成,郁闷了。。。不过用tinyXml自己写个管理类其实也可以,主要嫌麻烦。。。其他找到的XML解析都比较大。这个先放放没关系。Vxworks6.8没有环境,有时间在虚拟机上试一下。 阅读全文

posted @ 2011-05-30 22:19 dangerman 阅读(666) 评论(0) 推荐(0) 编辑

2011年5月29日

试验Boost在Vxworks上的应用日记 一

摘要: 许多人认为Boost库非常庞大,不适合在嵌入式开发中使用,因此一讲到嵌入式,Boost连想都不想直接pass,而且多是有经验的老程序员,但我觉得咱们中国人脑子里面的框框太多了,没有什么事不可以的,评价好坏也没有特定标准,Boost库经过长期发展,稳定、实用、好用,为什么不能做一下尝试,如果觉得Boost庞大,那STL也不小啊,又为什么用C++?既然用了C++这些代价其实都已经计算在内了,又何必计较很多, 不可否认Boost使用的许多新语法和模板未必所有编译器都支持,这就给移植留下隐患,但是向share_ptr这种工具非常有用,在C++0x也会加入,用一用也没有坏处首先需要自己测试一下再大规模. 阅读全文

posted @ 2011-05-29 22:58 dangerman 阅读(1284) 评论(1) 推荐(0) 编辑

导航