嵌入式学习笔记C语言阶段--环境搭建
不同于以往你单纯去学习C语言的时候,在windows环境下进行编程,咱们嵌入式的学习中C语言是在Linux环境下进行练习的,为什么要这样呢?因为后续大家去做嵌入式开发与Linux是无法分割的,所以咱们在学习语言阶段就要在Linux环境中进行,这样可以提前熟悉适应Linux环境。所以咱们本章,从环境搭建开始。相信你在学校学习的过程中也有某个瞬间想认认真真的搭建个环境,但是面对各种各样的教程,因为某个
前言:老铁们,接下来咱们就正式开始咱们嵌入式的学习了,咱们首先来学习第一个阶段,C语言的学习。C语言的重要性相信不必我多说,作为我们接触到的比较底层的面向机器的语言,你想学习嵌入式,C语言是你与硬件对话必不可少的工具,因此,在学硬件之前必须把C语言的一些基本知识掌握好。接下来咱们将从C语言的第一行代码一直学习到链表。为什么到链表就停了?因为链表是C语言里一个很重要的数据存储结构,学到这里,基本上就够咱们去处理嵌入式开发过程中的数据的处理了。
一、Linux概述
不同于以往你单纯去学习C语言的时候,在windows环境下进行编程,咱们嵌入式的学习中C语言是在Linux环境下进行练习的,为什么要这样呢?因为后续大家去做嵌入式开发与Linux是无法分割的,所以咱们在学习语言阶段就要在Linux环境中进行,这样可以提前熟悉适应Linux环境。
所以咱们本章,从环境搭建开始。相信你在学校学习的过程中也有某个瞬间想认认真真的搭建个环境,但是面对各种各样的教程,因为某个步骤的缺失,可能走到一半就走不下去了,然后浇灭了你学习的热情。因此本章,笔者将手把手教你从虚拟机的搭建与配置到Ubuntu操作系统的配置,希望大家有问题的,可以留言交流。
为什么是Linux?
1.因为Linux 系统在生活中出现的场景非常多,大多数情况下是针对于当前用户所需功能特定开发,功能单一,处理任务单一,但是满足使用需求。主要用于:医疗器械,商超设备,智能座舱,智能穿戴设备,手机,平板...
2.嵌入式开发中,使用 Linux 环境非常中,并且针对于嵌入式开发需求,大多数情况下使用的 Linux 系统环境为 Ubuntu 环境。Ubuntu 环境对于嵌入式设备,驱动开发,后续的智能化项目开发都是一个非常好的环境。
3.Linux 环境和 Windows 环境对比,使用对于普通用户而言不方便。Linux 环境大多数软件都是针对于生产力工具,例如 开发软件,设计软件,服务软件,AI 相关资源实现。对于工程师来说,生产力很重要!
本教程使用的 Ubuntu 环境为 Ubuntu 18.04 64位
虚拟机VmWareWorkStation下载链接:
链接: https://pan.baidu.com/s/1Ld5HsboLQkGF9VIY3t-mYw?pwd=kapv 提取码: kapv
附带镜像文件下载链接:ubunt18.04
链接: https://pan.baidu.com/s/1SD7VgU5F1GjEjdzqxxjGWg?pwd=cajg 提取码: cajg
二、环境搭建
软件安装
1. VMware Workstation Pro
1.1 VMware 概述
- 虚拟机软件,在 PC 端可以模拟一台电脑,同时可以配置电脑的相关属性,安装其他操作系统满足开发需求
- 因为我们需要使用 Ubuntu 操作系统。包括 C/C++ 开发环境,后续的驱动课程开发环境。Ubuntu 如果直接安装到 PC 端,使用不便,所以采用虚拟机方式进行操作使用。
- 后续开发中需要标准环境的一致性,包括 软件版本(VMware 17.5),开发使用语言版本(C99 C89 C++11 C++13),SDK, API 版本都需要一致。
1.2 VM 安装流程
任何一个软件安装要求
- 不能安装到 C 盘,C 盘中一般安装的软件都是系统,驱动,和系统相关辅助资源。
- 安装任何一个软件,不得有中文路径,防止出现软件无法使用的问题。
- 安装路径自己规划,后续方便找到。
安装步骤如下:









