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
- linux基础学习之 ARM嵌入式第一个程序
- 我的嵌入式学习之路(一) linux 跑的第一个程序 LED灯
- 嵌入式第一个手写程序(关于KEIL-ARM)
- 第一个ARM程序
- 第一个嵌入式程序
- 【嵌入式Linux学习七步曲之第二篇 ARM+Linux开发环境】gdb+gdbserver的方式进行ARM程序调试
- 【嵌入式Linux学习七步曲之第二篇 ARM+Linux开发环境】gdb+gdbserver的方式进行ARM程序调试
- 第一个ARM + proteus 程序
- 第一个Linux+QT程序(ARM平台)
- 【原创】学习ARM的第一个程序--2008.01
- 【嵌入式Linux学习七步曲之第二篇 ARM+Linux开发环境】在AT91RM9200上通过nfs调试linux程序
- 【嵌入式Linux学习七步曲之第二篇 ARM+Linux开发环境】在AT91RM9200上通过nfs调试linux程序
- 嵌入式linux学习笔记之之arm工作模式
- OpenCV学习之第一个程序
- QT学习之2--第一个程序
- Spring学习之第一个AOP程序
- Java学习之第一个程序
- 嵌入式Linux驱动学习笔记(一)------第一个LED驱动程序
- 怎样用几何画板中制作热文本
- python写appium测试用例找控件的方法总结
- 【free】查看当前系统上物理内存和交换分区使用情况
- [poj 3254] Corn Fields 状态压缩DP(递推)
- hello world
- linux基础学习之 ARM嵌入式第一个程序
- file_get_contents();浏览器访问
- android(NDK+JNI)---NDK 编译和使用静态库、动态库
- easyui 校验
- python pip 安装
- 【fsck】检查并修复linux文件系统
- 第七周项目2-友元类(1)
- GC触发条件
- Zookeeper基础—Zookeeper介绍