当前位置:文档之家› uClinux平台开发入门

uClinux平台开发入门


Linux命令
帐号,进程管理 :useradd, groupadd, passwd, chgrp, who, lastchmod, chatrr, ps, top, uptime
file mode:rwxrwxrwx,777,s,t
文件和磁盘操作:ls, cp, cd, pwd, mv, rm, rmdir, mkdir, cat, less, more, echo df, du, fdformat, ln, head, tail, wc, find, grep
-Idirectory 在包含文件搜索路径的起点处添加指定目录; -llibrary 提示链接程序在创建最终可执行文件时包含指定的库; -O、-O2、-O3 将优化状态打开,该选项不能与-g选项联合使用; O2、 将优化状态打开,该选项不能与-S -v 要求编译程序生成来自源代码的汇编程序输出; 启动所有警报;
d 目录 ,l 符号链接,b 块设备文件,c 字符设备文件
网络命令: ping, traceroute, netstat, route, ftp, ssh, telnet 防火墙命令:iptables, ebtables 网络服务:DHCP, PPPoE, Samba, FTP, TFTP, Sendmail, IGMP. 集成服务:BUSYBOX
Shell语法
. if-then-else 语句 if command_1 then command_2 else command_3 fi 函数名 ( ) { 命令 }
for var1 in list Case string1 in str1) do commands;; commands str2) done commands;; *) while expression commands;; do esac statements done
VI基本概念
1) 命令行模式command mode)
控制屏幕光标的移动,字符、字或行的删除,移 动复制某区段及进入Insert mode下,或者到 last line mode。
2) 插入模式(Insert mode)
3) 底行模式(last line mode)
只有在Insert mode下,才可以做文字输入,按 「ESC」键可回到命令行模式。
Linux配置目录
总体目录 /dev — 设备 /proc — proc 文件 /etc — 系统配置 /sbin — 系统程序 /bin — 应用程序 /lib — 共享函数库 /mnt — 装载其他磁 盘节点 /usr — 附加应用程 序
基本配置 /etc/sysconfig/network-scripts/ 网络脚本相关 /etc/init.d 各种服务 /etc/rc.d/init.d/ start | stop | status /etc/rc.d/rc.local 可以从 rc、rc.sysinit 或 /etc/inittab 调用。 /etc/rc.d/rc.sysinit 通常是所有运行级别的第一个脚 本。 /etc/issue & /etc/ 这些文件由 mingett(和 类似的程序)读取,用来向从终端(issue)输出 welcom消息 /etc/protocols 列举当前可用的协议 /etc/inetd.conf 服务配置文件 /etc/services 将网络服务名转换为端口号/协议。 / etc/syslogd.conf syslogd 守护进程的配置文件。 ~/.bash_profile 由 bash 登录 shell 引用 /etc/profile 之后引用。
Shell实例
#! /bin/bash # Bring down all unneeded services that are still running case "$1" in start) ;; *) echo "Usage: $0 {start}" exit 1 esac for i in /var/lock/subsys/* ; do # Check if the script is there. [ -f "$i" ] || continue # Get the subsystem name. subsys=${i#/var/lock/subsys/} # Networking could be needed for NFS root. [ $subsys = network ] && continue # Bring the subsystem down. if [ -f /etc/init.d/$subsys.init ]; then /etc/init.d/$subsys.init stop elif [ -f /etc/init.d/$subsys ]; then /etc/init.d/$subsys stop else rm -f "$i" fi done
Shell编程
shell是用户和Linux操作系统之间的接口,它是 命令语言、命令解释程序及程序设计语言的统 称。用户在提示符下输入的命令都由shell先加 以解释,然后再传给linux核心。Shell的另一个 重要特性是它自身就是一个解释型的程序设计 语言,shell程序设计语言支持函数、变量、数 组和程序控制结构等。Linux中有多种shell,如 ash、bash、csh等,其中默认的是bash 。 在shell程序中,如果以“#!”开头,则“#!”后面所 跟的字符串就是所使用的外壳的绝对路径名, 第一行表明在此程序中我们使用的是bash外 壳。
Hale Waihona Puke Shell变量# count=5 #echo $count $HOME 用户自己的目录。 $PATH 执行命令时所搜寻的目录。 $PS1 在外壳命令行的提示符。 $PS2 当命令尚未打完时,外壳要求再输入时的提示符 $# 存储外壳程序中命令行参数的个数。 $? 存储上一个执行命令的返回值。 $0 存储外壳程序的程序名。 $* 存储外壳程序的所有参数。 $$ 存储外壳程序的P I D。 $! 存储上一个后台执行命令的P I D。
uClinux环境
运行uClinux的硬件平台主要包括如下几个部 分:cpu(ARMv4指令集兼容)、uart、memory controller、定时器、flash存储器,sdram存储 器,中断控制器和DMA。 为了在PC上编译得到运行于目标CPU上的操作 系统内核,还必须安装一个合适的交叉编译 器。Gcc 提供了现成的针对MIPS、ARM、 M68K、Sharc、PowerPC的交叉编译器。如果 没有现成的交叉编译器,则需要自行设计。
Gcc
Gcc编译器能将C、C++语言源程序、汇程式化序和目标程序编 译、连接成可执行文件,如果没有给出可执行文件的名字,gcc 将生成一个名为a.out的文件。在Linux系统中,可执行文件没有统 一的后缀,系统从文件的属性来区分可执行文件和不可执行文 件。而gcc则通过后缀来区别输入文件的类别,下面我们来介绍 gcc所遵循的部分约定规则。 .c为后缀的文件,C语言源代码文件; .a为后缀的文件,是由目标文件构成的档案库文件; .C,.cc或.cxx 为后缀的文件,是C++源代码文件; .h为后缀的文件,是程序所包含的头文件; .i 为后缀的文件,是已经预处理过的C源代码文件; .ii为后缀的文件,是已经预处理过的C++源代码文件; .m为后缀的文件,是Objective-C源代码文件; .o为后缀的文件,是编译后的目标文件; .s为后缀的文件,是汇编语言源代码文件; .S为后缀的文件,是经过预编译的汇编语言源代码文件。
Gcc
Linux系统下的Gcc(GNU C Compiler)是GNU推出的 功能强大、性能优越的多平台编译器,是GNU的代 表作品之一。gcc是可以在多种硬体平台上编译出 可执行程序的超级编译器,其执行效率与一般的 编译器相比平均效率要高20%~30%。 虽然我们称Gcc是C语言的编译器,但使用gcc由C 语言源代码文件生成可执行文件的过程不仅仅是 编译的过程,而是要经历四个相互关联的步骤∶ 预处理(也称预编译,Preprocessing)、编译 (Compilation)、汇编(Assembly)和连接(Linking)。
将文件保存或退出vi,也可以设置编辑环境,如 寻找字符串、列出行号……等。
Vi命令行模式功能键
[i]键 ,进入插入模式 [a]键,进入插入模式后,是从目前光标所在位置的下一个位置开始输入文字; [0]键进入 插入模式后,是插入新的一行,从行首开始输入文字。 [ESC]键 ,进入命令模式 「dd」:删除光标所在行。 「#dd」:从光标所在行开始删除#行 「yy」:复制光标所在行到缓冲区。 「#yy」:例如,「6yy」表示拷贝从光标所在的该行"往下数"6行文字。 「p」:将缓冲区内的字符贴到光标所在位置。注意:所有与“y”有关的复制命令都必须 与“p”配合才能完成复制与粘贴功能。 「u」:如果您误执行一个命令,可以马上按下「u」,回到上一个操作。按多次"u"可 以执行多次回复。 : w filename (输入 「w filename」将文章以指定的文件名filename保存) : wq (输入「wq」,存盘并退出vi) : q! (输入q!, 不存盘强制退出vi) 按「ctrl」+「b」:屏幕往"后"移动一页。 按「ctrl」+「f」:屏幕往“前”移动一页。 按「G」:移动到文章的最后。 按「$」:移动到光标所在行的“行尾”。
uClinux 平台开发入门
Gavin 武汉东讯科技有限公司
提纲
Linux介绍和启动配置 Linux命令 SHELL编程 Vi编辑器 GCC和交叉编译器 Makefile的工作原理和工作方式 Makefile的语法以及实例讲解 SVN 使用
相关主题