linux开发板 pc 通讯_从51单片机到Linux 开发板运行hello world(教程4)

3cdb17461e3c84e652837c91165e6420.png

大家好,我是兔子。

是一个嵌入式软硬件工程师。

正在从单片机开发转岗Linux开发。

这次教大家如何在Linux开发板上运行可执行文件。

简单起见,不涉及到硬件。直接和教程2一样,能在PC虚拟机上运行hello world程序。当然开发板上也可以。

1.Source Insight编程

Source Insight是一个很好用的文本编辑器。实际上和windows的记事本的功能差不多。

但是对于嵌入式开发,C语言可以自动显示函数名以及关键字。以及工程编译,可以新建工程,将工程中多个.c和.h文件进行搜索并进行对应关系。

我们的嵌入式Linux的开发的第一个程序,hello world也准备开始使用Source Insight进行编写。

1cc7b50b63fff127c90b497898fcca89.png

2.编写程序

安装Source Insight软件,并打开。

新建一个文件,命名为hello_arm.c

并编写Hello world程序。

11da7c9bc59fe8fc9f5b3452bd3128c9.png

编写完后,另存为。

3.编写Makefile

Windows下,新建一个记事本。将文件名修改为Makefile

(注意,强烈注意。Makefile文件名的M是需要大写的,其余字母小写,并且文件不带后缀。不能包含类似.txt的扩展名)

EXEC = hello_arm
OBJS = hello_arm.oCROSS = arm-fsl-linux-gnueabi-
CC = $(CROSS)gcc 
STRIP = $(CROSS)strip
CFLAGS = -Wall -g -O2all: clean $(EXEC)$(EXEC):$(OBJS)$(CC) $(CFLAGS) -o $@ $(OBJS)$(STRIP) $@clean:-rm -f $(EXEC) *.o

将第一行和第二行,改为需要编译的文件名

64d27336957bc73e3af378dbe71fa33d.png

文件里,每行左侧的开头,不能包含空格,必须使用tab键空格。

3d130f795955424c9c66cca8adfa1376.png

(如图所示,每行左侧禁止使用空格键,调整为tab键空格)。

4.将hello_arm.c以及Makefile两个文件,拷贝到虚拟机里,进行编译

1)windows下复制这两个文件。

782f22446d8813f184e1b8518dbc1363.png

2)虚拟机下,右键粘贴。就可以跨系统传输文件。

0e0e025af934c3adb1897e887ea4da87.png

5.编译程序

进入终端,并进入到存储这两个文件的目录。

输入make指令。

a6d29e1b2c80aad05ab1937dfea2b2df.png

可以看到没有提示错误和警告。表示编译通过。

6.将生成的可执行文件拷贝的NFS共享目录下

使用cp命令,即copy。

将生成的可执行文件hello_arm拷贝到NFS共享目录/work/nfs_root下。

d123736d7e7ff65277b562fcfdf29837.png

(如何建立NFS共享目录,请移步教程3)

兔子MCU:从51单片机到Linux 开发板传文件利器-NFS(教程3)​zhuanlan.zhihu.com
c4f904264261c1cd9523a305b61f489b.png

6.开发板开启NFS功能

在开发板下,输入指令

mount -t nfs -o nolock,vers=2 192.168.1.101:/work/nfs_root /mnt

表示将虚拟机的NFS共享文件目录/work/nfs_root挂载到开发板的/mnt目录下。

696921dcbca9440e6fa1c28bf391d26b.png

(具体设置,请移步教程3)

兔子MCU:从51单片机到Linux 开发板传文件利器-NFS(教程3)​zhuanlan.zhihu.com
c4f904264261c1cd9523a305b61f489b.png

进入/mnt目录,并允许hello_arm程序。

可以看到,Hello world!以及打印。表示程序成功运行。

a7519acf80846b49226159d06fbc778f.png

至此,开发板可以正确运行Hello World程序。

本节还简单介绍了Makefile的用法。

2e2ce56c3a126feb96f65b51105b8dee.png

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

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

相关文章

python decimal 转 float_python教程之二python数学运算

存储数据变量#两个变量交换值,通过第三个参数实现print(两个变量交换值,通过第三个参数实现); #第一种方法是通过第三个参数实现x5;#变量赋值y11; #变量赋值print(交换前,x,y);tempx;xy;ytemp;print(交换后,x,y);#两个变量交换值,更便捷的方法…

mysql 视图 动态sql_sql-server – 使用动态Sql创建视图

我正在尝试创建一个动态数据库创建脚本.有很多步骤,我们经常创建这个数据库,所以脚本看起来像这样.DECLARE databaseName nvarchar(100) DatabaseNameEXEC(/*A lot of database creation code built off of databaseName*/)除了我们在此数据库中创建的一个视图外,这一切都很好…

apache arm 交叉编译_移植apache2 ARM版 – 交叉编译apache2 | 学步园

下载apache2 http://apache.fayea.com/apache-mirror//httpd/httpd-2.4.6.tar.bz21. tar jxvf httpd-2.4.6.tar.bz22. cd httpd-2.4.63. ./configure --hostarm-linux --prefix/usr/local/arm/4.4.3 --with-apu/usr/local/arm/4.4.3/ --with-apr-util/usr/local/arm/4.4.3 --wi…

mysql订单表上亿怎么分表_[转]单表上亿的数据量如何分表

之前的几篇关于分表的,提到的分表策略不够详细,我在这篇中补充一些分表策略吧:按号段分:(1) user_id为区分,1~1000的对应table1,1001~2000的对应table2,以此类推&#xf…

mysql msdtc 不支持_IIS5.1安装后,不支持IIS的问题。(转)

