嵌入式物联网开发基石

前言

嵌入式物联网开发工程师,是一个蓝海新风口,高薪不内卷的行业。需要掌握熟悉c/c++、单片机、数据结构,linux系统,ARM单片机,嵌入式。可以从事工作项目loT、视频监控领域的产品,跨平台系统,智能硬件等开发。
想要学习安装包资料的评论区留言私我

一、指南

1、C语言基础

image.png

2、数据结构

c6c5fd8c90fbf69a6da34c4d5051b2d.png

3、shell&makfile工程管理

ab8f4f22868c2e6a68b1652b10f9b16.png

二、开发环境搭建

1、VMware虚拟机下载

允许用户在Windows或Linux桌面上运行多个操作系统,如Windows、Linux和BSD虚拟机。可进行开发、测试、部署新的应用程序的最佳解决方案。Vmware WorkStation可在一部实体机器上模拟完整的网络环境,以及可便于携带的虚拟机器。对于企业的IT开发人员和系统管理员而言,Vmware在虚拟网络,实时快照,拖拽共享文件夹等方面的特点使它成为必不可少的工具。建议下15.5版本

  • 软件下载官网链接:https://vmware.vmecum.com/

2、ubuntu系统安装

Ubuntu系统是一款功能强大、易于使用和高度可定制的开源Linux操作系统,以简洁、直观和易用为设计原则,适合各类用户使用。它提供了友好的图形界面,支持多种语言和自定义设置,用户可以根据自己的喜好和需求进行个性化设置。同时,Ubuntu系统也注重安全性和稳定性,定期发布更新和修补程序,保护用户的系统安全。推荐下载安装18.04版本

  • 软件下载官网链接:https://cn.ubuntu.com/

  • linux登录密码为1

3、共享文件夹

如在windows建立的share文件夹,直接复制粘贴至ubtunu系统会出错的情况,故需要使用共享文件夹来,
使用方法,虚拟机上方设置->选项->共享文件夹->总是启用
然后添加新建的共享分件夹然后完成,在ubtunu系统的mnt-hgfs-share里就有所创建的文件

三、计算机基础知识

1、计算机工作原理

二进制进行计算和存储,并且将计算机结构分成运算器,控制器、存储器、输入设备、输出设备等5个部分。用这几个部分组成了计算机的硬件。
存储程序的思想︰系统的运行过程就是按照一定的顺序不断执行存储器中的程序指令的过程

image.png

2、ubuntu

1713670401820.png

  • etc方账户密码信息
  • home用户信息
  • bin 可执行的二进制信息
  • usr用户基本信息

image.png

3、ubuntu常用快捷键

  • ctrl alt t 开启新的中端
  • ctrl alt 回⻋ 虚拟机全屏
  • clear 清屏
  • ctrl l 清屏
  • ctrl shift + 中端字体变大
  • ctrl - 中端字体变小
  • ctrl alt 鼠标退出虚拟机控制

四、linux 基础命令

1、pwd

显示当前目录

2、kill

杀死进程

3、cd

切换目录,
绝对路径以/为起点
相对路径,以当前目录为起点

cd ./  当前目录
cd ../ 上一层目录
cd - 上一次操作所在路径
cd ~ 相当于/home/用户名的路径
cd /usr  usr比较特殊

4、ls

列出当前目录的内容

5、mkdir当前目录下创建新的文件夹

当前目录下创建新的文件夹,mkdir dist

6、clear或者ctrl l

清屏

7、rm

rm -r 删除文件夹
rm -rf 强制执行删除文件夹
rm 删除文件

8、cp

  • cd 源文件 指定目录路径

将文件拷贝一份放入指定目录中

  • cd 源文件 目标文件

将文件拷贝一份副本

  • cd 源文件夹 指定目标文件 -a

将文件夹拷贝一份放入指定目录文件夹

9、mv

  • mv 源文件 指定目录路径

将文件移动一份放入指定目录中

  • mv 源文件 目标文件

