1.嵌入式开发 VS 传统开发
(是否有无操作系统)
什么是嵌入式开发?
嵌入式开发就是指在嵌入式操作系统下进行开发,包括在系统化设计指导下的硬件和软件以及综合研发。(在已有的硬件上移植操作系统)
系统软件:驱动、BSP、内核
传统开发的缺点:软硬件耦合度高 嵌入式开发的缺点:增加成本
移植操作系统的好处以及为什么:解决了软硬件的耦合度,提高代码的移植性
传统开发:在软件平台上,是根据用户要求建造出软件系统或者系统中的软件部分的过程。
什么是操作系统?
操作系统(operating system,简称OS)是管理计算机硬件与软件资源的计算机程序。操作系统需要处理如管理与配置内存、决定系统资源供需的优先次序、控制输入设备与输出设备、操作网络与管理文件系统等基本事务。操作系统也提供一个让用户与系统交互的操作界面。
操作系统的主要功能有:
1、进程管理,其工作主要是进程调度,在单用户单任务的情况下,处理器仅为一个用户的一个任务所独占, 进程管理的工作十分简单。但在多道程序或多用户的情况 下,组织多个作业或任务时,就要解决处理器的调度、 分配和回收等问题 。
2、存储管理分为几种功能:存储分配、存储共享、存储保护 、存储扩张。
3、设备管理分有以下功能:设备分配、设备传输控制 、设备独立性。
4、文件管理:文件存储空间的管理、目录管理 、文件操作管理、文件保护。
5、作业管理是负责处理用户提交的任何要求。
常用的操作系统:核心是内核
1、DOS操作系统 2、Windows 3、UNIX 4、Linux 5、其他操作系统等
嵌入式开发学习路线:
1、嵌入式Linux安装及使用;(命令)
2、嵌入式Linux开发工具;(gcc、gdb、make、Git、shell、cmake)
3、嵌入式C语言开发;
4、嵌入式Linux C开发;文件io\多任务、网络、数据库);
5、嵌入式C++开发(嵌入式服务器、中间件)
6、嵌入式GUI开发(Qt)
7、嵌入式硬件基础;(51、stm32)
8、嵌入式硬件开发;(cortex-A)
9、嵌入式系统移植;(BSP:u-boot、实时操作系统)
10、嵌入式Linux内核开发;(内存管理)
11、嵌入式底层驱动开发;
12、嵌入式操作系统开发;
2、嵌入式系统的组成
嵌入式系统CPU的选择:
ARM体系结构:
1.crotex-M —— MCU(stm32)
2.cortex-R —— 实时性
3.crotex-A —— MPU
实时操作系统:rt-thread、liteos、oneNET
“中央处理器(CPU,Central Processing Unit)是一块超大规模的集成电路,是一台计算机的运算核心和控制核心,它的功能主要是解释计算机指令,以及处理计算机软件中的数据。”
虚拟机的作业:通过软件方法模拟一台PC机
虚拟机的种类:
vmware:商业软件 windows
virtualPC:微软
virtualBOX:支持Linux
3、Linux基本命令
sudo:申请权限做操作
clear:清屏
reset:复位
adduser:创建用户
deluser:删除用户(删除进程 kill -9 进程数)
kill:杀死进程
ps:查看进程
ps -a:显示所有终端下运行的程序
passwd:更改用户密码
ls:查看当前文件下的目录名(文件夹)
ls -l:每个文件的详细信息
ls -a:查看隐藏文件(ls -al)
touch:创建一个空文件
chmod:修改权限
例:chmod u+x 文件名(u当前文件)
chmod g+r 文件名(g同一组)
chmod o+x 文件名 (o其他用户)
chmod a+x 文件名 (a所有用户)
chmod 655 文件名()
cat:查看文件内容
rm:删除文件 rm -f(强制删除)
rm -r 目录名:删除目录(rmdir只能删除空目录)
gedit:编辑文件
gcc:编译
gcc hello.c -o hello(改名)
./ :运行可执行文件
mkdir:创建目录文件(mkdir -p kk\dd\nn)
pwd:查看路径
cp:拷贝(拷贝目录加 -r)
mv:剪切、重命名
file:查看文件属性
ifconfig:查看当前网卡上的IP
文件管理命令:
分类:-普通文件、d目录文件、c/b设备文件、l链接文件
三小类:-s共享文件、-f堆栈文件、-p管道文件
d rwx r-x r-x:
r:可读 4 w:可写 2 x:可执行 1
rwx:当前用户对文件的权限
r-x:与当前用户在同一组
r-x:其他用户
根目录分类:
bin 系统明亮
sbin 超级用户命令
dev 设备文件
etc 配置文件
lib 库文件
root root用户工作目录
home 普通用户工作目录
usr 第三方应用软件默认安装目录