用VS编写代码时,从word文档中拷贝了一些内容作为注释。编完代码,转到linux上编译时,结果出现了下面一段有点让人丈二和尚摸不到头脑的编译错误:

  • xxUnit.cpp:1: error: stray ‘\357’ in program
  • xxUnit.cpp:1: error: stray ‘\273’ in program
  • xxUnit.cpp:1: error: stray ‘\277’ in program

阅读全文 »

 


共享内存是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命令行参数选项形式,接受用户参数

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

 


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

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

阅读全文 »

 


最近出差带着的一台笔记本电脑——联想Thinkpad的E430C,让我用着用着非常的不爽。主要的问题是打开几个应用软件后,如虚拟机、Visual Studio 2003、浏览器、word 2010等,电脑就会提示内存不足,以至出现系统崩溃的现象。严重干扰了我的正常工作。

看了本本的配置,还算可以。所以我认为应该是内存不够引起的。

阅读全文 »

 


最近使用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

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