前言:老铁们,接下来咱们就正式开始咱们嵌入式的学习了,咱们首先来学习第一个阶段,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操作系统中的文件夹!!

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