【嵌入式系统开发01】嵌入式LINUX系统程序开发回顾

本文在windows环境下通过虚拟机软件(比如Vmware、VirtualBox)安装Ubuntu 16.04/18.04 Desktop,并设置网络参数保证系统能上网;熟练掌握Ubuntu常用命令,并学习使用vi/vim、或nano、或gedit文本编辑软件;同时编写一个主程序文件 main1.c 和一个子程序文件 sub1.c,和操作在ubuntu系统下用Makefile方式编程主程序。


(一)环境配置

●虚拟机软件 VMware Workstation Pro
●Ubuntu Server 18.04
●windows


(二)虚拟机系统安装与网络环境配置

1.常见虚拟机系统

●VirtualBox(https://www.virtualbox.org/)
●VMware Workstation(https://www.vmware.org/
本文采用VMware Workstation,首先下载好VMware Workstation安装包,根据相应的视频或安装指引进行安装。

2.创建虚拟机环境调试

●首先在D盘创建一个文件夹(名为虚拟机),再将虚拟机的默认位置进行修改。
在这里插入图片描述
●其次,再点击共享虚拟机,将共享虚拟机的位置也改成之前所创文件夹的位子。
在这里插入图片描述

3.设置适配的网络参数

●网络适配器的设置
点击最上角虚拟机(M),选择虚拟机设置。
在这里插入图片描述

然后再将网络适配器现实的模式,选择为NAT模式。
在这里插入图片描述
●虚拟网络编辑器设置
首先点击最上角的编辑,打卡虚拟网络编辑器。
在这里插入图片描述
然后再点击VMnet8 NAT模式。
在这里插入图片描述
点击DHCP 设置,可以查看起始IP地址到结束IP地址这个范围。
在这里插入图片描述
与此同时,选择NAT模式,还需要点击NAT设置,可以进行添加端口转发或者移除。
在这里插入图片描述

4.安装的注意事项

●一定要记住自己的用户名与密码,不然忘记后,找回过程非常麻烦。
在这里插入图片描述
●一定要选上按空格选上OpenSSH server,这里的×其实就相当于√。
在这里插入图片描述
●到了这个界面需要耐心的等待,不同的电脑等待时间可能不同。
在这里插入图片描述
●在输入密码的时候,你输入的密码是不会显示出来的,输入完毕后,直接按Enter键。
在这里插入图片描述

5.选择NAT模式的好处

NAT又称为网络地址转换,此时我们主机A中新建的虚拟机采用的是NAT模式,这时主机A会生成一个新的ip地址,比如192.168.100.10,此时虚拟机上分配的ip地址就会和192.168.100.10这个地址同一个网段,而不会占用教室中主机A、B的网段的ip地址资源,比如虚拟机会被分配一个192.168.100.20的ip地址。


(三)将apt源更改为阿里源

Ubuntu系统一般采用 apt-get 命令进行某个软件的在线查找和安装,默认官方的软件源仓库位于国外,下载速度较慢。所以修改系统参数,选择国内镜像软件源仓库,以提高软件安装速度。

1.测试apt update速度

●首先输入apt update,观察下载速度是否缓慢,如果很长,则需要更改系统参数。
在这里插入图片描述

2.apt的基础使用方法

如下图
在这里插入图片描述

3.修改源的过程

●首先输入sudo vim /etc/apt/sources.list,我们要修改的文件是sources.list,它在目录/etc/apt/下。
文件内容得到替换如下

#deb包
deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
##测试版源  
deb http://mirrors.aliyun.com/ubuntu/ xenial-proposed main restricted universe multiverse
# 源码  
deb-src http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
##测试版源  
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-proposed main restricted universe multiverse
# Canonical 合作伙伴和附加  
deb http://archive.canonical.com/ubuntu/ xenial partner
deb http://extras.ubuntu.com/ubuntu/ xenial main

4.更新与修复

执行更新sudo apt-get update
复损坏的软件包,尝试卸载出错的包,重新安装正确版本的命令sudo apt-get -f install
更新软件的命令sudo apt-get upgrade


(四)在Ubuntu系统编写一个简单的 hello word 程序

1.vim、gcc及makefile的安装

●首先输入sudo apt-get install vim,安装vim。
●其次输入sudo apt-get install gcc,安装gcc。
●最后输入sudo apt-get install makefile,安装makefile。
这里有相应的安装以及编写的链接http://t.csdn.cn/eXkUO

2.创建hello.c C语言文件

●在命令窗口输入vim hello.c创建hello.c C语言文件。
●再按i进入编辑界面。
在这里插入图片描述

#include<stdio.h>
int main()
{
	printf("hello world!");
	return 0;
}

●按下Esc键,再按:(冒号) ,再输入wq保存文件。

3.编译运行过程

●在命令窗口输入gcc hello.c -o hello进行编译。
●在命令窗口输入./hello运行程序。
在这里插入图片描述
完成在Ubuntu系统下用C语言编写一个简单的输出 hello word 的程序,并编译有、运行之。


(五)请编写一个主程序文件 main1.c 和一个子程序文件 sub1.c(分别在Ubuntu与Windows环境下)

1.编译需求

编写一个主程序文件 main1.c 和一个子程序文件 sub1.c, 要求:子程序sub1.c 包含一个算术运算函数 float x2x(int a,int b),此函数功能为对两个输入整型参数做某个运算,将结果做浮点数返回;主程序main1.c,定义并赋值两整型变量,然后调用函数 x2x,将x2x的返回结果printf出来。
①请在ubuntu系统用gcc 命令行方式编译主程序main1.c 并运行;
② 请在windows系统下用你熟悉的编译工具编译主程序main1.c 并运行。

2.在ubuntu虚拟机环境下

●输入vim main1.c,先编写主函数。

*main1.c程序*
#include<stdio.h>
#include"sub1.h"
int main()
{
	int a,b;
	float y;
	a=7,b=10;
	y=x2x(a,b);
	printf("%f",y);
	return 0;
}

●再输入vim sub1.c

*sub1.c程序*
#include<stdio.h>
float x2x(int a,int b)
{
	float x;
	x=a+b;
	return x;
}

●之后输入相应的命令编译并运行
编译gcc main1.c -o main1
运行./main1

3.在windows环境下

●本次采用在Dev c++编译器下操作。
主程序文件

#include <stdio.h>
#include "sub1.h"
int main() 
{
	int a,b;
	a=7;b=10;
	float c;
	c=x2x(x,y);
	printf("%f",c);
	return 0;
}

子程序文件

#include <stdio.h>
float x2x(int x,int y)
{
	float ppm;
	ppm=x+y;
	return ppm;
}

运行结果如下
在这里插入图片描述


(六)ubuntu系统下用Makefile方式编程主程序

1.什么是makefile

Makefile是一个名为GNU-Make软件所需要的脚本文件,该脚本文件可以指导Make软件控制arm-gcc等工具链去编译工程文件最终得到可执行文件,几乎所有的Linux发行版都内置了GNU-Make软件,VScode等多种IED也内置了Make程序。

2.makefile文件的创建、编译、运行

●首先在命令窗口输入gedit makefile,创建makefile文件。
●但由于提示,需要先输入sudo apt install gedit。此过程可能需要花一些时间,需要耐心等待即可。
此过程后,输入相应的代码

main:main1.o
gcc main1.o -o main
main1:main1
gcc -c main1.c
clean:
rm -rf *.o main

●保存该文件并关闭窗口。
●在命令行窗口输入make
●输入gcc main1.o -o main进行编译。
●再输入./main查看运行结果即可。


(七)总结

本次嵌入式Linux系统程序的开发回顾并不难,对于在Ubuntu系统下用C语言编写程序和在ubuntu系统下用Makefile方式编程主程序也并不难学。主要是需要耐心学习与寻找各种资料,才能收获满满。
寄语:这个世界或许并不完美
   负重前行的时候不要忘了身旁的人
   总有一些真心、真诚、真意的朋友或亲人,希望着你更优秀,更有思想,更懂得自尊自爱

  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值