嵌入式开发

main函数:
我们经常用的main函数都是不带参数的。因此main 后的括号都是空括号。实际上,main函数可以带参数,这个参数可以认为是 main函数的形式参数。C语言规定main函数的参数只能有两个, 习惯上这两个参数写为argc和argv。因此,main函数的函数头可写为: main (argc,argv)C语言还规定argc(第一个形参)必须是整型变量,argv( 第二个形参)必须是指向字符串的指针数组。加上形参说明后,main函数的函数头应写为: main (argc,argv) int argv; char *argv[]; 或写成: main (int argc,char *argv[])   
由于main函数不能被其它函数调用, 因此不可能在程序内部取得实际值。那么,在何处把实参值赋予main函数的形参呢? 实际上,main函数的参数值是从操作系统命令行上获得的。当我们要运行一个可执行文件时,在DOS提示符下键入文件名,再输入实际参数即可把这些实参传送到main的形参中去。   DOS提示符下命令行的一般形式为:

C:>可执行文件名 参数 参数……;

但是应该特别注意的是,main 的两个形参和命令行中的参数在位置上不是一一对应的。因为,main的形参只有二个,而命令行中的参数个数原则上未加限制。argc参数表示了命令行中参数的个数(注意:文件名本身也算一个参数),argc的值是在输入命令行时由系统按实际参数的个数自动赋予的。

嵌入式系统CPU的选择:
ARM体系结构:
crotex-M:MAU(stm32)
crotex-R:实时性
crotex-A:MPU

1、什么是嵌入式技术?
在已有硬件上移植操作系统。
2、嵌入式开发与单片机开发最大区别?
是否有操作系统,

与传统开发区别:
传统开发耦合性高,移植性差,

3、什么样的系统才能作为嵌入式系统?
可移植的系统才能作为嵌入式系统 如:VxWorks; --RT-Thread --ucossii(可以在单片机上):这三个实时性较好
4、什么叫实时性?
规定的时间内完成规定的动作

实时操作系统:RT-Thread
Linux无实时性

嵌入式开发缺点:成本较高 解决方式:将操作系统变小变专
优点:移植性好

C语言之父:丹尼斯里奇 1978-1979
1979:unix操作系统(商业)
开源运动:抵制商业软件(GPL协议)
POSIX:可移植操作系统接口
GNU计划:(GNU is not unix)
1991:Linux操作系统(免费) Linux0.11
(成千上万的人开发Linux内核)

linux发行版:ubantu Redhat

1、虚拟机作用?
通过软件的方法模拟一台PC机
2、虚拟机种类:
wmware(win10):只支持windows版本
virtual box(Linux、macos、win10)
virtual PC
vmware15+ubantu18.04

Linux命令使用:
1、用户管理:普通用户(jsetc)、超级用户(root):su sudo adduser userdel
2、文件、目录管理 ls chmod touch cat rm gcc mkdir cd mv cp pwd
rm -r
3、进程管理:ps kill
4、网络管理
5、设备管理

ls:查看
gedit +文件名.c 写代码

gcc 文件名:编译

./a.out :运行

clear :清屏

pwd:查看当前路径

课程内容及课程目标:
1、嵌入式Linux命令(基本命令。高级。炫酷) 目标:40-45
2、嵌入式Linux文本编辑器 -vim 目标:基本操作。如何配置和安装vim
3、嵌入式Linux的IDE (集成开发环境:vscode、qtcreater、vs2019远程调试) 目标IDE:
4、嵌入式编译器-gcc(编译选项、静态库和动态库的制作) 目标:掌握静态库和动态库的制作

sudo:普通用户权限不够时可以加sudo

su - root :切换用户

adduser 用户名:创建用户

deluser 用户名:删除用户

kill -9 进程号:杀死进程 -9强制

ps:看正在进行的进程 -a 显示所有执行的程序 -e查看所有进程

man 命令:查看命令

ls:查看当前目录下有哪些文件
-l 显示详细信息:第一列:文件类型
-R 查看子目录下的所有文件
-a 查看所有文件 . 开头的文件为隐藏文件
可以组合 例如 -al

r 可读4 w可写2 x可执行1
-rw-r–r-- /可以用数字
最前面文件类型
三个为一组
前三个:当前用户对该文件访问权限
中间三个:与当前用户所在同一组的用户
最后三个:其它用户

chmod :改变文件属性
例:chmod u+x 文件名
u 用户自己
g 组
o 其它other
a 所有

Linux一点哲学原理:一切皆为文件
分类:
普通文件(-)
目录文件(d)
设备文件(c/b)(字符设备/块设备)
链接文件(l)

临时文件:(重启后没了 )
1、管道文件(-p)
2、堆栈文件(-f)
3、共享文件(-s)

touch 创建一个新的文件

cat :查看文件内容
-n:显示行号

rm 删除文件
-f 强制删除

rmdir:删除空目录

rm -r 目录:删除目录

gedit:编辑

gcc:编译 -o

mkdir :创建目录

file:查看文件属性

-p 根据写的路径创建 例 1211/kk/mm/nn

cd 进入目录
cd … 返回上一级路径

cd / :
/根目录
~:当前用户的工作目录
. :当前目录
bin :普通用户命令(系统命令)
sbin:管理员命令(超级用户命令)
dev:存放系统的设备文件
etc:系统的所有配置文件
lib:系统运行的库文件
usr: 存放第三方软件及工具(头文件、库)
home :普通用户的工作目录
root :管路员(超级用户)的工作目录
问题:根目录下的每个子目录的作用:
proc sys mnt boot

绝对路径和相对路径
绝对路径:从根目录开始
相对路径:不从根目录开始

cp 要拷贝文件 目标目录:拷贝文件
cp -r 要拷贝目录 目标目录:拷贝目录

mv 要剪切文件 目标目录 :剪切文件
mv -r 要剪切目录 目标目录:剪切目录
可以用来改名字
例:mv hello.c demo.c

检查是否联网:ping ip地址

ifconfig :查看ip
ifconfig 网卡名字 ip:修改ip
xshell 软件 例 ssh root@192.168.12.13

ens33:网卡
ifconfig ens33 192.168.204.130:设置IP地址
ifconfig ens33 down :关网卡
ifconfig ens33 up :开网卡
ifup ens33:启动网卡
ifdown ens33:禁用网卡

远程链接:ssh
先要安装 apt-get install sshssh

apt-get使用:是ubantu系统中的包管理工具,可以用来安装,卸载包,也可以用来升级包
使用apt-get命令先要设置软件源更新
语法格式:apt-get[options]command

update:是更新软件列表
upgrade:是更新软件

高阶命令:
find:
find . -name “.c" | wc -l :显示有多少.c文件
find . -name "
.c” | xargs wc -l :显示.c文件有多少行
find (. )-name 文件名 :查找文件

grep:过滤
cat .c文件名 | grep -n 词:在.c文件中查看有这个词的语句 -n 显示行号

ls | grep 词:过滤出所要找的词

which和whereis
查找一个应用程序(二进制文件,命令也是程序)
which只显示二进制文件的路径
whereis显示二进制文件,与其源码或者man手册位置

uname -a :显示整个系统的信息

压缩 和解压缩
在这里插入图片描述

请添加图片描述

diff:比较两个文件的不同之处

命令总结:
用户管理:su sudo adduser deluser ps kill
文件管理:ls(-l -a -R) chmod cat touch gedit gcc rm tar grep which/whereis mkdir cd pwd rmdir cp mv
网络:ifconfig ping
其它:clear reset reboot
shell :grep awk sed

文本编辑器(单个文件操作):gedit vi/vim

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

&*Savior

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值