基于类串口通信的文件传输协议,ymodem应用非常广泛,比如在MCU IAP中,常用的就是这种协议。ymodem是xmodem的改进版协议,具有传输快速稳定的优点。它可以一次传输1024字节的信息块,同时还支持传输多个文件。
本文ymodem源码基于C语言,采用回调机制,设计为独立的C库,包含了发送端和接收端的实现。
基于类串口通信的文件传输协议,ymodem应用非常广泛,比如在MCU IAP中,常用的就是这种协议。ymodem是xmodem的改进版协议,具有传输快速稳定的优点。它可以一次传输1024字节的信息块,同时还支持传输多个文件。
本文ymodem源码基于C语言,采用回调机制,设计为独立的C库,包含了发送端和接收端的实现。
jsoncpp是一个优秀的开源C++ json库,被广泛应用。在寻找C/C++ JSON库时,没有选择CJSON,而是选择了jsoncpp,主要考虑我应用程序是C++编写,如果使用CJSON的话,可能需要重新封装一层。
就我的应用而言,jsoncpp和CJSON都有一个共同问题:官方代码不支持指定小数位数。jsoncpp还有另一个问题:它默认按字母排序输出json。
从上年接触MQTT开始,就有看到mosquitto,但未仔细了解过,初步认为是运行在服务器上的MQTT代理服务软件。这两天突然有个想法,想在ARM板上运行MQTT服务程序,用于各模块间的消息通信。
根据资料,发现mosquitto居然是个轻量级的MQTT服务程序,由MQTT协议创始人之一的Andy Stanford-Clark开发。许多人把它移植到了树莓派、ARM板上。
调试嵌入式linux应用程序时,出现下述错误:
terminate called after throwing an instance of ‘std::length_error’
what(): basic_string::_S_create
采用在gdb中运行,错误如下: 阅读全文 »
使用4.9.2版本的交叉编译器编译新写的应用程序时,出现了很多之前没遇到过的编译错误,比如今晚出现的编译错误:error: ‘__locale_t’ has not been declared。这个错误主要是头文件“<xlocale.h>”包含的问题。
这个错误源于自己编写的一个头文件中包含了<string>头文件引起的。编译错误提示内容具体如下:
SQLite是一款针对嵌入式产品应用的轻量型开源数据库,它占用资源非常的低。在嵌入式应用中,该数据库只需要几百K的内存就够了,而且性能非常不错。除此外,它也支持Windows/Linux/Unix等主流的操作系统。
实际上,早就对SQLite垂暮已久了,奈何一直用不上。最近项目里,打算对小范围的数据(如黑名单数据)上SQLite进行管理。
共享内存是linux进程间通信的一种方式,实现多进程共享变量。应用共享内存时,主要涉及shmget、shmat、shmdt、shmctl四个函数。
此外,可通过ipcs -m来查看linux共享内存使用情况。
下面展示一个本人编写的一应用实例。
前段时间,由于项目需要,产品中需要多增加一路CAN总线接口。CAN总线方案是ATMEL ARM9 + MCP2515。
此前已经有两路CAN总线接口了。以我对linux MCP2515驱动的熟悉,增加一路CAN总线接口的驱动不是难事。另人意外的是,在应用层的使用上,居然碰到了点意外。主要是关于bit-timing not yet defined错误。记录如下。
© 2012 velep.com | reille blog | 管理| 粤ICP备15065318号-2| 谷歌地图| 百度地图| Suffusion theme|Sayontan Sinha |