最近对单独的进程进行编译时,提示下列编译错误:

这是因为程序中使用了数学函数sqrt和asin的缘故。 阅读全文 »

 


在使用ls命令时,每个文件在Linux下面都会记录3个主要的修改时间:

  •  modification time(mtime,修改时间):当该文件的“内容数据”更改时,就会更新这个时间。内容数据指的是文件的内容,而不是文件的属性。
  •  status time(ctime,状态时间):当该文件的”状态(status)”改变时,就会更新这个时间,举例来说,更改了权限与属性,就会更新这个时间。
  • •access time(atime,存取时间):当“取用文件内容”时,就会更新这个读取时间。举例来说,使用cat去读取 ~/.bashrc,就会更新atime了。

举例来说,我们来看一看/etc/man.config文件的时间。 阅读全文 »

 


为什么要在linux命令前加上 ./ ?

简述

执行unix或linux中除了path系统变量外的目录下的命令都要加./。

修改用户的 .bash_profile,在 PATH一行最后加上 “:.” (一个冒号,一个点) ,然后退出重新登陆用户就ok了! PATH中没有定义路径,加上就ok了。

./表示当前目录,这是因为linux的默认搜索目录里没有当前目录,所以如果你在当前目录需要执行程序就要加上路径./,用全路径代替也是可以的。

win/dos的默认搜索路径里有当前目录,所以不需要加。其实加上也是一样的效果。

什么时候才需要在命令前加上./ ?  阅读全文 »

 


用户程序有可能要花费很多时间,如果将它放在前台运行,将导致无法继续做其他事情,最好的方法就是将它放在后台运行,甚至可能希望在用户注销系统后,程序还可以继续运行。让我们来看看如何实现linux程序后台运行

1. &命令实现后台运行程序

将程序放到后台运行的最简单方法就是在命令最后加上“&”,示例如下:

reille@ubuntu:  updatedb & ← 在后台执行 locate 数据库更新命令

2,前台运行程序的fg命令 

如果用户当前已有程序在后台运行,可以输入fg命令,将它从后台移到前台运行:

reille@ubuntu:   fg ← 放到前台执行的命令会显示出来

3,在退出后让程序继续运行的nohup命令  阅读全文 »

 


毫秒延时函数:mdelay()
微妙延时函数:ndelay()

#ifndef mdelay
#define mdelay(n)    (/
(__builtin_constant_p(n) && (n)<=MAX_UDELAY_MS) ? udelay((n)*1000) : /
({unsigned long __ms=(n); while (__ms--) udelay(1000);}))
#endif

#ifndef ndelay
#define ndelay(x) udelay(((x)+999)/1000)
#endif

使用这两个延时函数时,要有包含文件: #include  <linux/delay>

从上述代码可看到,在linux驱动中,毫秒和微秒延时都调用udelay()函数来实现延时的。udelay()函数实现微秒延时,因此,也可直接使用udelay()函数来实现延时。

 


今天想使用printf()函数在串口上每秒输出一个‘C’字符,实现在串口上显示如CCCCCC的提示信息,但直接使用printf(“C”);语句时,要么不输出,要么一下子输出很多CCCCC。

而使用printf(“C\n”);语句时则可正常输出显示,但这不是我要的输出格式。

事实上这个问题涉及到printf()输出缓冲的问题。

对于标准输出设备stdout,输出一般都有缓冲,当遇到刷新标志或缓冲满时才把缓冲的数据输出到标准输出设备中。

对于printf()函数,其使用的输出设备就是标准输出设备stdout,且采用行缓冲式的输出,当printf()遇到\n时,或者缓冲区满时,才会将缓冲区里的内容刷新到标准输出(stdout)。 阅读全文 »

 


snmpwalk介绍及其用法一文中曾经介绍了关于net-snmp软件包中的snmpwalk程序的使用方法。snmpwalk实际上相当于个非常简单的网管程序,可以从snmp代理(snmp agent)中获取指定OID的信息。

在嵌入式领域,一般情况下,我们都是针对snmp代理开发,而基于SNMP协议的网管程序则交给PC端的软件开发工程师。但在net-snmp软件包的支持下,我们也可以实现像snmpwalk功能简单的snmp管理端功能程序。

本文即介绍了一个简单的SNMP管理功能程序,源代码如下: 阅读全文 »

 


Linux kernel路由机制分析(上)

四.主要路由流程分析

前面已经介绍过,IP层会在输入和输出两个时候去调用路由部分代码。输入路由过程更为复杂一些也更具代表性,所以我们下面主要分析一下IP包输入时的路由流程。

下图描述了这个流程:

阅读全文 »

 


一.前言

我对linux2.4.18的相关代码进行了阅读,从关键的几个接口函数入手,进而理清了整个路由部分的主要脉胳,理解了一些细节问题的处理,但还是有些问题还没有完全搞清楚。

路由部分代码主要在linux代码树的/net/ipv4/下面:

对于下面报告内容的组织,我想通过由整体到部分到细节的顺序,尽量把我阅读代码学习到的所有的知识做一个有层次有条理的总结。 阅读全文 »

 


嵌入式系统中,存储空间、内存等资源相对较敏感。如何高效的利用有限的系统资源,一直是嵌入式系统设计的重点。在嵌入式linux系统的远程固件(程序)升级功能上尤为突出。如果固件升级包太大,对内存和flash都会带来压力。因此,必须尽量减小固件升级包的大小。

在这个问题上,7z压缩格式为我们带来了福音。相比.tar、.tar.gz、.tar.bz2等压缩格式,采用7z格式压缩的固件升级包明显较小。reille实现的固件升级功能中都采用这种格式制作固件升级包。

关于7z的介绍请参考:7z格式、LZMA压缩算法和7-Zip详细介绍

本文主要分享了移植7z命令到嵌入式linux系统的方法和经验。

阅读全文 »

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

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