将文件重命名

  • mv 源文件夹 指定目标文件 -a

将文件夹移动到指定目录文件夹中

五、vim编辑器、gcc编辑器

1、vim编辑器介绍和使用

书写代码的工具,编写 C 语⾔代码,可以使⽤ linux 系统提供的⼯具才能进⾏代码的编写。代码编写完成之
后,我们还需要验证书写的代码是否正确。这就需要编译器来进程验证。linux 系统为我们提供了⽐较
好的开发⼯具。

image.png

image.png

image.png

image.png

2、gcc编辑器介绍和使用

是 Linux 下提供⼀般⽤户使⽤的标准编译器。是由 GNU 开发的编程语⾔编译器。它是 GNU Compiler Collection 的缩写。可以⽤来编译C,C++,Object-C 等多种语⾔。

安装gcc
sudo apt-get install gcc

当完成hello.c文件时,由gcc hello.c编译代码, 系统默认会在当前⽬录下,⽣成⼀个叫做 a.out 的⽂件,然后执行./a.out 执⾏ a.out ⽂件,输出对应的结果.gcc hello.c -o exec 编译代码, ⽤户⾃定义⽣成的可执⾏⽂件名字,./exec 执⾏./exec ⽂件,。

image.pngimage.png

1)、编译⽅法:

  • 预处理 ----> ⽣成我预处理过得 C 代码 xx.i
  • 编译 ----> 把我们预处理过的代码⽣成我们的汇编代码 xx.s
  • 汇编 ----> 把汇编代码⽣成我们的⽬标⽂件 xx.o
  • 链接 ----> 把我们的⽬标⽂件⽣成我们的可执⾏⽂件

2)、参数说明:

  • -E 使编译器在预处理结束的时候停⽌
  • -S 使编译器在编译结束的时候停⽌
  • -c 使编译器在汇编结束的时候停⽌
  • -o 输出 gcc 编译的结果

六、常用命令快捷键、命令积累

1、创建文件

touch demo1.c

2、创建文件夹

mkdir dist

3、拷贝1到2

cp demo1.c dmeo2.c

4、gcc编译32位命令

gcc -m32 demo1.c

5、执行可执行文件

./a.out

6、打开vim编辑

vim demo1.c

7、从windows里粘贴到ubtunu里

ctrl+shift+v粘贴

8、关闭光标的回显,如输入密码时看不到输入的密码

cat
上下左右识别(按键获取)
ctrl c结束进程

9、限只在ubtunu里复制粘贴

右键选中 y(复制)然后esc +p(粘贴)

10、打开多个窗口(多文件编程)

:vsp
:vsp demo2.c

11、删除文件、文件夹

rm -rf 文件夹
rm 文件

12、查看本地项目

ls

13、在vim编辑中直接跳转到111行

:111

14、快捷编程int main(int argc,const char *arga[])

mian+tab

15、编译当前所有.c文件

gcc *.c

16、查看使用函数需要的头部文件,signal为函数

Man signal

17、关闭查看

:qi

18、结束进程命令

kill -l

19、将所有项目移入dist文件夹里

mv *.c ./dist/
mv demo1.c demo2.c

对于 mv demo1.c demo2.c 这条命令:
如果 demo2.c 不存在,demo1.c 将被重命名为 demo2.c。
如果 demo2.c 已经存在,demo1.c 的内容将会覆盖 demo2.c 的内容(除非使用了 -i 选项)。

20、以图形文件形式打开

gedit user_print.c

21、查看操作系统信息

cd /usr/include/

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux内核初始化成功后是如何过渡到android初始化的

Android用的linux内核,以完成OS该有的功能,例如,文件系统,网络,内存管理,进程调度,驱动等 ,向下管理硬件资源向上提供系统调用。另一些Android特有驱动也放在内核之中。 当linux内核…

时序分析基础(6)——input delay时序分析

