很快这一阶段又过去去了,让我们来总结一下这一阶段的知识吧!
一.嵌入式操作系统
1.什么是嵌入式操作系统
以应用为中心,以计算机技术为基础,并且软硬件可裁剪,适用于对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。
2.嵌入式的应用范围
智能家居,智能安防,医疗,工业,交通物流,汽车电子等
二.linux操作系统的使用
1.linux命令
ps 查看进程
shutdown -h now 关机
reboot 重启
free 查看当前系统内存的使用情况
df 查看文件系统的磁盘空间占用情况
du 统计目录
fdisk 查看磁盘分区
vim编译器
查找(命令模式下)
/<要查找的字符> 向下查找要查找的字符
?<要查找的字符> 向上查找要查找的字符
替换
s/string1/string2/gc
chmod 改变文件的访问权限
chown 修改文件的所有者和组别
grep 在指定文件中搜索特定内容,并输出
常用的特殊符号
重定向符号 > 文件不存在,则新建,文件存在,覆盖原文件中的内容
追加重定向符号 >> 文件不存在则新建,文件存在,则追加在文件的末尾
通配符
ln 创建链接文件
find 在指定的目录下搜索文件
压缩打包
gzip 、bzip2 压缩 后加-d 解压
tar 进行打包和解包
diff 文件比较命令
修改PATH
export PATH=$PATH:/home/linux
2.linux 网络配置
测试虚拟机是否有网 ping
查看ip地址 ifconfig
3.网络基础知识
ip 地址
A类:1字节网络地址+3个字节的主机地址
1.0.0.0 -----126.255.255.254
子网掩码
作用:判断主机发送的数据包是向外网发送还是向内网发送
网关
实质是一个网络通向其他网络的ip地址
DNS (域名解析服务器)
4.软件管理
apt 高级软件包管理工具
sudo apt-get install
sudo app-get update 下载更新软件包列表
5.linux 用户管理
/etc/passwd
/etc/shawod/
/etc/group/
2.管理命令(必须用root)
修改密码 passwd
修改用户的属性 usermod
删除用户 deluser
三.shell编程
1.变量
命名规范:
.由数字,字母,下划线组成,首字母不能为数字
.不能为关键字和保留字
.尽量见名知意,尽量大写
2.访问shell变量
3.环境变量
echo $PATH
4.shell程序
expr 算数命令
test 测试命令
测试字符串
s1 = s2 测试两个字符串的内容是否完全一样
s1!= s2 测试两个字符串的内容是否有差异
-z s1 测试s1字符串的长度是否为0
-n s1 测试s1字符串的长度是否不为0
测试整数
文件属性
5.shell语句
1.顺序
read -p 输入
echo 输出
2.选择
if (条件为真)
then
(语句)
fi
双分支
if (条件为真)
then
语句
else
语句
fi
多分支
多分支
if (条件1为真)
then
语句1
elif (条件2为真)
then
语句2
elif (条件3为真)
then
语句3
else
语句n+1
fi
case
case 字符串变量 in
1|3|5|7)
语句1
;;
2|4|6|8)
语句2
;;
esac
3.循环
for
//1
for I in 1 2 3
do
语句
done
//2
for I in {1..10}
do
语句
done
whlie
while [条件为真]
do
语句
done
实例:
shell编程实现1到100 求和
#!/bin/bash
for I in {1..100}
do
SUM=`expr $SUM + $I`
done
echo "$SUM"
shell编程实现乘法口诀表
#!/bin/bash
I=1
while [ $I -le 9 ]
do
J=1
while [ $J -le $I ]
do
RES=`expr $I \* $J`
echo -n " $I*$J=$RES "
J=`expr $J + 1`
done
echo ""
I=`expr $I + 1`
done
4.函数
function 函数名()
{
函数体
}
案例:
/*命令下无参数,将该目录下的文件复制到backup中去
若命令下有一个参数,查找该文件是否在该文件夹中*/
if [ ! -d $HOME/backup ] //判断$HOME/backup 创建
then
mkdir $HOME/backup
fi
flist=`ls` //将ls的运行结果赋值给flist
for file in $flist //遍历ls的结果
do
if [ $# = 1 ] //若命令行下有1个参数
then
if [ $1 = $file ] //判断你传入的参数在该路径下若存在
then
echo "$file found";exit
fi
else //若命令下无参数
cp $file $HOME/backup
echo "$file copied"
fi
done
四.结构体
1.创建及访问
struct student
{
char name[20];
int height;
float scores[3];
};
访问
//输入
printf("请输入姓名,身高,三门成绩\n");
scanf("%s%d",s1.name,&s1.height);
for(i=0;iM;i++)
{
scanf("%f",&s1.scores[i]);
}
//输出:
printf("%s %d ",s1.name,s1.height);
for(i=0;iM;i++)
{
printf("%5.0f",s1.scores[i]); }
printf("\n");
return 0;
}
2.结构体指针
struct student * ps=NULL;
ps=&s1; //ps指向s1
访问
for(i=0;iM;i++)
{
printf("%5.0f",ps->scores[i]);
}
printf("\n");
3.分配空间和释放空间
分配
void *malloc(size_t size);
void free(void *ptr);
4.结构体和堆区联系
五.自定义头文件
1.引入和写法
#include “ ”
2.gcc
3.makeflie
嵌套makefile
六.函数指针
1.定义及访问
访问
定义一个长度为4的数组,该数组中的每个元素是个函数的指针
2.函数取别名
typedef int (*PFUN) (int,int );
七.存储类型
1.register 寄存器
2.auto(默认)
3.extern )(外部的)
4.static 修饰全局变量(隐藏)
static局部变量:延长变量的生命周期
5.共用体
6.大小端
7.枚举
8.字节对齐
结构体的对齐方式:成员当中最大的那个
9.位域
10.递归