苏嵌实训——day1

一、概述

安排

  1. 嵌入式Linux操作的使用(嵌入式?Linux命令)
  2. 嵌入式Linux开发工具(gcc、gdb、make、shell、cmake、git)重要在C语言基础
  3. 嵌入式C语言开发(1w+;多练;接受快慢无所谓;侧重实战;笔试题,目标:全部通过)
  4. 嵌入式Linux C系统编程(最重要最难:操作系统原理,文件、进程、线程、网络原理、网络编程、数据库)
  5. 嵌入式数据结构(栈、队列、链表、树、排序、图)
  6. 嵌入式C++开发(面向对象的思想、C++11、14、17、20,设计模式,很难,但是大公司都需要,大厂瞄准C++工程师)
  7. 嵌入式GUI(Qt)
  8. 嵌入式硬件开发(51、stm32,cortex-A7/A9) 三个芯片
  9. 嵌入式系统移植(u-boot、内核、文件系统)
  10. 嵌入式底层设备驱动开发(字符设备、框架、网络设备)
  11. 嵌入式操作系统开发
  12. 嵌入式前沿技术(嵌入式人工智能)
  13. 嵌入式IC开发(fpga)

保底,做完4个项目

时间安排:

1.12-1.26:1,2,3

2.10-3.15:3,4,5项目

4-6:双休+晚上6,7项目

7-8: 8,9,10项目

9-10:12,13项目

学习要求:
1.认真听课,记录自己的重点知识,最终形成自己的知识体系
2.讲练结合,要多敲代码,给时间一定要写
3.有问题,一定要问,可以打断,不要累积自己的知识盲区

学习成果

  • 知识积累
  • 能力提升(项目,介绍自己的能力)

二、Linux

一、什么是嵌入式
以计算机应用为核心,软硬件可裁减的专用计算机系统,对功耗,体积,成本,可靠性有要求的系统
unix:
linux:安卓,deepin,centos,ubuntu
windows:
在这里插入图片描述

三、linux的系统的层次

应用层
APP,makefile,命令,脚本
内核层
内核层的五大功能:
文件管理:通过文件系统对文件组织管理
内存管理:内存的申请和释放工作
网络管理:通过网络协议进行网络数据包的收发
进程管理:程序的一次执行过程,程序的创建,销毁,调度等(多任务 == 多进程)
设备管理:设备驱动的管理
硬件层
LED,Camera,触摸屏,网卡,硬盘等

linux系统:分时,多任务,多用户的操作系统
在这里插入图片描述
cpu:
L1CATCH:1700GB/s
L2CATCH:200GB/s
内存:
ddr3:内存大概10GB/s
ddr4:内存大概60GB/s
硬盘:机械硬盘(HDD):100MS/s
固态硬盘SATA(SSD):450MS/s
nvme(SSD):2000MS/s

四、linux目录结构

ctrl + shift + '+/-'调节字体大小
bin:存储一些可执行的二进制的命令
dev:设备目录
etc:存储linux操作系统的环境变量
mnt:挂载目录
sbin:超级二进制文件
home:家目录(用户目录)
root:存放管理员的一些配置文件
lib:存放支持linux操作系统运行的lib库

五、命令行提示符的介绍

jsetc          @         linux   :       /dev                 $
   |               |            |                   |                    |
用户名   分隔符    主机名   当前所在的路径    权限
$普通用户
#管理员权限
~:用户目录的路径 (/home/jsetc)

六、linux的基本命令

-:后面一半跟属性
*:所有

6.1 ls命令

ls:显示当前所有的目录和文件
ls -a:显示所有的隐藏目录和文件
ls -l:显示当前目录和文件的所有属性
ls -al:(ll)显示所有隐藏文件或者目录的属性

6.2 chmod命令

chmod:修改文件或者目录的权限
用法:chmod 权限 目录/文件
举例:chmod 775 jsetc

d   rwx    rwx    r-x      6    jsetc   jsetc     4096  1月  10 15:47 jsetc/
|    |      |      |       
|    |      |      |
|    |      |      |
|    |      |      |
|    |      |      |
|    |      |      |
|    |      |      |
|    |      |      |
|    |      |      |
|    |      |      |
|    |      |   其它用户
|    |    同组用户的其它用户
|  当前用户
文件的属性

chmod:修改文件或者目录的权限
用法:chmod 权限 目录/文件
举例:chmod 775 jsetc

u:usr 当前用户权限
g:group 同组用户其他用户权限
o:other:其它用户权限
a:all:所有用户
chmod o+x 文件名  //给其它用户加上可执行权限

文件的属性:
bsp-lcd
b:块设备文件
s:套接字文件
p:管道文件
-:普通文件
l:软链接文件
c:字符设备
d:目录文件

Linux文件属性详解

6.3 cd 命令

cd:(change dir)
cd 路径 // 进入指定的目录
路径:
绝对路径:从根目录开始的路径
相对路径:从当前目录开始的路径(逻辑路径)
. :当前路径
.. :上一级路径
../..:上一级路径的上一级路径

6.4 pwd 命令

显示当前用户所在的路径(绝对路径)

6.5 mkdir 命令

mkdir:(make dir):创建目录
用法:mkdir 目录名
		  mkdir  目录1 目录2
		  -p:递归创建多级目录

6.6 sudo命令

含义:以管理员权限运行

6.7 touch命令

功能:创建文件
touch:文件名

6.8 rm命令

功能:删除文件或者目录
rm -r :递归强制删除

6.9 cp命令

功能:复制文件或者目录
用法:cp 源路径 目的路径
cp 源路径 目的路径 -r //复制的是一个目录

6.10 mv命令

功能:移动一个文件或者目录(重命名,剪切)
用法: mv 原路径 目的路径

