嵌入式开发基础总结

学习目标

1.了解嵌入式开发

2.开发环境的搭建

3.Linux操作系统的基本操作

一、了解嵌入式开发

以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。

1.嵌入式可以干什么?

嵌入式技术主要用于各种电子产品的研发和生产。

岗位:单片机工程师、驱动工程师、嵌入式Linux工程师等。

2.运用嵌入式的电子产品有哪些?

带操作系统:嵌入式Linux(手机、平板、车载系统等)

无操作系统:微处理器开发(MCU:单片机;STM32;智能手环、小型无人机、工控行业)

3.本次实训项目的功能与需求分析

功能分析:

嵌入式智能家居系统:LCD屏编程、触摸屏编程、多线程编程

需求分析:

硬件开发平台:6818开发板、LCD显示、触摸屏、

软件开发平台:C语言编辑器、代码编译器(gcc)、VM虚拟机、Linux系统包(ubuntu)

二、开发环境搭建

虚拟机安装步骤:

第一步:双击点击 VMware-workstation-full-16.2.1-17801498.exe (安装点击这个、卸载也是点击这个)

第二步:跳出安装向导界面后点击下一步

第三步:勾选许可协议,点击下一步

第四步:安装位置可根据自己需求进行修改(不修改也可以),再点击下一步

第五步:如果不想经常出现更新体验提示,可一个去掉下图中的两个勾选,再点击下一步

第六步:勾选桌面,点击下一步

第七步:点击安装

第八步:输入许可证密钥激活虚拟机

第九步:点击完成

如何使用虚拟机加载我们已经压缩好的ubuntu系统 第一步:    以管理员身份 打开虚拟机----》选择《打开虚拟机》---》选择刚才解压出来的 文件夹,找到 Ubuntu16.04.vmx并打开

第二步:点击“开启此虚拟机”

第三步:点击“我已复制该虚拟机”

第四步:登入Ubuntu账号

三、Ubuntu的使用

Linux系统主要以命令行进行人机交互

1、命令行在哪里输入?

在命令终端中输入

打开命令终端:
    方法一:Ctrl + Alt + T
    方法二:右键———>open terminal

分屏打开多个终端:Ctrl + Shift + T

全屏终端:F11

终端字体放大:Ctrl + Shift + '+'
终端字体放小:Ctrl + '-'

2、命令提示符    
打开终端就会默认显示一个命令行。

gec        @        ubuntu      :       ~         $ 
用户名    分隔符      主机名    分隔符   家目录    普通用户权限

普通权限和管理员权限切换

gec@ubuntu:~$ sudo -s

 [sudo] password for gec:   //密码为123456,  

root@ubuntu:~# su gec      //root表示管理员用户名,#表示当前处于管理员权限

 gec@ubuntu:~$  

四、windows跟Linux的目录架构
1、Windows系统
Windows系统中的目录也就是文件夹,文件夹是一个容器,文件夹内的内容是包含与被包含的关系,里面的内容永远小于这个文件夹的大小。
在windows系统中有几个跟目录?
可以有多个根目录,一个磁盘就是一个跟,用“\”表示。

2、Linux系统
Linux系统的目录架构是一个树,目录与目录之间是索引关系
在Linux系统中有几个跟目录?
有且只有一个根目录,用“/”表示。根目录是所有文件的起源。

                                                linux系统的目录结构

相对路径:从当前路径开始到目标路径。
绝对路径:从根目录开始到目标路径。

哪个方便?
目标路径离哪个近,就哪个方便。

windows:
    C:\Windows\System
    
linux:
    /home/gec  ---绝对路径,只有第一个(最前面) / 代表根目录,后面的/都是表示分隔符

/  表示根目录
~  表示家目录
.  表示当前目录
.. 表示上一级


五、Linux基本命令
1、修改目录  
命令:cd
用法:cd  要切换的目录名
cd  /               去根目录
cd  ~               去家目录
cd                  去家目录
cd  /home/gec       去家目录
cd  ..              去上一级目录
cd  .               去当前目录
cd  -               去上次所在的目录

2、列出目录下内容
命令:ls
用法:ls             --->列出当前所在目录的文件信息
      ls  目标目录名  ---> 列出目标目录的文件信息
      
ls -l   --->以详细的方式列出文件信息
ls -a   --->显示所有文件,包括隐藏文件
ls -la  --->以详细的方式列出所有文件,包括隐藏文件

   d             rwx                  r-x                   r-x         2 gec  gec     4096 Jun  5 17:10 Desktop

 文件类型   所有者权限   所有者组权限   其他组权限

前面十个字符:
第一个字符表示文件类型:-:普通文件   d:目录文件
后面九个字符每三个为一组,由r、w、x、-组成
r:可读  权限值4    w:可写  权限值2  x:可执行 权限值1   -:无权限  权限值0

