- 博客(16)
- 资源 (10)
- 收藏
- 关注
原创 source insight 使用记录
1. source insight 中文注释乱码解决:文件用ultraEdit打开,选择 文件→转换→UTF-8到ANSCII, 然后保存。重新用source insight打开就好了。2. 添加中文注释字间距过大解决: 1、Options->Style Properties 2、左边Style Name下找到Comment Multi Line、Comment、
2013-08-30 14:47:28 887
原创 消息队列
3种IPC机制:信号量、共享内存、消息队列。信号量:用于管理队资源的访问;共享内存:用于程序之间高效的共享数据;消息队列:在进程之间传递数据的一种简单方法。前两种已经做过介绍,这里介绍一下消息队列。1. intmsgget(key_t key, int msgflg); //创建消息队列参数: key:消息队列关联的键。 msgflg:消息队列的建立标志和
2013-08-30 11:40:53 595
原创 共享内存和信号量
共享内存可以被多个进程操作,这是我们的目的,也可以被多个进程同时操作,这是我们不希望看到的,为了避免这种情况,我们使用共享内存时需要配合信号量同时使用。 共享内存的使用,主要有以下几个API: shmget()、shmat()、shmdt()及shmctl()。 1. shmget()用来开辟/指向一块共享内存的函数,应用说明:shmget()用来获得共享内存区域
2013-08-29 17:47:18 777
原创 poll() 和select()使用总结
select函数在前面转载的文章中介绍过,不在赘述,下面说一下poll()函数poll:poll函数和select函数功能十分相似,函数声明:int poll(struct pollfd fds[],nfds_t nfds, int timeout); 参数说明:fds:是一个struct pollfd结构类型的数组,用于存放需要检测其状态的Socket描述符;每当调用
2013-08-29 16:52:54 1462
转载 网络字节序 和 本地字节序
例子:在内存中双字0x01020304(DWORD)的存储方式 内存地址 4000 4001 4002 4003 Little endian 04 03 02 01 低位字节排放在内存的低地址端Big endian 01 02 03 04 高位字节排放在内存的低地址端(网络字节序采用此排列方式)不同的CPU有不同的字节序类
2013-08-24 13:53:37 707
转载 Microsoft Office Word 遇到问题需要关闭。我们对此引起的不便表示抱歉。
一运行WORD就出现如题的对话框,点击不发送错误报告就会出现“word上次启动时失败。以安全模式启动word将帮助您纠正或发现启动中的问题,以便一下次成功启动应用程序。但是在这种模式下,一些功能将被禁用。是否使用“安全模式”启动word?” 选否就会不断的循环,选是就打开WORD,不过是空白的,就是界面是灰色的,需要新建文档才能使用。 用了很多办法都没解决,对了,我搜索normal.dot文件没有
2013-08-20 17:22:34 562
原创 select函数使用总结
开发过程中用到了select函数监听多个描述符状态的变化,转载过一篇《select函数详解及应用》的文章,在使用过程中遇到过一此这篇文章中没有提到的问题,现做一下总结。 函数原型为:int select(intmaxfdpl, fd_set * readfds, fd_set *writefds, fd_set * read exceptfds, stru
2013-08-19 10:50:48 675
原创 读串口总结
项目需求从串口中读取数据,刚开始方案是一次从串口中read 512字节的数据然后解析,代码写完后发现有时候接收的数据不是完整的一包数据,导致数据无法解析,为解决这个问题,修改方案为循环读取,一直读到需要的数据为止,最后实现了功能,但算法太复杂,影响效率。 最后采用SLIP协议封装数据 SLIP(Serial Line Internet Protocol
2013-08-15 13:26:34 1427
原创 通过tftp32在3110E上调试程序
通过tftp32把可执行文件加载到3110E上步骤:a. 通过telnet登录到3110E,查看是否启动了tftp服务;b. 在windows上运行tftpd32,路径选择所要加载程序存放的目录;c. 3110E上执行命令: tftp -g -r command192.168.12.19ps: -l 表示本地文件名,即command,-r表示远程文
2013-08-12 10:05:01 572
原创 linux平台上搭建交叉编译环境
搭建步骤:a. 解压交叉编译工具arm.tar.bz2 到usr/local下;b. 修改PATH路径: 修改文件/etc/profile 在其中添加export PATH="/ usr/local/arm/3.3/bin:$PATH"c. 更新修改后PATH路径生效:# source /etc/profiled. 检查环境变量是否修改成功:# ech
2013-08-12 09:36:00 611
原创 C结构体初始化
结构体初始化:对结构体struct a {int b;int c;}有几种初始化方式:struct a a1 = { .b = 1, .c = 2};或者struct a a1 = { b:1, c:2}或者struct a a1 = { 1, 2};内核喜欢用第一种,使用第一种和第二种时,
2013-08-08 12:01:13 639
原创 阅读编程规范收获
今天阅读了项目经理给的《嵌入式Linux编程规范》,有些问题是以前自己没有注意和没有接触过的,整理了以下3点: 1. 在多重循环中,应将最忙的循环放在最内层。说明:减少CPU 切入循环层的次数。示例:如下代码效率不高。for (col = 0; col < 200; col++){for (row = 0; row < 10; row++){a[row][col]
2013-08-08 10:06:47 655
原创 linux获取及设置系统时间
今天查找了一下linux获取及设置系统时间的函数,并做了以下总结:#include #include #include #include int time_fun(){ time_t t_t; struct tm * time_info; char time_str [40]; time(&t_t ); time_info =
2013-08-07 17:39:53 760
原创 linux开发错误记录
下面这些问题都是记录在自己在编程过程中遇到的问题,大部分在网上都是可以查到的。2013-8-71、隐式声明与内建函数"xxxx“不兼容: 问题原因:没有包含头文件。 解决办法:添加头文件即可。2:程序中有游离的‘/241’ 问题原因:复制的代码 解决办法:重新输入。
2013-08-07 14:50:52 1231
转载 select函数详解及应用
Select在Socket编程中还是比较重要的,可是对于初学Socket的人来说都不太爱用Select写程序,他们只是习惯写诸如connect、 accept、recv或recvfrom这样的阻塞程序(所谓阻塞方式block,顾名思义,就是进程或是线程执行到这些函数时必须等待某个事件的发生,如果事件没有发生,进程或线程就被阻塞,函数不能立即返回)。可是使用Select就可以完成非阻塞(所谓非阻塞方
2013-08-05 16:01:13 505
原创 D3100开发问题记录
2013-8-1 回调函数 结构体 struct record_callback{ int (* start_record)(); int (* pause_record)(); int (* stop_record)();};struct record_callback record; //定义结构体变量void process_re
2013-08-05 14:46:47 433
commoncpp2-1.8.0.tar.gz
2013-09-06
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人