基于Arm-μClinux的应用开发

基于Arm-μClinux的应用开发,第1张

 

  近年来随着信息家电和手持设备的应用,嵌入式系统得到了极大的发展。全球每年生产的CPU中有超过80%是应用于专用性很强的各类嵌入式系统,而最初,这类CPU仅进行一些简单的控制,系统大多在超级循环加中断的方式下工作,而随着32位高性能专用CPU的出现(如ARM),嵌入式系统能够适应复杂的控制,进行多任务的处理,极大的提升了效率。当然这一切还需嵌入式 *** 作系统的支持。嵌入式Linux以其特有的魅力在市场中逐渐赢得了众

  多用户的青睐,本文即介绍了μClinux的开发环境的组建流程,及应用程序和驱动程序的开发过程。

  1 ARM-μClinux的简介

  Linux是在90年代初出现,近几年渐受欢迎的 *** 作系统,其最大特点是开放源代码。它原本被设计为桌面系统,现在广泛应用于服务器领域。而在嵌入式系统的领域中,linux逐渐成为新的热点。

  μClinux即是目前嵌入式linux中最流行的一种。μClinux是Micro-Control-Linux的缩写,字面上的理解就是”针对微控制领域而设计的Linux系统”,它和标准的linux的区别,也即μClinux的小型化体现在以下几点:

  首先,μClinux不支持MMU(内存管理单元),这是μClinux最显著的特征。μClinux采用实存储器管理策略进行存储器的分页管理,这有别于标准linux使用的虚拟存储器技术,从易用性上来说是一种倒退,因为这对开发人员提出了更多的要求。但是MMU需要相应的硬件支持,而在嵌入式系统中出于成本和应用的考虑,许多微控制器并没有相应支持MMU的硬件,所以没有MMU并不影响许多嵌入式系统选择μClinux *** 作系统。

  其次,μClinux默认文件系统为romfs,相对于标准linux一般采用的ext2文件系统要求更少的空间,这主要体现在两个方面,一是内核支持romfs文件系统所需的代码相对更少;二是romfs本身比较简单,在建立文件系统超级块时所需存储空间较小。但是romfs不支持动态擦写保存。

  再次,μClinux重写了程序库,对标准linux日益庞大的应用程序库和驱动程序库做了相应的删改。值得一提的是,μClinux对程序库采用静态连接的形式,这是由μClinux内存管理形式决定的。

  由此,μClinux的容量有了大幅度的减小,整个 *** 作系统的代码甚至小于900 K。即使如此,μClinux仍然保持了linux的主要优点,如稳定性,强大的网络功能和出色的文件系统支持等。同时μClinux已经成功移植到大部分嵌入式处理器中,国内已有公司成功推出带μClinux *** 作系统的产品。

  在嵌入式领域中,32 bit嵌入式处理器的内核基本采用RISC指令集,其中以ARM公司的ARM核和MOTOROLA公司的68 K/COLDFIRE系列最为流行,而在手持设备领域上更是ARM核的天下。

  本文对μClinux开发应用的简介即是基于μClinux-Samsung-20020318.tar+readhat9.0+arm-elf-tools-20030314.sh软件平台,配套的ARM芯片是三星4510。

  2 开发平台的建立

  建立μClinux的开发环境不外乎两种情况:一是购买商家发行的套件;二是利用网上资源自己组建。而后者省钱且能学到更多东西,是许多爱好者或学生的首选,下面列出自己组建步骤,以供参考:

  1) 首先安装reahat9.0,具体见其他相关资料;

  2) 在mac.os.nctu.edu.tw网站(台湾交大的一个专门针对sumsung4510芯片的μClinux网站)上下载源码,μClinux-Samsung-20020318.tar和arm-elf-tools-20030314.sh;

  3) 然后解压文件:在redhat的终端中切换到源码目录下执行以下命令:

  sh arm-elf-tools-20030314.sh  //即安装ARM-GCC工具

  tar xzfμClinux-Samsung-20020318.tar.gz //即解压源码

  4) 编译内核:进到解开的μClinux目录中,依次执行以下命令:

  make menuconfig在出现的对话框选中Samsung/4510B和uC-libc及其它所需选项

  make dep

  make clean

  make lib-only

  make user-only

  make romfs

  make image在这步会出现错误报告,可忽略继续下面的命令make

  最后在/images目录下可看到二进制的内核文件,即image.ram和image.rom,前者是未经压缩的RAM版本内核,后者相反。把image.rom烧录到flash中,重新上电,在串口1中即可看到启动信息,串口的波特率为19 200。这样Arm-μClinux的开发环境就搭建成功。

  

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/dianzi/2713218.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-08-17
下一篇 2022-08-17

发表评论

登录后才能评论

评论列表(0条)

保存