嵌入式开发基础总结

news2024/12/23 13:00:35

学习目标

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   ==> 显示文本文件内容(含不可见字符)

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【C++算法模板】预处理算法:一维前缀和、二维前缀和总结,详解带例题

文章目录 0)概述1)一维前缀和2)二维前缀和 0)概述 因为前缀和这个板子的推导比较简单,因此本博客重点在于知识点归纳而不在于证明 1)一维前缀和 一维数组的前缀和计算公式: s [ i ] ∑ i 1…

SVM-支持向量机实验分析(软硬间隔,线性核,高斯核)

目录 一、前言 二、实验 0. 导入包 1. 支持向量机带来的效果 2. 软硬间隔 3. 非线性支持向量机 4. 核函数变换 线性核 高斯核 对比不同的gamma值对结果的影响 一、前言 学习本文之前要具有SVM支持向量机的理论知识,可以参考支持向量机(Support Vector …

win10 配置 oh-my-posh

win10 配置 oh-my-posh 0. 前置1. 安装1.1. 软件1.2. 字体1.3. 激活1.3.1. Git Bash1.3.2. PowerShell 2. 配置2.1. 效果2.2. 说明2.3. 其他2.3.1. 新版PowerShell2.3.2 conda问题 0. 前置 这个东西毕竟是个,命令行美化工具,所以需要先有一个命令行&…

从MFC迁移到wxWidgets视频教程

犹他州C程序员团队发布了一个关于从MFC迁移到wxWidgets的新视频(需要科学上网),并附带了一个包含详细步骤说明的要点。 希望这对那些希望使其现有的MFC应用程序可移植,或者只是希望切换到维护更活跃的框架的人来说会有所帮助。 附…

NPM 仓库的超集 JSR 来了!

引言 今天在 Deno 博客中看到了一篇文章,介绍了一个叫 JSR 的包管理注册中心,简单尝试了一下觉得还不错,本文将结合原文章和个人体验对 JSR 进行一个详细的介绍。 在现如今的前端开发中,包管理注册中心 (如 npmjs.com) 扮演着至…

2024人工智能四大趋势→

2023年,世人见证了ChatGPT在全球范围的大火。以生成式人工智能为代表的新一代人工智能问世,改变了人工智能(AI)技术与应用的发展轨迹,加速了人与AI的互动进程,是人工智能发展史上的新里程碑。2024年&#x…

NCV8705MTADJTCG稳压器芯片中文资料规格书PDF数据手册引脚图图片价格功能

产品概述: NCV8705 是一款低噪音、低功耗和低泄漏线性电压稳压器。该器件具有卓越的噪音和 PSRR 规格,适用于使用视频接收器、成像传感器、音频处理器或需要外部洁净电源的任何部件的产品。NCV8705 使用创新的自适应接地电流电路 可确保轻负载调节下的超…

2024.4.17周报

目录 摘要 Abstract 文献阅读:耦合时间和非时间序列模型模拟城市洪涝区洪水深度 现有问题 提出方法 创新点 XGBoost和LSTM耦合模型 XGBoost算法 ​编辑 LSTM(长短期记忆网络) 耦合模型 研究实验 数据集 评估指标 研究目的 洪水…

计算机操作系统(四)

存储器管理 计算机的存储层次至少有三层,分别是寄存器、内存、外存。还可以根据具体功能划分为寄存器、高速缓存、内存、磁盘缓存、固定磁盘、可移动存储。 其中,寄存器、高速缓存、内存和磁盘缓存均属于操作系统存储管理的管辖范畴,断电后信息不再存在…

“AI巨浪:ChatGPT等大模型重塑科研与创新的未来!“

AI大模型引领未来智慧科研暨ChatGPT在地学、GIS、气象、农业、生态、环境等领域中的应用 以ChatGPT、LLaMA、Gemini、DALLE、Midjourney、Stable Diffusion、星火大模型、文心一言、千问为代表AI大语言模型带来了新一波人工智能浪潮,可以面向科研选题、思维导图、数…

第十三篇:复习Java面向对象

文章目录 一、面向对象的概念二、类和对象1. 如何定义/使用类2. 定义类的补充注意事项 三、面向对象三大特征1. 封装2. 继承2.1 例子2.2 继承类型2.3 继承的特性2.4 继承中的关键字2.4.1 extend2.4.2 implements2.4.3 super/this2.4.4 final 3. 多态4. 抽象类4.1 抽象类4.2 抽象…

Epuck2机器人固件更新及IP查询

文章目录 前言一、下载固件更新软件包:二、查询机器人在局域网下的IP 前言 前面进行了多机器人编队仿真包括集中式和分布式,最近打算在实物机器人上跑一跑之前的编队算法。但由于Epuck2机器人长时间没使用,故对其进行固件的更新,…

B端能用就行,颜值无所谓?你现在还敢说吗,马上轮到工业HMI

在当前的商业环境下,用户体验和界面设计的重要性越来越受到重视,即使是B端用户也希望能够使用界面美观、易于操作的工业HMI系统。 漂亮的设计不仅可以提高用户的工作效率和满意度,还可以提升产品的竞争力和市场份额。因此,即使是…

Linux - 多线程

1、Linux线程概念 1.1、什么是线程 在一个程序里的一个执行路线就叫做线程(thread)。更准确的定义是:线程是 “一个进程内部的控制序列”一切进程至少都有一个执行线程;线程在进程内部运行,本质是在进程地址空间内运…

『scrapy爬虫』05. 使用管道将数据写入mysql(详细注释步骤)

目录 1. 新建管道类,并启用2. 准备好mysql数据库新建表3. 实现管道写入数据库的代码测试一下 总结 欢迎关注 『scrapy爬虫』 专栏,持续更新中 欢迎关注 『scrapy爬虫』 专栏,持续更新中 如果对mysql和python不熟悉可看专栏【Python之pymysql库学习】 1.…

202206 CSP认证 | 角色授权

角色授权 fine,又是一道acwing上TLE但是平台通过了的,那就酱吧… 直接跟着题目来模拟的…先找到每个用户授予的所有角色,包括用户本身和它所属的用户组。 然后遍历这个角色集合,看是否有操作权限,种类权限以及资源名称…

uniapp样式穿透修改uview的按钮button图标

需求&#xff1a; 想给按钮icon和text改字体颜色&#xff0c;结果发现图标颜色并没有改变 .u-button{width: 300rpx;background-color: aliceblue;color: #aaaa7f;margin-top: 20rpx; }接下来用样式穿透解决 1、首先&#xff0c;给UI组件包裹一层view <view class"t…

【Algorithms 4】算法(第4版)学习笔记 19 - 6.0.4 网络流算法

文章目录 前言参考目录学习笔记1&#xff1a;介绍1.1&#xff1a;最小切分问题1.2&#xff1a;最大流问题1.3&#xff1a;小结2&#xff1a;Ford-Fulkerson 算法&#xff08;FF 算法&#xff09;2.1&#xff1a;介绍2.2&#xff1a;问题3&#xff1a;最大流量 - 最小切分定理 m…

QT----基于QT的人脸考勤系统

目录 1 编译opencv库1.1 下载源代码1.2 qt编译opencv1.3 执行Cmake一直卡着data: Download: face_landmark_model.dat 2 编译SeetaFace2代码2.1 遇到报错By not providing "FindOpenCV.cmake" in CMAKE_MODULE_PATH this project has2.2遇到报错Model missing 3 测试…

python爬虫-AES.CBS加密案例(mmz批量爬取)

下载mmz本页数据 批量下载请看主页&#xff01;&#xff01;&#xff01; 代码&#xff1a; import requests from Crypto.Cipher import AES import base64cookies {PHPSESSID: 48nu182kdlsmgfo2g7hl6eufsa,Hm_lvt_6cd598ca665714ffcd8aca3aafc5e0dc: 1710568549,SECKEY_A…