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

来源:互联网 发布:手机打码软件 编辑:程序博客网 时间:2024/06/14 19:07

</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,m68k,MIPS (big/little endian), PowerPC,SuperH (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

完成。





0 0