嵌入式物联网开发基石

news2024/9/30 5:27:41

前言

嵌入式物联网开发工程师,是一个蓝海新风口,高薪不内卷的行业。需要掌握熟悉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.coloradmin.cn/o/1614416.html

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

相关文章

联想拯救者电脑数据恢复方法,适用于未备份者

自从大学时期起,我的联想拯救者电脑就成为了我生活和学习的得力助手,里面存有许多至关重要的资料。但是昨日当我启动它时,电脑却意外卡顿。恢复正常后,发现部分数据竟然神秘地消失了,有什么方法能帮我恢复吗&#xff1…

快速上手Jemter分布式压测实战和代码详细解析

🚀 作者 :“二当家-小D” 🚀 博主简介:⭐前荔枝FM架构师、阿里资深工程师||曾任职于阿里巴巴担任多个项目负责人,8年开发架构经验,精通java,擅长分布式高并发架构,自动化压力测试,微服务容器化k…

2025考研数学武忠祥强化班视频,百度网盘课程+讲义PDF更新

25考研的小伙伴们现在应该基础都学习的差不多了吧! 是时候进入强化阶段的学习啦。 2025考研数学强化班全程网盘:https://pan.baidu.com/s/1Z029fuCLkyyhIRFqd5QKcg 提取码:p3ue 晚上好,聊聊17堂课的看课攻略。 今年的17堂课还…

BUUCTF——[GXYCTF2019]BabyUpload

BUUCTF——[GXYCTF2019]BabyUpload 1.上传嘛&#xff0c;直接丢正常的jpg文件进服务器 2.发现可以正常上传&#xff0c;并且回显出来啦文件上传的路径 /var/www/html/upload/7df22610744ec51e9cb7a8a8eb674374/1111.jpg 3.尝试上传一句话木马 <?php eval($POST[123456]…

如何使用ChatGPT仿写一篇学术论文

点击下方▼▼▼▼链接直达AIPaperPass &#xff01; AIPaperPass - AI论文写作指导平台 目录 1.仿写的目的 2.根据专业方向搜集合适的文献 3.总结想要仿写的文献 4.使用ChatGPT一步一步仿写 5.书籍介绍 AIPaperPass智能论文写作平台 深入地阅读和分析你研究领域的相关文…

小游戏贪吃蛇的实现之C语言版

找往期文章包括但不限于本期文章中不懂的知识点&#xff1a; 个人主页&#xff1a;我要学编程(ಥ_ಥ)-CSDN博客 所属专栏&#xff1a;C语言 目录 游戏前期准备&#xff1a; 设置控制台相关的信息 GetStdHandle GetConsoleCursorInfo SetConsoleCursorInfo SetConsoleCu…

Ansible 指定受控端使用Python的版本

最近在装Ansible&#xff0c;有一台受控端Ubuntu16的服务器&#xff0c;安装了Python2.7.12和Pyhon3.5。当用Ansible连接它时&#xff0c;显示使用的是Python3.5。最后看文档&#xff0c;发现Ansible可以在hosts的文件中指定受控服上运行的Python。 现象 受控端 查看Python版…

这些小众工作软件让你事半功倍

大家好呀&#xff01;&#x1f44b; 今天我要来种草一些不那么主流&#xff0c;但却能大大提升你工作效率的神器软件&#xff01;&#x1f31f; 如果你也像我一样&#xff0c;对那些大众化的工作工具已经审美疲劳&#xff0c;那么快来一起探索这些隐藏的宝藏吧&#xff01;&…

OpenTiny 亮相 W3C 2024春季顾问委员会会议,共话行业新趋势。

近日&#xff0c;万维网联盟&#xff08;World Wide Web Consortium&#xff0c;简称 W3C&#xff09;于4月8日-4月9日在日本召开2024年顾问委员会会议&#xff08;Advisory Committee Meeting&#xff09;。华为产业发展专家丁蔚博士及华为云 OpenTiny 项目的 Web 前端框架技术…

国产台灯哪个品牌比较好?五款国产护眼台灯品牌推荐

