大家好,我是兔子。
是一个嵌入式软硬件工程师。
正在从单片机开发转岗Linux开发。
这次教大家如何在Linux开发板上运行可执行文件。
简单起见,不涉及到硬件。直接和教程2一样,能在PC虚拟机上运行hello world程序。当然开发板上也可以。
1.Source Insight编程
Source Insight是一个很好用的文本编辑器。实际上和windows的记事本的功能差不多。
但是对于嵌入式开发,C语言可以自动显示函数名以及关键字。以及工程编译,可以新建工程,将工程中多个.c和.h文件进行搜索并进行对应关系。
我们的嵌入式Linux的开发的第一个程序,hello world也准备开始使用Source Insight进行编写。
2.编写程序
安装Source Insight软件,并打开。
新建一个文件,命名为hello_arm.c
并编写Hello world程序。
编写完后,另存为。
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
将第一行和第二行,改为需要编译的文件名
文件里,每行左侧的开头,不能包含空格,必须使用tab键空格。
(如图所示,每行左侧禁止使用空格键,调整为tab键空格)。
4.将hello_arm.c以及Makefile两个文件,拷贝到虚拟机里,进行编译
1)windows下复制这两个文件。
2)虚拟机下,右键粘贴。就可以跨系统传输文件。
5.编译程序
进入终端,并进入到存储这两个文件的目录。
输入make指令。
可以看到没有提示错误和警告。表示编译通过。
6.将生成的可执行文件拷贝的NFS共享目录下
使用cp命令,即copy。
将生成的可执行文件hello_arm拷贝到NFS共享目录/work/nfs_root下。
(如何建立NFS共享目录,请移步教程3)
兔子MCU:从51单片机到Linux 开发板传文件利器-NFS(教程3)zhuanlan.zhihu.com6.开发板开启NFS功能
在开发板下,输入指令
mount -t nfs -o nolock,vers=2 192.168.1.101:/work/nfs_root /mnt
表示将虚拟机的NFS共享文件目录/work/nfs_root挂载到开发板的/mnt目录下。
(具体设置,请移步教程3)
兔子MCU:从51单片机到Linux 开发板传文件利器-NFS(教程3)zhuanlan.zhihu.com进入/mnt目录,并允许hello_arm程序。
可以看到,Hello world!以及打印。表示程序成功运行。
至此,开发板可以正确运行Hello World程序。
本节还简单介绍了Makefile的用法。