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错误。记录如下。

阅读全文 »

 

linux can

《Linux CAN编程详解》是一篇百度文库上的文档,主要描述了以下内容:

  1. can总线介绍及其帧类型;
  2. Linux 系统中CAN 接口配置;
  3. Linux 系统中CAN 接口应用程序开发;
  4. Linux 系统中CAN 接口编程实例

阅读全文 »

 

socket can

最近写了个自认为不错的基于linux socket can程序,主要功能:

  1. 程序具备全部CAN功能,包括CAN标准帧/扩展帧接收与发送、CAN总线错误判断、环回等功能
  2. 适用基于LINUX SOCKET机制实现的CAN接口,可用于嵌入式LINUX的CAN测试
  3. 程序采用标准LINUX命令行参数选项形式,接受用户参数

现把源码进行分享 阅读全文 »

 


AT+CSQ语法

命令解释:检查网络信号强度
命令格式:AT+CSQ<CR>
命令返回:+CSQ:  **, ##           其中:

  • **应在 0 到 31 之间(99表示无信号),数值越大表明信号质量越好;
  • ##为误码率,值在 0 到 99 之间。否则应检查天线或 SIM 卡是否正确安装

阅读全文 »

 


参看基于TCP/UDP的socket代码,同一时间Server只能处理一个Client请求:在使用当前连接的socket和client进行交互的时候,不能够accept新的连接请求。为了使Server能够处理多个Client请求,常见的方法:

多进程/线程方法、non-blocking socket(单进程并发)、non-blocking和select结合使用。三种方法各有优缺点,下面进行详细分析和说明。

阅读全文 »

 


最近使用eclipse新建立了一个工程,编译环境为cygwin-1.7。奇怪的是,在编译程序时总是出现问题:undefined reference to `_WinMain@16’。仔细检查了工程的各项配置,编译问题依旧。

在网上搜索,也找不到相应的问题解决方法。冷静下来,仔细分析问题所在。

在cygwin中编译链接一个程序时,出现了如下错误:

阅读全文 »

 


在此之前,开发eCos应用程序时,经常碰到程序挂掉后,串口打印输出一大串让人看不懂的数据。今天才明白,原来这些数据是程序挂掉时的堆栈帧数据(stack frame data)。

通过这些堆栈帧数据可以分析出程序当时的运行状态和定位程序哪里出现了问题。

这就是本文要讲的—backtrace()和backtrace_symbols()函数的使用。

阅读全文 »

 


PTHREAD_STACK_MIN宏指示一个线程堆栈的最小字节。当调用pthread_attr_setstacksize()函数设定线程堆栈时,设定的线程堆栈大小值必须大于等于PTHREAD_STACK_MIN宏定义的值,否则返回错误。

不同的处理器和操作系统,PTHREAD_STACK_MIN宏具有不同值,这也是该宏存在的意义。它一般定义在limits.h头文件中。不过,也有例外。

阅读全文 »

© 2012 velep.com | reille blog | 管理| 粤ICP备12094833号-2| 谷歌地图| 百度地图| Suffusion theme|Sayontan Sinha

无觅相关文章插件,快速提升流量