Linux系统编程之最小 Linux 系统运行应用程序

一、编写应用程序

如下图所示,在 Ubuntu 下建立一个专门的文件夹存放 “ Linux 系统编程” 中的源码和程序。
在目录  “ /home ”下,在 root 用户权限下,使用命令  “   mkdir linuxsystemcode   ”  新建目录“  linsyscode ”。
然后,如下图所示,使用命令   “  cd linsyscode/  ” 进入目录   “ linsyscode ”   ,使用命令   mkdir
helloworld    ,新建 “ helloworld ” 目录,然后使用命令 cd helloworld/  ” 进入新建的目录。
代码的编辑使用编辑器 vi 编辑器或者 vim 编辑器,将 “ helloworld.c ” 拷贝到前面新建的 “ helloworld ”目录下,使用命令 “ vi helloworld.c ” 或者 “ vim helloworld.c ”命令,如下图所示。
说明:Linux 系统编程中,在后面的代码如果没有特殊说明,都会在目录“/home/linsyscode”下新建
目录,然后在其中存放代码。

二、交叉编译 hello world

交叉编译 的目的是如何编译可以在开发板上运行的应用。
首先要确定一下环境变量,如下图所示,使用  cd ”  命令回到根目录,然后使用命令   vim .bashrc  ”打开环境变量文件。
如下图所示,进入最底行,这里使用的和编译内核的编译器一样就可以。
使用命令   “  cd /home/linsyscode/helloworld/  ”  回到  “ /home/linsyscode/helloworld ”目录中,再使用下述命令使用命令 ,将当前目录下的 C 文件 “ helloworld.c ”  编译成可在开发板运行的可执行文件 “helloworld”
arm-none-linux-gnueabi-gcc -o helloworld helloworld.c -static

说明:“arm-none-linux-gnueabi-gcc ”表示使用 arm 编译器,对应 iTop4412 开发板;

“-static”表示将库也编译进去。

如下图所示,编译成功,生成 “helloworld” 文件。

三、helloworld 编译进文件系统

当编译生成helloworld文件后,可以将程序直接编译进文件系统, 如下图所示,首先返回到/home目录下,再使用 cp 命令将编译好的 helloworld 程序复制到 system 下的 bin 目录,命令如下所示。
cp -r linsyscode/helloworld/helloworld minilinux/system/bin/

然后编译 system

四、重新编译system镜像

参照博文 :Linux系统编程之制作最小 linux 文件系统-CSDN博客  https://blog.csdn.net/Eva20192020/article/details/134361209?spm=1001.2014.3001.5502” 
中的第四步完成编译工具的安装。
安装好打包编译工具 “ make_ext4fs ” 之后。进入 “ /home/minilinux/ ” 目录, 再使用下述命令进行system的编译,如下图所示。
make_ext4fs -s -l 314572800 -a root -L linux system.img system

从而生成 system.img 文件系统镜像,编译成功后重新烧写 “ system.img ” 文件系统

五、开发板上最小Linux系统运行应用程序

启动开发板,直到启动最小系统,回车,如下图所示。
查看bin目录下是否有可执行helloworld文件,如下图。
则使用命令 ”  chmod 777 /bin/helloworld  ” 修改权限 。如下图。
然后 使用命令 “ ./bin/helloworld   运行 helloworld 程序,如下图所示。运行之后可以看到应用程序运行后的有打印信息

六、U盘运行应用程序

 本节介绍如何利用 U 盘将可执行程序拷贝到开发板并且在开发板上运行。

先将可执行文件 helloworld 拷贝到 U 盘,启动开发板,一直到启动完最小系统,如下图所示。

 回车,如下图所示,

如下图,可以识别U盘,并且知道盘符号为sda1。

如果文件系统第一次启动的时候没有/mnt/udisk 目录,所以需要使用命令  mkdir  /mnt/udisk ” 新建。如下图。

然后加载 u 盘,插入 u 盘的时候,被识别为 sda1,使用命令  “  mount /dev/sda1 /mnt/udisk  ”  加载 u 盘, 如下图所示。

 

这个时候可以直接在 U 盘中运行,如下图所示,使用命令  chmod 777 /mnt/udisk/helloworld  ”修改权限。

然后使用命令  ./mnt/udisk/helloworld  ”  运行 helloworld 程序,如下图所示。 

猜你喜欢

转载自blog.csdn.net/Eva20192020/article/details/134397249