3、创建文件  touch/mkdir
1)创建普通文件
命令:touch
用法:touch  要创建的文件的路径名
touch 1.txt              --->在当前路径下创建1.txt文件
touch ~/Desktop/2.txt    --->在~/Desktop下创建2.txt文件

2)创建目录
命令:mkdir
用法:mkdir  要创建的目录的路径名
mkdir demo              --->在当前路径下创建demo目录
mkdir ~/Desktop/test    --->在~/Desktop下创建test目录

4、删除
命令:rm
1)删除普通文件
用法:rm  要删除的文件名
rm 1.txt              --->删除当前目录下的1.txt文件
rm ~/Desktop/2.txt    --->删除~/Desktop下的2.txt文件

2)删除目录
用法:rm  要删除的目录名  -rf  
                        //-r:递归处理,将指定目录下的所有文件和子目录一并处理
                        //-f:强制删除文件
rm demo -rf           --->删除当前目录下的demo目录及其下面的所有文件和目录

sudo  rm  /* -rf

5、复制
命令:cp
1)复制普通文件
用法:cp  要复制的文件名  目标路径
cp 1.txt  ~/Desktop/      --->将当前目录的1.txt复制到~/Desktop下

 2)复制目录
 用法:cp  要复制的目录名  目录路径  -r
 cp demo  ~/Desktop/ -r   --->将当前目录下的demo目录复制到~/Desktop下 
6、移动&重命名
命令:mv
1)移动
用法:mv  要移动的文件或目录   目标路径
mv 1.txt ~/Desktop/      --->将当前目录的1.txt移动到~/Desktop下  mv demo ~/Desktop/       --->将当前目录下的demo目录移动到~/Desktop下 
2)重命名
用法:mv  文件1  文件2  --->将文件1重命名为文件2
mv 1.txt  2.txt   --->将当前目录下的1.txt重命名为2.txt

练习:在家目录中创建一个demo目录和一个test目录,再在demo目录中创建一个a.c文件,再将a.c文件复制到test目录下,再将test目录移动到demo目录下,再删除demo目录。

- find : 查找
find /usr -name "*.h" ==> 在/usr中查找以.h结尾的文件
- cat : 显示文件内容
cat file.txt ==> 显示文本文件内容
cat -n a.c   ==> 显示文本文件内容(并显示行号)
cat -A a.c   ==> 显示文本文件内容(含不可见字符)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/464168.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

盒子IM开源仿微信聊天程序源码,可以商用

安装教程 1.安装运行环境 安装node:v14.16.0安装jdk:1.8安装maven:3.6.3安装mysql:5.7,密码分别为root/root,运行sql脚本(脚本在im-platfrom的resources/db目录)安装redis:5.0安装minio,命令端口使用9001,并创建一个名为”box-im”的bucket&#xff0c…

力扣59. 螺旋矩阵 II

思路:此题思路就是绕圈遍历,全靠条件处理技巧,重点要清楚的就是循环不变量:左闭右开(即拐弯处的一个数,留给第二行处理) 以下是代码随想录的作者的一张图片,每次for循环,…

新!PCA+DBO+K-means聚类,蜣螂优化算法DBO优化K-means,适合学习,也适合发paper。

PCADBOK-means聚类,蜣螂优化算法DBO优化K-means,适合学习,也适合发paper。 一、 蜣螂优化算法 摘要:受蜣螂滚球、跳舞、觅食、偷窃和繁殖等行为的启发,提出了一种新的基于种群的优化算法(Dung Beetle Optimizer, DBO…

应对磁盘管理挑战:Linux磁盘分区挂载命令实践指南

前言 在今天的技术世界中,Linux已成为广泛使用的操作系统之一,而对于运维人员和开发人员来说,磁盘分区挂载是一个至关重要的任务。正确地管理和配置磁盘分区挂载可以极大地提升系统的性能和可靠性,同时也能确保数据的安全性。 通…

初识Netty网络编程

Netty网络编程 对于高并发的Reactor线程模型,Netty是如何支持的? Netty线程模型是基于Reactor模型实现的,对Reeactor三种模式都有非常好的支持,并做了一定的改进,也非常的灵活,一般情况,在服务端…

【BUG 弹药库】二分模板的优化

文章目录 1. 为什么要优化二分算法?2. 如何去优化原来的二分模板?3. 案例分析 1. 为什么要优化二分算法? ① 平常学习的二分整数的算法模板边界的问题很容易出错,不知道什么时候用 l mid,r mid - 1;或者是…

内网渗透小结

域产生原因 简单来说就是为了安全和方便控制域内主机 一个具有一定规模的企业,每天都可能面临员工入职和离职,因此网络管理部门经常需要对域成员主机进行格式化消除磁盘的文件,然后重装系统及软件,以提供给新员工使用&#xff1…

python--剑指offer--中等--07. 重建二叉树

输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。 例如,给出 前序遍历 preorder [3,9,20,15,7] 中序遍历 inorder [9,3,15,20,7] 返回如下的二叉树: 3/ 9 20 / 15 7 …

Linux 下使用 socket 实现 TCP 客户端

目录 示例代码板级验证更多内容 套接字(socket)是 Linux 下的一种进程间通信机制(socket IPC),它不仅支持同一主机的不同进程间通信,还支持跨网络的不同主机的进程间通信。 socket 允许通过标准的文件描述…

HarmonyOS-鸿蒙系统概述

你了解鸿蒙系统吗? 你看好鸿蒙系统吗? 今年秋季即将推出的HarmonyOS Next 星河版热度空前,一起来了解一下吧。本文将从HarmonyOS 的应用场景、发展历程、架构、开发语言、开发工具、生态建设六个角度聊一聊个人的理解。 1、应用场景 鸿蒙…

C# 打开文件对话框(OpenFileDialog)

OpenFileDialog&#xff1a;可以打开指定后缀名的文件&#xff0c;既能单个打开文件也能批量打开文件 /// <summary>/// 批量打开文档/// 引用&#xff1a;System.Window.Fomrs.OpenFileDialog/// </summary>public void OpenFile(){OpenFileDialog dialog new Op…

Linux中文件和目录管理(创建删除移动复制)

目录 1——一次建立一个或多个目录&#xff1a;mkdir ​2——创建一个空文件&#xff1a;touch 3——移动和重命名&#xff1a;mv 4——复制文件和目录&#xff1a;cp 5—— 删除目录和文件&#xff1a;rmdir和rm 在学习文件与目录的管理的一些命令之前&#xff0c;我们先…

QT5.14.2对象树之魅力 -- 让Qt编程如行云流水

对象编程是现代编程语言中不可或缺的核心理念。在C等编程语言中&#xff0c;对象的生命周期管理一直是开发者头疼的难题。手动管理对象创建和销毁&#xff0c;而一不小心就有可能导致内存泄漏等严重问题。而Qt以其独有的对象树模型&#xff0c;为我们解决了这一烦恼&#xff0c…

并查集(详解+例题)

1、作用 将两个集合合并 询问两个元素是否在一个集合中 2、基本原理 每个集合用一颗树表示。树根的编号就是整个集合的编号。每个节点存储它的父节点&#xff0c;p[x]表示x的父节点。 3、实现 问题1&#xff1a;如何判断树根&#xff1a;if(p[x]x); 问题2&#xff1a;如何求…

WiFi7 MLO技术框架

在2019年7月份&#xff0c;关于WiFi7 MLO的开放式讨论已经基本完成了&#xff0c;关注点集中体现在band steering/balancing和multi band aggregation上面。 英特尔基于开放讨论的基础&#xff0c;提出了MLO的协议技术框架&#xff0c;尽量兼容已有的协议文本&#xff0c;并提…

大数据数据分析-scala、IDEA、jdk之间的搭配关系

Scala主要是一门面向对象编程语言和函数式编程语言。 一、大数据框架&#xff08;处理海量/流式数据&#xff09; - ---以HADOOP 2. x为系列的大数据生态系统处理框架 离线数据分析&#xff0c;分析的数据为N1天数据 -----MapReduce 并行计算框架&#xff0c;分而治之…

C语言基础数据结构——栈和队列

目录 1.栈 1.1栈的选型 1.2 实现代码 2.队列 2.1整体思路 2.2初始化和销毁 2.3出入队列 2.4取队列元素 2.5判断队列是否为空 2.6返回队列中元素个数 2.7 Test 1.栈 栈&#xff1a;一种特殊的线性表&#xff0c;其只允许在固定的一端进行插入和删除元素操作。 进行数…

Docker入门二(应用部署、迁移与备份、DockerFile、docker私有仓库、Docker-Compose)

文章目录 一、应用部署1.MySQL部署2.Redis部署3.Nginx部署 二、迁移与备份1.容器做成镜像2.镜像备份和恢复(打包成压缩包&#xff09; 三、DockerFile0.镜像从哪里来&#xff1f;1.什么是DockerFile2.DockerFile 构建特征3.DockerFile命令描述4.构建一个带vim的centos镜像案例5…

Oracle Primavera Analytics 是什么,与P6的关系?

前言 Oracle Primavera P6 Analytics 是与P6有关的一个相对较新的模块&#xff0c;Primavera 用户社区在很大程度上尚未对其进行探索。 那么它到底有什么作用呢&#xff1f; 通过了解得知它旨在通过深入了解组织的项目组合绩效&#xff0c;帮助高级管理层对其项目组合做出更好…

【开源】SpringBoot框架开发就医保险管理系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 科室档案模块2.2 医生档案模块2.3 预约挂号模块2.4 我的挂号模块 三、系统展示四、核心代码4.1 用户查询全部医生4.2 新增医生4.3 查询科室4.4 新增号源4.5 预约号源 五、免责说明 一、摘要 1.1 项目介绍 基于JAVAVue…