6.11 cat命令

功能:查看文件中的内容
用法:cat文件
cat -n 文件名 //显示行号

6.12 su命令

功能:切换用户
sudo su 用户名
举例: 普通用户—>管理员 sudo su root
管理员 ---->普通用户 su jsetc

6.13 clear命令

功能:清屏(快捷键ctrl + l)

6.14 tab按键补齐

6.15 find 文件查找

find 路径(默认当前路径) -name

七、vim编辑器

vim编译器的三种模式

  • 命令行模式:按ESC
    yy:赋值
    p:粘贴
    nyy:复制n行
    u:撤销
    dd:剪切
    ndd:剪切n行
    gg:跳转到首行
    G:跳转到尾行
    ngg:跳转到n行
    shift + zz(或者ZZ):跳出并保存
  • 插入模式:在命令行模式下,按 i 进入插入模式
  • 底行模式:在命令行模式下,输入:shift + :
    w:保存
    q: 退出
    wq:保存并推出
    q!:不保存退出
    set nu:显示行号
    set nonu:隐藏行号
    vsp 文件名 :左右分屏
    sp 文件名:上下分屏

八、gcc编译器

下载命令: sudo apt-get install gcc
编译第一个代码:
gcc hello.c -o hello //-o:更改可执行文件名

8.1 gcc编译过程

预处理(-E):头文件的展开,宏的替换,条件编译等

gcc -E hello.c -o hello.i

编译:(-S):进行语法检查,如果代码有语法错误,会报错,编译结束,生成汇编文件

gcc -S hello.i -o hello.s

汇编(-c):将汇编文件转换成二进制文件,还没有链接到库,不可执行

gcc -c hello.s -o hello.o

链接:将所有的.o文件链接生成可执行文件

gcc hello.o -o hello

九、安装软件

(1)ubuntu deb
(2)redhat rpm

sl      _     3.03 -   17        build2_amd64    .deb
|              |       |              |
软件名       主版本   修订版本      架构(64位)

离线安装:dpkg:在安装软件的时候,如果有依赖,这些依赖程序不会被安装

sudo dpkg -i 软件包名    //安装软件
在终端上输入软件的名字    //执行软件
sudo dpkg -r 软件名     //卸载软件(会保留配置文件)
sudo dpkg -P 软件名     //完全卸载 
sudo dpkg -l 软件名      //查看软件的安装状态
sudo dpkg -L 软件名    //列举这个软件相关的所有路径
sudo dpkg -s sl       //查看软件的安装状态(更详细)

apt-get,在线安装如果有依赖程序,这些依赖的程序会被一并安装上去
选择软件源:

sudo apt-get update   //更新软件源
sudo apt-get install -f //更新软件依赖
sudo apt-get install gcc
sudo apt-get install net-tools
sudo apt-get install oneko
sudo apt-get install cowsay
sudo apt-get install cmatrix
sudo apt-get install frozen-bubble

sudo apt-get remove 软件名
sudo apt-get download 软件名
sudo apt-get clean   //清除目录下/var/cache/apt/archives的安装包

补充

  • 压缩的对象是文件(目录不能被压缩)
    ubuntu上的压缩文件的格式 .gz .bz2 .xz
gzip/gunzip     ------>xxx.gz
bzip2/bunzip2   ------>xxx.bz2
xz/unxz         ------->xxx.xz
压缩前:
    -rwxrw-r-- 1 jsetc jsetc 6848 1月  14 16:09 seqlist.c*
gzip:
    -rwxrw-r-- 1 jsetc jsetc 1845 1月  14 16:09 seqlist.c.gz*
bzip2:
    -rwxrw-r-- 1 jsetc jsetc 1934 1月  14 16:09 seqlist.c.bz2*
xz:
    -rwxrw-r-- 1 jsetc jsetc 1800 1月  14 16:09 seqlist.c.xz*

压缩率: xz > gzip >bzip2
压缩速率:xz < gzip < bzip2
使用方法:
gzip/gunzip 文件名
注意:压缩和解压缩文件会被替换

  • 打包(归档)
    归档的对象是一个目录
    将一个目录归档成一个文件,或者将这个归档后的文件重新释放变成一个目录
tar 命令
-c:创建归档文件
-x:释放归档文件
-z:压缩成gzip格式
-j:压缩成bzip2格式
-J:压缩成xz格式
-v:显示过程
-f:后跟的是文件的名字

1.归档

tar -cf hello.tar hello    //将hello的目录打包成hello.tar文件 

tar -xf hello.tar     //将hello.tar拆成hello目录

2.打包并压缩成gzip格式

tar -czf tongxunlu.tar.gz tongxunlu

3.打包并压缩成bzip2格式

tar -cjf tongxunlu.tar.gz tongxunlu

4.打包并压缩成xz格式

tar -cJf tongxunlu.tar.gz tongxunlu

5.拆包(解压缩)

tar -xvf 压缩包   //万能拆包命令
tar -xvf 压缩包 -C 路径

作业

  1. 将今天所有的命令至少敲2遍
  2. 自学一些文件相关的命令
    head,tail,wc file,more/less,grep,umask

学习计划总结日报表

课程名称Linux
本日计划学习嵌入式C,复习指针
本日学习完成情况(详细说明本日任务是否按计划完成,开发的代码量)完成指定计划
本日学习中出现的问题汇总指针是什么
本日未解决问题bsp-lcd还是不清楚
本日学习收获知道分时工作,了解chmod的重新理解,指针的二次认识
自我评价(是否按开发规范完成既定任务,需要改进的地方,与他人合作效果等)良好
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

周末不下雨

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

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

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

打赏作者

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

抵扣说明:

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

余额充值