您的位置:首页 > 运维架构 > Linux

linux基础学习之 ARM嵌入式第一个程序

2016-04-12 16:06 260 查看
</pre><p></p><p>ARM嵌入式linux开发的学习过程真是心累,整个知识体系太庞大了,需要一点点学习,一点点摸索。之前一直在搞虚拟机的linux开发,昨天开始搞ARM嵌入式linux系统。</p><p></p><p>我用的开发板是HI3520D,刚开始开发板上需要烧写u-boot、内核、根文件系统。</p><p></p><p>这些都搞好了以后,然后搭建NFS系统,搭建NFS是为了便于开发。在虚拟机里把代码编译完成后,把可执行文件放到NFS挂载目录下,然后可以在串口界面直接执行,不需要下载,非常方便。</p><p></p><p>第一个程序当然是hello。</p><p></p><p></p><pre name="code" class="vb">#include<stdio.h>
int main(void)
{
printf("Hello World\n");
printf("my name is leo\n");
return 0;
}
~
~


在虚拟机里面先编译,

gcc -c hello.c

gcc -o hello hello.o

即可得到hello的可执行文件

./hello

就完成了。

但是这样并不能在ARM板子上执行,需要用交叉编译器编译,而不是gcc。

我们需要用的是arm-hisiv100nptl-linux-gcc

这是uclibc交叉编译器。

uClibc比一般用于Linux发行版的C库GNU C Library (glibc)要小得多,glibc目标是要支持最大范围的硬件和内核平台的所有C标准,而uClibc专注于嵌入式Linux.很多功能可以根据空间需求进行取舍。

uClibc运行于标准的以及无MMU的Linux系统上,支持i386,x86
64,ARM (big/little endian), AVR32,Blackfin,h8300,m68kMIPS (big/little
endian), PowerPCSuperH (big/little
endian), SPARC,和v850等处理器。
所以我们编译的过程应该是

arm-hisiv100nptl-linux-gcc -c hello.c

arm-hisiv100nptl-linux-gcc -o hello hello.o

这样得到的可执行文件就可以在ARM开发板上执行了。

把上述得到的可执行文件放到NFS目录下,在ARM开发板的串口中打开NFS目录,然后

./hello

完成。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: