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,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
完成。
相关文章推荐
- centos6 系统优化脚本
- 使用BASH编写Linux Shell脚本——1. Linux 介绍
- linux --> Linux变量之$#, $*, $@含义
- linux 发布脚本
- 使用Bash编写Linux Shell脚本-2.使用外壳语言
- LINUX IPTABLES 设定
- Centos7 安装mysql数据库
- 运维系列之二 Linux文件种类和扩展名
- Linux链接库四(多个库文件链接顺序问题)
- 使用Bash编写Linux Shell脚本-4.脚本初探
- Linux链接库三(C跟C++之间动态库的相互调用)
- Linux链接库二(动态库,静态库,库命名规则,建立个没有版本号的软连接文件)
- Linux --进程间通信--管道
- linux nano使用
- Linux内核树的建立-基于ubuntu系统
- linux 安装pip
- linux常用快捷键
- 每天一个linux命令(61):wget命令
- Linux链接库一(动态库,静态库,库放在什么路径下)
- CentOS 7.0安装配置LAMP服务器篇一:安装centos7