(如果是ghost版本安装的xp或者win2003无法安装iis,那么你只需要下载本站从WINDOWS安装盘抽取的IIS安装文件,就可以安装IIS了,WINXPSP1 安装IIS 5, WINXP SP2 IIS5.1 ,WIN2003安装IIS6,特别提示下菜鸟同志&a…

python中对象包含几个部分_python中包含对象类型的两个列表的交集

如果顺序无关紧要,请使用set.intersection:A [(1.1,2.2),(3.3,4.4),(5.5,6.6)]B [(1.1,2.2),(7.7,8.8),(3.3,4.4)]print(set(A).intersection(B))set([(3.3, 4.4), (1.1, 2.2)])或者将B设为集合,并在a上迭代保持公共元素:^{pr2}…

mysql 不会联想字段_你有没有被MySQL的这个bug坑过?

问题描述近期,线上有个重要Mysql客户的表在从5.6升级到5.7后,master上插入过程中出现"Duplicate key"的错误,而且是在主备及RO实例上都出现。以其中一个表为例,迁移前通过“show create table” 命令查看的auto increme…

mysql新增后默认返回值_mybatis insert、update 、delete默认返回值解释与如何设置返回表主键...

在使用mybatis做持久层时,insert、update、delete,sql语句默认是不返回被操作记录主键的,而是返回被操作记录条数;那么如果想要得到被操作记录的主键,可以通过下面的配置方式获取。针对Sequence主键而言,在…

mysql 主从 sql线程no_Mysql 主从同步 slave_sql_running 为no

背景之前搭建了主从,但没有设置读写分离,从库也能写数据。于是想测试下在从库写数据会导致同步怎么样。 结果发现,slave_sql_running为no,slava_IO_running仍然为yes.原因由于从库写数据,导致主从数据不一致&#xff0…

header python 环境信息_【关于header信息的构造】Python模拟登录出现乱码

使用Python模拟登录Z-Blog系统的后台时,如果构造的header信息如下,那么得到的结果将会乱码,如下图所示对应的错误的header信息如下:url "http://192.168.1.11/cmd.asp?actverify"request urllib2.Request(url)reques…

mysql 组内排序_mysql组内排序取最大值

最近业务反馈一个查询异常的问题,需要DBA对查询结果异常给出解释,并帮助他们解决该问题。问题本质是一个组内排序取最大值的问题,根据业务需求,我构建了测试用例测试用例--建表create table testorder(id int not null,no int not…

mysql索引抽密度_使用python脚本从abaqus输出数据库获取元素密度

属性关联如下:sectionAssignment将section连接到setset是{}的容器section将sectionAssignment连接到materialinstance连接到{}(可以来自另一个模型的部件)part连接到modelmodel连接到section如果可以,请使用.inp或.cae文件。下面的代码从一个打开的cae文…

python中plot和bar要求的格式不一样_在Python中matplotlib中匹配的图形大小,包括和不包含make_axes_locatable- divider colorbars...

我在22网格中有4个图形,但只希望右边的两个图形有条形(比例适用于行).我正在使用表格divider make_axes_locatable(ax)cax divider.append_axes("right", size"5%", pad0.05)plt.colorbar(im, caxcax)使颜色栏与这两个图的大小相匹配.然而,这使得两个带有…

禁用win10触摸屏手势_Win10平板边缘滑动手势大全及开启/关闭方法

Win10对于平板/触屏设备进行了特别优化,这体现在显示和操作等方面。对于操作方面,Windows10平板除了支持传统操作方法外,还有专门的边缘滑动手势。这些操作有别于之前的Win8/Win8.1,Win10边缘滑动操作共有以下四种形式&#xff1a…

java获取文件新增内容_关于java生成文件,立即又读这个文件但又找不到文件新增内容的问题...

展开全部写文件之后,应该有一个刷新流缓冲的flush()方法。该方法可以保证你可以读到你e69da5e6ba903231313335323631343130323136353331333332643238之前所写的内容。下面是我写的一个简单的测试用例:package test;import java.io.BufferedReader;import…

java的容器类有哪些实现方式_Java基础--容器类

面试官:Java的容器类你有什么了解吗?-:额,没有用过....面试官:你肯定用过,但你没有注意过....-:应该是吧....你知道什么是容器类吗?Java容器可以说是增强程序员编程能力的基本工具&a…

eclipse怎么导入java文件_eclipse怎么保存java文件?如何导入java文件?

eclipse开发工具很好用,是java开发人员的好帮手,但是一些新手java人员不知道eclipse怎么保存java文件?那么接下来,我们就来给大家讲解一下eclipse保存java文件的方法。Eclipse没有提供自动保存的功能,只能自己写脚本每隔多久保存…

asin java_Java asin() 方法

Java asin() 方法asin() 方法用于返回指定double类型参数的反正弦值。语法double asin(double d)参数d -- 任何原生数据类型。返回值返回指定double类型参数的反正弦值。实例public class Test{public static void main(String args[]){double degrees 45.0;double radians M…

java集合系列_Java集合系列01-Java集合概述

1.Java集合基本概念在编程中,常常需要集中存放多个数据。从传统意义上讲,数组是我们的一个很好的选择,前提是我们事先已经明确知道我们将要保存的对象的数量,因为数组长度在初始化时指定,意味着只能保存定长的数据。一…

java黄金连分数_蓝桥杯 | Java B组省赛真题练习——黄金连分数-Go语言中文社区...

标题: 黄金连分数黄金分割数0.61803... 是个无理数,这个常数十分重要,在许多工程问题中会出现。有时需要把这个数字求得很精确。 对于某些 精密工程,常数的精度很重要。也许你听说过哈勃太空望远镜,它首次升空后就发现了一处人工加…