随着嵌入式系统的迅速发展和广泛应用,嵌入式Linux以其强大的性能和开放性,越来越被开发人员所推崇。以CAI、IBM等公司和组织所建立的Embedded Linux Consortium(ELC)的成立更标志着嵌入式Linux已经走向标准化阶段。现在,各种基于Linux的嵌入式系统已被用于各行各业中。基于源代码完全开放的优势和可以与商业操作系统相媲美的良好性能,人们对基于嵌入式实时Linux平台的开放性的数控系统展开了很多的研究和探讨。国际上一些组织和研究机构在利用嵌入式Linux方面构建中高档数控方面已经取得了一些实质上的突破和进展[6]。
系统构建方法与策略
目前控制工程网版权所有,作为世界上最大的开源项目CONTROL ENGINEERING China版权所有,Linux技术取得了飞速的发展,在桌面应用、海量运算、消费类电子及工控产品等领域都有着广泛的应用。由于具有非常重要的实际价值,微型Linux系统构建一直被当作嵌入式领域的一个研究热点,也取得了一些研究成果CONTROL ENGINEERING China版权所有,如基于软盘的小型Linux系统(floppy disk Linux project)、自启动U盘Linux项目(tiny Linux system with flash
基于实际系统开发的需要,在借鉴国际上一些优秀的开源项目的基础上,本文作者给出了一整套构建专用实时数控系统平台(Real time numerical control system platform -RCNCP)的方案和策略。
构建该实时数控系统平台的两个主要目标分别是:为达到验证应用程序接口的目的www.cechina.cn,研发一整套能实现所有数控模块功能的软件;建立一个媒介平台,在此基础上进行二次开发,可以方便的实现对机床、机器人、坐标测量机等自动化设备的实时控制[2]。
基于RCNCP作为一个控制系统软件平台特性,笔者着重从是实时内核裁减与构建、Linux系统整合等两个方面。
实时内核裁减与构建
考虑到源代码的开放性及实时LINUX系统的迅速发展,笔者采用了REALTIME-LINUX作为 RCNCP控制系统的底层平台。具体适用版本Rtlinux-3.1和Linux核心2.4.16。
具体实现步骤如下:
获得需要的源代码文件:
Linux-2.4.16.tar.gz Linux核心
Rtlinux-3.1.tar.gz Rtlinux源代码
patch_rtl-2.4.16、patch_rtlinux-3.1 补丁文件
解压缩源代码并给打补丁
tar-zxvf /tmp/rtlinux-3.1.tar.gz
tar zxvf /tmp/linux-2.4.16.tar.gz
patch p1patch p1
编译Linux系统核心
make menuconfig(或者make xconfig),在相应出现的选择界面上选中rtlinux所需的特性。如Disable APM feature、Disable SMP feature、Enable RTC at the character device section (实时时钟)
Enable Frame-buffer support。然后执行编译操作
make dep、make bzImage、make modules、make modules_install。
最后得到一个可启动的系统核心bzImage。
编译Rtlinux系统核心
用刚才得到的系统核心重新引导系统,进入Rtlinux-3.1目录下, 执行以下操作:
make config、make、make devices、make install
最后输入rtlinux start脚本文件CONTROL ENGINEERING China版权所有,就会在屏幕上看到相应的rtlinux 启动信息。
Linux系统整合
一个稳定的实时内核是整个系统工作的重要基础。但是仅仅有内核系统是不能工作的,必须配以完整的启动引导程序、文件系统、人机界面等支持。
考虑到实际工程需要,笔者采用Compact Flash card作为媒介来存储Linux系统和应用程序,采用GRUB为系统引导程序,采用有“瑞士军刀”美誉的BusyBox提供文件系统支持。
具体实现步骤如下:
系统分区及格式化
首先笔者需要一个Compact-Flash Card Reader来连接CF卡和宿主计算机,市场上一般提供USB接口的读卡器。
首先,通过读卡器将CF卡插入USB接口,使用下面的命令对其进行分区和格式化:
fdisk/dev/sda
其中/dev/sda设备指用户的优盘。如果用户的机器中还有其它的SCSI设备,那么可能