如何在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也可以解压这些文件,但是不推荐使用这类解压软件,因为可能会造成某些信息的丢失。
温馨提示:内容为网友见解,仅供参考
第1个回答  2016-07-03
用虚拟机。
第2个回答  2021-02-25

嵌入式Linux的ftp最常用来完成开发板和开发环境Linux系统之间的的文件传输功能,避免了频繁的U盘拷贝的过程。

如何在Windows上建立arm-linux开发环境
      要在Windows上建立arm-linux开发环境,您需要先安装cygwin(见“cygwin完全安装指南”)。          1. 解压交叉编译器       下载:FriendlyARM.tgz   下载gdbserver(for ARM920t):gdbserver.tgz   下...

如何在Windows上建立arm-linux开发环境
2是windows安装虚拟机,在虚拟机里面安装linux系统。相对第一种 这种更简单一些,推荐使用vmware,然后装一个linux,linux版本推荐,红旗的奥运会特别版或者深度技术的,因为这是国人开发的,更适合国人一些。

...下如何使用visualstudio或qt进行armlinux程序开发环
首先,安装Qt Creator并创建Qt Widgets Application工程。在构造函数中,使用Qt定时器实现每秒更新显示。界面设计通过画图方式实现。在Windows平台上编译运行程序,确保其具备适应窗口大小变化的能力。接下来,在Ubuntu中使用交叉编译工具链进行ARM平台的Qt程序编译。复制Windows工程源码至Ubuntu,使用qmake自动生成Ma...

如何搭建嵌入式开发的硬件环境
首先,这个教程在仅使用附带的光盘镜像文件里的资料的情况下,所搭建的嵌入式 ARM 开发环境可以满足 ARM 核为 ARM920T 及 CORTEX-A8 的嵌入式开发需求。其次,搭建针对处理器为 ARM920T 的开发环境步骤如下:WINDOWS 系统:1、 用 WINRAR 或 7zip 打开镜像文件 Linux-dev.iso,将\/WIN32\/Daemon_To...

如何在WINDOWS下开发嵌入式LINUX程序AM335X工控模块
1.建立开发环境 操作系统一般使用RedHat-Linux,版本从7到9都可以,选择定制安装或全部安装,通过网络下载相应的GCC交叉编译器进行安装(例如arm-Linux-gcc、arm-μclibc-gcc),或者安装产品厂家提供的交叉编译器。2.配置开发主机 配置MINICOM,一般的参数为波特率为115 200bps,数据位为8位,停止位为1...

如何在windows下构建arm linux
1、可以 2、Qt Creator只是一个集成开发工具,这个版本随意,网上下就可以,Qte不是用最新,而是最好用跟你在Linux开台开发一样的。首先要在Linux下交叉编译Qte的库,然后再将Lib这些文件移植在板子上,最后通过交叉编译好的库去编译你在pc

arm-linux 交叉编译环境的建立,希望有清楚的人解答,复制的闪人_百度知 ...
对于arm-linux-gcc,只要你安装好并设置好了路径(环境变量)后,在一个终端中输入#arm-linux-gcc -v 那么你一般可以看到你安装的arm-linux-gcc 版本信息,到此你就可以使用它编译你的源程序,然后将生成的可执行文件下载到arm开发板中就可以运行了。还有什么问题再说吧,我也是一个人摸索出来的,...

手把手教你搭建ARM64 QEMU环境
首先,准备开发环境:你的PC系统:Windows 10虚拟机软件:VMware 17虚拟机操作系统:Ubuntu 20.04目标模拟的64位CPU:Cortex-A57使用版本:qemu-8.2.0、Linux Kernel 5.10.209和busybox-1.36.1构建步骤如下:从qemu官网下载并解压qemu-8.2.0源码。确保你的主机Python版本大于3.8,如需升级,访问...

如何利用Eclipse C\/C++搭建嵌入式ARM开发环境
Windows下的Eclipse环境搭建:1. 下载并安装Eclipse C\/C++ 2. 下载交叉编译器,之前在Linux都用的arm-linux-gcc,后来使用TI的ti-sdk-am335x-evm-08开发包,里面安装的编译器是arm-none-linux-gnueabi-gcc,都是能用的,所以我也选择了arm-none-linux-gnueabi-gcc作为交叉编译器,下载windows平台的...

ARM裸机开发篇1:Cortex-A7开发环境搭建
再者,安装Eclipse for ARM。选择包含eclipse-cpp-helios-SR1-win32.zip的目录解压后,运行eclipse.exe文件。在Eclipse中创建C工程,通过指定工程存放路径开始使用。最后,在Eclipse中进行Debug调试配置。使用openOCD软件进行调试,连接开发板并运行代码。通过Xshell 6软件连接MP1,进行代码调试和观察。至此,...

相似回答