-------------------------------------资源来源于网络,仅供自学使用,如有侵权,联系我必删.
第一:
本章导读
本实验介绍经典的 helloworld 程序,就几行代码,非常简单,主要是需要学习一下应用程序如何编译、如何运行、如何修改权限等等实际操作。
• 标准输入/输出
– 格式化输出函数printf
– linux终端
• 在Ubuntu系统home目录下新建目录linuxsystemcode
– 后面大部分实验代码都会放在这个文件下编译
• 编写编译运行第一个helloworld程序
第二:
代码简介
如下图所示,代码非常简单,只要有 C 语言的基础就可以很轻松的搞定。
#include
main()
{
printf("Hello World!\n");
}
1)如上图所示,首先调用了头文件“stdio.h”,这是告诉编译器本程序中包含标准输入/输库的信息,只不过在学习 C 语言的时候,输入/输出是在 PC 的图形界面。
2)在 linux 中,这个标准输入/输出是通过串口,也就是通过超级终端来实现的。
接着调用 main 函数作为程序入口,main 函数中调用了 printf 打印函数,也就是把其中内容打印到超级终端。最后在开发板上运行这个程序的时候,应该会在超级终端中打印“HelloWorld!”。
说明:打印消息后面做了些许修改,把打印字符串改为"Hello World,Linux!"
第三:
编辑和目录介绍
如下图所示,在 Ubuntu 下建立一个专门的文件夹存放“Linux 系统编程”中的源码和程序。在目录“/home”下,在 root 用户下,使用命令“mkdir linuxsystemcode”新建目录“linuxsyetemcode”(用户也可以建立在其它目录下)。
第四:
将“helloworld.c”拷贝到前面新建的“helloworld”目录下
一共有二种方法:
1.使用命令“vi helloworld.c”或者“vim helloworld.c”命令 创建C文件后,编写代码
2.利用SSH Secure File Transfer Client工具,把windows里面的文件上传到虚拟机里面(我推荐这种方法)
第五:
编译
1)使用命令“cd /home/linuxsystemcode/helloworld/”回到“/home/linuxsyetemcode/helloworld”目录中
2)使用命令“arm-none-linux-gnueabi-gcc -o helloworld helloworld.c -static”,将当前目录下的 C文件“helloworld.c ”编译成可执行文件“helloworld”
第六:
修改权限和运行-U 盘
1)先将可执行文件 helloworld 拷贝到 U 盘
2)U盘插入开发板后,启动开发板如下图所示
3)如果文件系统第一次启动的时候没有/mnt/udisk 目录,所以需要使用命令“mkdir /mnt/udisk”新建
4)然后加载 u 盘,插入 u 盘的时候,被识别为 sda4,使用命令“mount /dev/sda4 /mnt/udisk”加载 u 盘,如下图所示。
5)这个时候可以直接在 U 盘中运行,如下图所示,使用命令
“chmod 777 /mnt/udisk/helloworld”修改权限。
6)然后使用命令“./mnt/udisk/helloworld”运行 helloworld 程序,如下图所示。
-------------------------------------------------------------------------------------------------
第七:
也可以将程序拷贝到 bin 目录下,在 linux 系统中一般这个 bin 目录就是放可执行程序的。
1)使用拷贝命令“cp -r /mnt/udisk/helloworld /bin/”如下图所示。
2)然后修改一下权限,使用命令“chmod 777 /bin/helloworld”,如下图所示。
3)运行 helloworld 程序,使用命令“./bin/helloworld”,如下图所示,运行之后可以看到有打印信息“Hello World!”。
-------------------------------------------------------------------------------------------------
第八
将 helloworld 编译进文件系统
可以将程序直接编译进文件系统,这样就可以不用 U 盘或者 TF 卡来拷贝程序了。
如下图所示,使用 cp 命令将编译好的 helloworld 程序赋值到 system 下的 bin 目录。
知道有这种方法就行,没有亲手实现,自己烧录的ISO里面没有minilinux这个文件,无法实现。