随着学生们重返校园&#xff0c;家长和孩子们忙于新学期的准备工作&#xff0c;眼睛健康的考量自然也在其中。这也是为何近年来护眼台灯越来越受到欢迎的原因之一。国产台灯哪个品牌比较好&#xff1f;作为一个长期近视并且日常用眼时间较长的人&#xff0c;我本人对护眼台灯有…

Springboot+Vue项目-基于Java+MySQL的网上购物商城系统(附源码+演示视频+LW)

大家好&#xff01;我是程序猿老A&#xff0c;感谢您阅读本文&#xff0c;欢迎一键三连哦。 &#x1f49e;当前专栏&#xff1a;Java毕业设计 精彩专栏推荐&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; &#x1f380; Python毕业设计 &…

VisualStudio2019和2022开发Winform项目用到Devexpress组件报错不能正确加载的解决办法

1.报错1 问题简单描述&#xff1a;DevExpress.Utils.ImageCollectionStreamer 无法强制转换为 DevExpress.Utils.ImageCollectionStreamer。 原因分析&#xff1a;原项目某个组件使用的是 DevExpresss.XtraBars.v15.1版本&#xff0c;直接引用扩展控件改成引用v20.2。 解决办法…

HTML 中创建 WebSocket服务与接收webSocket发送内容

效果图 服务端 html客户端接受的消息 接下来开始实现服务端 创建server.js const WebSocket require(ws);const wss new WebSocket.Server({ port: 8877 });wss.on(connection, function connection(ws) {console.log(WebSocket connection opened.);// 每隔 5 秒发送一次…

前端学习之DOM编程案例:点名案例和秒表案例

点名 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>点名案例</title><style>*{margin: 0;padding: 0;}</style> </head> <body><div id"container">…

C语言进阶课程学习记录-函数参数的秘密

C语言进阶课程学习记录-函数参数的秘密 实验实验小结调用约定实验-求平均数实验-可变参数的函数小结 本文学习自狄泰软件学院 唐佐林老师的 C语言进阶课程&#xff0c;图片全部来源于课程PPT&#xff0c;仅用于个人学习记录 实验 #include <stdio.h>int func(int i, int…

解线性方程组——追赶法解三对角方程组 | 北太天元

一、问题描述 对于线性方程组 A x b , A ( b 1 c 1 a 2 b 2 c 2 ⋱ ⋱ ⋱ ⋱ ⋱ ⋱ a n − 1 b n − 1 c n − 1 a n b n ) , b ( f 1 f 2 ⋮ f n ) Axb,\quad A\begin{pmatrix}b_1&c_1&&&&\\a_2&b_2&c_2&&&\\&\ddots&\d…

Unity导出package

C#代码导出后为一个dll&#xff0c;原有的不同平台的库不变。 以下操作均在build PC 平台下操作。 1.在要导出的文件夹下建assembly definition (Any platform) 2.将项目文件夹下的\Library\ScriptAssemblies中的相应assembly definition的dll复制到要导出的文件夹下 3.在uni…

Linux进阶篇:CentOS7搭建NFS文件共享服务

CentOS7搭建NFS文件共享服务 一、NFS介绍 NFS(Network File System)意为网络文件系统&#xff0c;它最大的功能就是可以通过网络&#xff0c;让不同的机器不同的操作系统可以共享彼此的文件。简单的讲就是可以挂载远程主机的共享目录到本地&#xff0c;就像操作本地磁盘一样&…

适用于摩托车仪表盘的液晶驱动IC:S1D15K01

S1D15K01j是EPSON的一款适用于适用摩托车混合数字仪表盘的车规混合液晶驱动IC。随着摩托车具备的特性和功能的逐渐增多&#xff0c;需要在仪表盘显示器上显示的信息量越来越大。另一方面&#xff0c;可用于显示的空间有限&#xff0c;需要有效地显示信息。在过去&#xff0c;摩…

《深入浅出多模态》: 多模态经典模型:BLIP

🎉AI学习星球推荐: GoAI的学习社区 知识星球是一个致力于提供《机器学习 | 深度学习 | CV | NLP | 大模型 | 多模态 | AIGC 》各个最新AI方向综述、论文等成体系的学习资料,配有全面而有深度的专栏内容,包括不限于 前沿论文解读、资料共享、行业最新动态以、实践教程、求职…