armlinux应用开发
Ⅰ 在arm上做linux开发,貌似只要把linux系统移植进去就,剩下的开发就不难了....
开发arm要熟悉非常多的东西。arm架构、linux系统、shell语言等,你所认为的是高层开发,那些只需要移植,比底层驱动容易很多
Ⅱ 关于ARM的Linux系统的编程搭建
哈哈哈. eclipse是什么? IDE怎么用这个呢? 你是刚学的?
Ⅲ 如何在Windows上建立arm-linux开发环境
在嵌入式产品大行其道的今天,Linux经过裁剪和优化而成的uClinux在嵌入式领域众多的操作系统中占有一席之地。从uClinux字面上就可以看出它的含义,即“微控制器领域中的Linux系统”。
uClinux从Linux 2.0/2.4内核派生而来,沿袭了Linux的绝大部分特性。它是专门针对没有MMU(内存管理单元)的CPU,并且为嵌入式系统做了许多小型化的工作。它通常用于具有很少内存或Flash的嵌入式操作系统。在GNU通用许可证的保证下,运行uClinux操作系统的用户可以使用几乎所有的Linux API函数。由于经过了裁剪和优化,它形成了一个高度优化,代码紧凑的嵌入式Linux。它具有体积小、稳定、良好的移植性、优秀的网络功能、完备的对各种文件系统的支持,以及丰富的API函数等优点。uClinux与Linux在兼容性方面表现出色,uClinux除了不能实现fork()外,其余uClinux的API函数与标准Linux完全相同。
uClinux的基本架构
Boot Loader:负责Linux内核的启动,用于初始化系统资源。这部分代码用于建立Linux内核运行环境和从Flash中装载初始化Ramdisk。
内核初始化:Linux内核的入口点是start kernel()函数。它初始化内核的其它部分,包括捕获、IRQ通道、调度、设备驱动、标定延迟循环,最重要的是能够fork“init”进程,以启动整个多任务环境。
系统调用函数/捕获函数:在执行完“init”程序后,内核对程序流不再有直接地控制权。此后,它的作用仅仅是处理异步事件(例如硬件中断)和为系统调用提供进程。
设备驱动:设备驱动占据了Linux内核很大部分。同其它操作系统一样,设备驱动为它们所控制的硬件设备和操作系统提供接口。
文件系统:Linux最重要的特性之一就是对多种文件系统的支持。这种特性使得Linux很容易地同其它操作系统共存。文件系统的概念使得用户能够查看存储设备上的文件和路径而无须考虑实际物理设备的文件系统类型。
交叉编译环境
uClinux是一个出色的开发平台,但是在我们能在电脑上编写自己的嵌入式应用程序之前,还必须做的一件事,就是给uClinux建立完善的编译环境。关于交叉编译,简单地讲是指在一个平台(操作系统)上可以生成能在另一个平台上执行的代码。
但是对于有些不是很懂Linux环境的人来讲,用uClinux开发程序会感到诸多不便。这里提供了在装有Windows系统的宿主机(开发时所用的机器)上建立交叉编译环境的方法。
为了在Windows下开发嵌入式操作系统应用程序,可以在Windows环境下装上Cygwin软件。Cygwin是一个在Windows平台上运行的Unix模拟环境,是Cygnus Solutions公司开发的自由软件。它对于学习掌握Unix/Linux操作环境,或者进行某些特殊的开发工作,尤其是使用GNU工具集在Windows上进行嵌入式系统开发,非常有用。
Cygnus首先把gcc、gdb等开发工具进行了改进,使它们能够生成并解释WIN32的目标文件。然后,把这些工具移植到Windows平台上去。一种方案是基于WIN32 APl对这些工具的源代码进行大幅修改,这样做显然需要大量工作。因此,Cygnus采取了一种不同的方法——他们写了一个共享库(就是cygwinl.d11),把WIN32 API中没有的Unix风格的调用(如fork、spawn、signals、select、sockets等)封装在里面。也就是说,他们基于WIN32 APl写了一个Unix系统库的模拟层。这样,只要把这些工具的源代码和这个共享库连接到一起,就可以使用Unix主机上的交叉编译器来生成可以在Windows平台上运行的工具集。以这些移植到Windows平台上的开发工具为基础,Cygnus又逐步把其它的工具(几乎不需要对源代码进行修改,只需要修改他们的配置脚本)软件移植到Windows上来。这样,在Windows平台上运行bash和开发工具、用户工具,感觉好像在Unix上工作。
生成交叉编译器
Cygwin软件目前最新版本是Cygwin DLL 1.5.9-1。它的网址是http:// Cygwin.com,上面就有该程序的压缩包,下载后解压安装就ok了。
在自己生成交叉编译器之前,首先对Cygwin进行一些设置。假设Cygwin安装在e目录下,在打开Cygwin窗口之前,进入到E:\Cygwin目录。在这个目录下,有一个文件名为Cygwin.bat的批处理文件,编辑该文件,在第一行后加入setCYGWIN--titlentea,这是因为Cygwin的启动批处理文件需要启动Unix文件系统模拟。修改完毕且保存后退出。双击桌面上的Cygwin图标,打开后默认用户为在Windows中登录的用户名(这里所使用的操作系统是Windows 2000 Professsional),在根目录(即E:\cygwin)下输入:
cd bin
mV Sh.exe Sh—original.exe
n —S bash.exe Sh.Exe
做上述几步的原因是大多数Linux系统把sh符号链接到bash,而Cygwin上的sh.exe和bash.exe是不同的,因此必须用bash代替sh。
从网站上下载生成工具链的各种源码,根据脚本文件build-ucLinux-tools.sh建立可在Windows下编译用户应用程序的交叉编译器,生成的交叉编译器最终被打包为arm-elf-tools-cygwin-yyyymmdd.tar.gz的文件,其中YYYY为生成交叉编译器的年,mm为生成交叉编译器的月份,dd为日期。
这里,需要注意的是在生成交叉编译器的过程中,可能会遇到多次错误,读者应该根据给出的出错信息,进行相应文件的修改。由于习惯上的原因,Linux下的压缩文件一般都是以.tar.gz或者.tgz结尾的。虽然用Windows下的解压软件,比如winzip或者winrar也可以解压这些文件,但是不推荐使用这类解压软件,因为可能会造成某些信息的丢失。
Ⅳ 关于arm linux学习
我现在和你一样,不过我放弃了,我转学PIC单片机了,不要盲目追崇ARM,自己合适才是最好的
Ⅳ Linux系统下ARM开发的流程是咋样的
上位机开发(一般为个人PC,LINUX系统)-》交叉编译(很多方式)-》烧写到ARM-》调试运行!
Ⅵ ARM和Linux交叉开发环境的如何搭建
2 嵌入式Linux开发环境的搭建及开发工具的使用
2.1宿主机——目标机模式
进行项目开发前,先要做的是搭建一套基于Linux操作系统的应用开发环境,一般由目标板(GEC2410开发板)和宿主机(LiUUX虚拟机)所构成。如图1所示。嵌入式系统通常是一个资源受限的系统,因此直接在嵌入式系统的硬件平台上编写软件比较困难,有时候甚拿是不可能的.目前一般采用的解决办法是首先在通用计算机上编写程序,然后通过交叉编译生成目标平台七可以运行的二进制代码格式,最后再下载到目标平台上的特定位置.卜运行.用来编译这种程序的编译器就叫交叉编译器。为了不跟本地编译器混淆,交叉编泽器的名字一般都有前缀。例如:arm.1inux—gcc。交叉开发环境是指编译、链接和调试嵌入式应用软件的环境,它与运行嵌入式应用软件的环境有所不同,通常采用宿主机/目标机模式。
2.2 Linux服务器交叉编译环境的建立
Linux服务器是嵌入式Linux内核编译、应用程序开发、编译等的公共平台,在一个嵌入式系统的开发过程中,有许多工作需要通过它来完成。交叉编译工具用于编译在目标系统上运行的嵌入式Linux内核及应用程序,包括编译器、连接器、调试器以及代码转换J二具等实用程序,一般以瓜缩软件包的方式提供给我们,称为开发工具链(Toolchain).目前基于ARM架构的交叉编泽工具链为:allll-liuux.gcc-2.95.3。
1)GNU交叉工具链的下载
从ARM官方网站F载删.arm.tinux.org.ak,可以从该站点下载2.95.3工具链:
ftp://tip.arm.Iinux.org.uk/pub/armlinux/toolehain/cross-2.95.3.tar.bz2
2)cross-2.95.3.tar.bz2包的安装步骤
a.#mkdir/mr/local/arm;
b.#cp CROSS一2.95.3.tar.bz2/usr/local/ann;
C.#tar jxvf crog$一2.95.3.tar.bz2;
d.添加环境变量:在文{牛/ete/bashrc文件最后添加:
export PATH=/usr/local/arm/2.95.3/bin:$PATH:
e.工具链安装完成。