1 简介 FPGA对于外部的时钟以及数据的延时信息是不知道的,在低速时钟且时钟发射沿在数据正中心的时候,一般可以不做约束来直接使用。但是到了高速时钟或者双沿采样或者发射沿和数据对齐的情况下,这时候就需要告诉VIVADO外部的时钟与数据情况来…

前端css中border-radius的简单使用

前端css中border-radius的使用 一、前言二、border-radius语法三、border-radius的模型例子1.源码12.源码1效果截图 四、border-radius的动画效果(动态交互)1.源码22.源码2显示效果 五、结语六、定位日期 一、前言 在CSS中,我们常用border-r…

LE Audio —— Boardcast 与 Unicast 对比

蓝牙低功耗音频(Bluetooth LE Audio,简称:LE Audio)自 2020 年 1月 发布,到 2022 年 7 月完成全套规范的定义。 LE Audio是新一代蓝牙音频技术标准,采用了全新的音频架构,充分利用低功耗蓝牙无…

二维码门楼牌管理应用平台建设:网格化管理的新篇章

文章目录 前言一、二维码门楼牌管理应用平台的建设背景二、二维码门楼牌管理应用平台的功能特点三、二维码门楼牌管理应用平台的实际应用四、二维码门楼牌管理应用平台的前景展望 前言 随着信息技术的飞速发展,二维码门楼牌管理应用平台的建设已成为城市网格化管理…

【Java基础】25.包(package)

文章目录 前言一、包的作用二、创建包三、import 关键字四、package 的目录结构五、设置 CLASSPATH 系统变量 前言 为了更好地组织类,Java 提供了包机制,用于区别类名的命名空间。 一、包的作用 把功能相似或相关的类或接口组织在同一个包中&#xff…

STM32 HAL库 利用CH376进行USB文件读写

STM32 其实可以进行读取USB文件,但仅限于F4以上芯片才可以进行SUB文件读写,但在项目开发中,往往用不到此芯片,那么只能通过外挂的USB芯片进行USB文件读写,本文则是采用STM32F103的SPI与CH376进行通信,通过CH376操作指令进行操作。 1、CH376介绍 CH376芯片 是沁恒的一款文…

Modelsim自动化仿真脚本(TCL)——简单实例

目录 1. Modelsim与TCL脚本的关系 2.实验文件 2.1设计文件 2.2仿真测试文件 2.3. 脚本文件 3. 实验步骤 3.1. 创建文件夹 3.2. 指定路径 3.3. 创建工程 3.4. 运行命令 3.4. 实验效果 1. Modelsim与TCL脚本的关系 TCL(Tool Command Language)是…

Vue.js------Vue组件基础

能够理解Vue组件概念和作用能够掌握封装创建组件能力能够使用组件之间通信能够完成todo案例 一.Vue组件创建和使用 1.折叠面板-实现多个 创建一个文件夹demo 具体步骤请参考vue.js---vue基础 ⚫ 解决方案: 采用vue提供的单.vue文件-组件方式来封装一套然后复用 在component…

C++:面向对象大坑:菱形继承

菱形继承 1.单继承1.概念 2.多继承2.1概念2.2菱形继承1.概念2.问题3.样例理解二义性数据冗余对于内存模型抽象化 2.3菱形虚拟继承(解决菱形继承的问题)1.概念2.样例理解对于内存模型抽象化 2.4总结 3.问题总结1.C有多继承,为什么?…

xpath为元素路径定位

selenium4 pytest支持更多的包 和unittest对比 yaml数据驱动 allure报告 日志 数据库 通过jenkins发送消息 下载chromedriver Chrome for Testing availability https://googlechromelabs.github.io/chrome-for-testing/ 把chromedriver放到python文件夹里面 浏览…

【编译原理】03语法分析

1,语法分析的若干问题 1.1 语法分析器的作用 编译器前端的重要组成部分: (1) 根据词法分析器提供的记号流,为语法正确的输入构造分析树(或语法树)。 (2) 检查输入中的语法(可能包括词法)错误,并调用出错处理器进…