2.Ubuntu环境安装
2.1Ubuntu环境概述
Ubuntu是一个非常强大的操作系统,Ubuntu 属于 Linux 内核操作系统。主要用于嵌入式设备开发。嵌入式软件开发,和驱动开发首选平台都是 Ubuntu。
开发使用的 Ubuntu 版本为 18.04
2.2安装步骤




+





2.3Ubuntu配置启动安装







3.VMware tools工具
现在,你发现已经打开Ubuntu了,但是屏幕自适应以及与windows之间的互相复制粘贴还无法使用,因此需要安装tools工具。






qf@qf:~/.../ sudo ./vmware-install.pl
4.C/C++环境
利用 Ubuntu 环境对 C/C++ 代码进行编译执行。直接更新/安装对应环境
sudo apt-get update
# sudo ==> 超级用户权限命令
# apt ==> application APP 应用程序
# get ==> 获取
# update ==> update

安装 C 开发环境
sudo apt-get install gcc
# install ==> 安装
# gcc ==> C 语言编译工具
# 安装提示需要输入 Y 确认安装

安装提示中,会包括需要安装的软件有哪些, 更新软件有哪些,安装对应的占用空间多少。开发需要一定的文档阅读能力。
安装 C++ 开发环境
sudo apt-get install g++
# g++ ==> C++ 语言编译工具

5. SSH 远程操作服务器
SSH 是一个通道,并且是一个加密的通讯通道,常用于远程访问目标计算机。需要目标服务器计算机安装对应的服务器端,同时在本地软件安装对应的客户端,通过用户名和密码方式远程连接访问对应电脑。
通过 VSCode 远程连接虚拟机,更好的完成代码实现。需要在 Ubuntu 中安装 openssh-server
安装命令:
sudo apt-get install openssh-serve
6. Samba 共享文件服务器
6.1 概述
Samba 共享文件服务器,可以将 Ubuntu 中的文件共享到 Windows 界面。Windows 或者任何一个平台都可以通过 IP 地址访问 Ubuntu 指定文件夹,并且具备创建,复制和粘贴的能力。
6.2 软件安装
sudo apt-get install samba
6.3 配置服务器
配置信息主要告知 Samba 服务器以下内容
登录使用的用户名信息
整个系统中哪一个文件夹共享给对应用户。
用户对应当前文件的权限,主要包括,读取,写入,执行
配置文件也是后续开发中常见的一个方式,利用文件信息对相关的软件执行所需必要条件进行限制执行。一个软件支持多个版本,多种模块方式,可以利用配置文件来完成对应的代码实现。
注意:一定要在前面配置好VMware tools,而且最好重启一下,否则无法复制这一段
[qf] # 当前计算机的用户名
comment = samba home directory # 信息描述
path = /home/qf # /home/用户名,对应当前计算机的名称
public = yes # 当前文件夹是否公开,当前选择 YES
browseable = yes # 当前文件夹是否可以访问,当前选择 YES
read only = no # 当前文件夹是否为只读文件夹,当前选择为 NO
valid users = qf # 对应当前计算机的用户名
create mask = 0777 # 创建操作对应的权限 0777 完全权限
directory mask = 0777 # 文件夹操作对应的权限, 0777 完全权限
force user = qf # 对应当前计算机的用户名
force group = qf # 对应当前计算机的用户名所在组名,一般情况下都是和用户名一致
available = yes # 当前配置文件是否生效
配置流程
找到 Samba 服务器安装目录中的配置文件
sudo gedit /etc/samba/smb.conf # 将配置信息复制到文件末尾,且删除所有中文内容注册用户
sudo smbpasswd -a qf # 需要输入两次密码确认重启 samba 服务器软件
sudo /etc/init.d/smbd restart
6.4 【问题解决】无法将 Windows 内容赋值到 Ubuntu 中
原因是 : VMware 软件和 Ubuntu 18.04 适配度较低,默认安装的 VMware-tools 无法正常使用,需要补充安装其他插件
sudo apt-get install open-vm-tools
sudo apt-get install open-vm-tools-desktop
6.5 远程访问 Samba 共享文件夹
需要知晓当前虚拟机ip
在命令行输入如下指令查看
ip addr
在windows任意文件夹输入
\\192.168.13.11 # 自己 Ubuntu 系统的 IP 地址
# 提供对应的用户名和密码。登录到共享文件夹

即可在windows环境下访问Ubuntu操作系统中的文件夹!!
更多推荐



所有评论(0)