Chinaunix首页 | 论坛 | 博客
  • 博客访问: 35855
  • 博文数量: 19
  • 博客积分: 840
  • 博客等级: 准尉
  • 技术积分: 230
  • 用 户 组: 普通用户
  • 注册时间: 2009-07-25 18:10
文章分类
文章存档

2011年(1)

2009年(18)

我的朋友

分类: LINUX

2009-08-31 19:13:31

 

编译:
在板子上运行可执行文件:
法一:[root@localhost ]# arm-linux-gcc  -o    xxx    xxx.c
法二:[root@localhost ]# arm-linux-gcc  xxx.c -o    xxx   
在PC上运行可执行文件:
法一:[root@localhost ]# gcc  -o    xxx    xxx.c
法二:[root@localhost ]# gcc  xxx.c -o    xxx   
运行可执行文件:   ./xxx
 
cp的用法:
语法: cp   [选项]     源文件或目录    目标文件或目录
说明:该命令把指定的源文件复制到目标文件或把多个源文件复制到目标目录中。
该命令的各选项含义如下:
- a 该选项通常在拷贝目录时使用。它保留链接、文件属性,并递归地拷贝目录,其作用等于dpR选项的组合。
cp  -a    /aaa    /bbb

- d 拷贝时保留链接。
- f 删除已经存在的目标文件而不提示。 //提示是否覆盖已经存在的文件,在虚拟机中使用 -i 和 -f功能相同
cp  -f    /aaa/xxx   /bbb

- i 和f选项相反,在覆盖目标文件之前将给出提示要求用户确认。回答y时目标文件将被覆盖,是交互式拷贝。
- p 此时cp除复制源文件的内容外,还将把其修改时间和访问权限也复制到新文件中。
- r 若给出的源文件是一目录文件,此时cp将递归复制该目录下所有的子目录和文件。此时目标文件必须为一个目录名。
cp  -r   /xxx   /xxx
- l 不作拷贝,只是链接文件。
需要说明的是,为防止用户在不经意的情况下用cp命令破坏另一个文件,如用户指定的目标文件名已存在,用cp命令拷贝文件后,这个文件就会被新源文件覆盖,因此,建议用户在使用cp命令拷贝文件时,最好使用i 选项。
例子:
cp -i file1 file2 (将文档 file1 复制成 file2 . –i为提示确认。)
cp file1 dir1 将文档 file1 复制到目录 dir1 下,文件名仍为 file1.
cp /tmp/file1 . 将目录 /tmp 下的文档 file1复制到现行目录下,档名仍为 file1.
cp /tmp/file1 file2 将目录 /tmp 下的文档 file1现行目录下,档名为file2
cp -r dir1 dir2 (recursive copy) 复制整个目录.若目录 dir2 不存在,则将目录dir1,及其所有文档和子目录,复制到目录 dir2 下,新目录名称为dir2.若目录dir2存在,则将dir1,及其所有文档和子目录,复制为目录 dir2
法一:拷贝一个文件夹或目录下所有文件到xxx文件夹或目录下:
    cp *.* /xxx
法二:书上写-f表示如果对目标文件file2没有写权限,强制拷贝。也有一种说法是:若目的地已经有相同档名的档案存在,则在复制前先予以删除再行复制,前提是只要对file1有读权限,包含file1和file2的目录具有执行权限。 (这里需要指出的一点是,包含file2的目录你必须具有写权限,否则也无法强行拷贝/删除,而这也正是cp -f pwd /bin/pwd无法成功的原因)
    cp -f file1 file2
法三:我用cp拷贝目录的时候, 假设我有/aa目录, 此时/bb不存在 如果我用如下命令, 那么就会把aa目录下的文件所有文件拷贝到了bb里
    cp   -rf   /aa   /bb
但是,如果bb目录存在的话 那么我用命令   cp   -Rf   /aa   /bb 就会变成把aa目录下文件拷贝到了bb下的aa文件夹里;此时/bb的目录结构变成/bb/aa
正确的用法是
cp   -Rf   /aa/*   /bb
 

开机直接运行程序:
将内核和文件系统烧进板子:在/nfs/etc/init.d/rcs文件或etc/profile(/nfs/etc/profile)文件下面添加命令:执行程序所要用的命令
1、以键盘key为例说明具体过程:
    1)、将key的可执行文件拷贝到/nfs下
    2)、在/nfs/etc/profile文件或/nfs/etc/init.d/rcs文件内添加下面两行命令:
      
            mknod /dev/key c 254 0   //主要这句命令可能不要,如果这句命令已经加入profile或rcs,那么这句命令就不需要输入
            ./key &  (或./key )
2、以触摸为例说明具体过程:
     1)、将触摸的可执行文件拷贝到/nfs下
      2)、在/nfs/etc/profile文件内添加下面命令:
        
             ./ts_calibrate
      
开机后直接就运行程序了
 
linux内核中驱动编译成 “M” 和 “*” 的区别:
1、编译成 “M”:把该驱动编译成模块,不用不加,用的话加载一下,防止内核过大,运行过程如下:
    1)、 首先加载该驱动:    insmod     xxxxxx
   
    2)、 创建节点文件:       mknod     xxxxxx
    3)、 运行可执行文件:    ./xxxxxx      (后面加个“&”,则此进程在后台运行)
2、编译成 “*”:把该驱动直接编译进内核,运行过程如下:
     运行可执行文件:    ./xxxxxx      (后面加个“&”,则此进程在后台运行)

3、禁止一个进程的运行(以键盘key为例):
    
     1)、 运行可执行文件:    ./key  & 
     2)、 显示运行的进程:    ps
     3)、 找到key运行的进程号(这里是252):   kill   252     (终止了key进程的运行,可以再输入ps命令进行查看)
阅读(447) | 评论(0) | 转发(0) |
0

上一篇:uboot源码结构

下一篇:挂载yaffs

给主人留下些什么吧!~~