维库电子市场网-十六年专注打造电子元器件采购网

一键发布采购 上传BOM

基于LPC2210的嵌入式Linux开发平台构建

出处:horimon 发布于:2010-11-04 16:14:39

     摘要:本文描述了ARM7 与uCLinux 操作系统的特点,详细讨论了基于ARM7 与uCLinux开发的平台构建过程。利用构建好的开发平台,通过示例来说明了基于NFS 方式的嵌入式Linux 的应用程序开发流程,该开发平台将进一步应用于放射性气体气溶胶连续 监测系统的数据采集。

  0 引言

  随着网络、通信、多媒体和信息家电时代的到来,嵌入式系统在经历了近 20 年的发展历程之后,进入了一个全新的发展阶段。Linux 操作系统以其稳定性好、可靠性高、源代码公开、可裁剪等优点已成为嵌入式领域的一股新兴力量,具有巨大的市场潜力和商业价值。而ARM 处理器是目前应用的为广泛的嵌入式处理器架构。因此,将Linux 操作系统移植到ARM 处理器平台上并应用于实际的产品是为流行的嵌入式产品解决方案。

  放射性气体气溶胶监测系统的数据采集与处理一般是以 8 位 单片机作为控制,直接导致硬件电路复杂、设计和调试难度加大、集成度低、稳定性差、系统升级难度较大等缺点。因此,本文采用LPC2210+uCLinux 的开发模式来设计整个监测系统的数据采集与处理模块,能够很好的提升整个系统的稳定性和可操作性。其中LPC2210 是基于32 位ARM7TDMI 内核的处理器,uCLinux 操作系统是开放源代码的嵌入式Linux 的典范之作,主要针对没有MMU( 存储器管理单元)的处理器,具有良好的可移植性和的网络功能。

  1 硬件平台介绍

  硬件平台采用 LPC2210 为系统硬件 开发板,系统框图如图1 所示。主要包括:存储系统、系统接口、用户接口3 个部分。LPC2000 系列ARM7 处理器I/O 口供电 电源为3.3V,内核及片内外设供电电源为1.8V,所以,系统设计为3.3V 应用系统。该系列的处理器可以使用外部时钟源,内部PLL 电路可调整系统时钟,使系统运行速度更快(CPU 操作时钟为60MHz)。

  该硬件平台扩展了2MB NOR Flash 和8MB PSRAM。为了方便程序调试以及终代码的固化应用,使用LPC2210 外部存储器接口的Bank0 和Bank1 地址空间。在使用uCLinux操作系统时,NOR Flash 用来存放bootloader 程序,以便于加载并引导放在NAND Flash 中的uCLinux 内核。

  LPC2210 具有外部总线接口,设计电路为16 位总线方式对网卡芯片RTL8019AS 进行访问,即数据总线D0~D15 与网卡芯片的SD0~SD15 连接,由于RTL8019AS 工作电压是5V,而LPC2210 的I/O 电压是3.3V,故需在总线上串接470 欧的保护电阻。网卡芯片的Vih 值为2.0V,故与LPC2210 连接时不需要加电平转换芯片。


图 1 系统结构框图

  2 嵌入式Linux 开发平台的构建

  本研究采用在宿主机上编写程序,然后通过交叉编译生成目标平台上可以运行的可执行文件,到目标板的特定位置运行的方法构建平台,即通常称为的“宿主机+目标板”的开发模式,如图2 所示。目标板分别通过RS-232 串口和RJ-45 以太网接口与宿主机连接。

  宿主机上需要运行 2 个窗口,即宿主机本机操作窗口和串口终端窗口。宿主机操作窗口可以是本机的操作终端,也可以是通过远程登录登录到Linux 服务器的操作界面。串口终端窗口可以是Linux 下的minicom,也可以是windows 下的超级终端。目标板可以看成一台计算机,串口终端就相当于这台计算机的显示器,作为人机交互界面。在宿主机编译、链接后得到的可执行文件到目标板上运行。


 

图2 嵌入式Linux 交叉开发环境

  2.1 uCLinux 操作系统的移植

  在开始移植操作系统之前,先准备好移植所需要的软件包,主要包括:交叉编译所需的编译工具包、uCLinux 源码包、完整的bootloader 程序及根文件系统。上述二种工具包都有众多版本,本文分别选择的是uCLinux-dist-20040408.tar.gz、arm-elf-tools-20040427.sh。整个移植工作分为三步:建立交叉编译环境;编译配置内核;bootloader 及根文件系统的移植。

  2.1.1 建立交叉编译环境

  将工具包 arm-elf-tools-20040427.sh 拷贝到目录/usr/src 下,为其增加可执行权限(#chmod755 arm-elf-tools-20040427.sh);然后安装arm-elf-gcc(# ./ arm-elf-tools-20040427.sh),安装完毕后查看/usr/local/bin 目录下是否存在arm-elf-gcc 等文件,如存在,表明交叉编译器安装成功;是添加交叉编译的路径,这一步在安装过程会自动执行和保存,并在下次启动之后仍然有效(#export PATH=$PATH:/usr/local/arm-elf/bin)。至此,交叉编译环境已经建立完毕。

  2.1.2 交叉编译uCLinux 内核

  在交叉编译内核之前,首先要对编译选项进行配置。为了配置过程的直观性,一般选择“make menuconfig”命令,进入uCLinux v3.1.0 Configuration 界面,主要是设置嵌入式处理器的型号以及操作系统的版本,然后选择Default all settings 后进行编译即可。交叉编译工作由以下命令完成:

  #cd /usr/src/uCLinux-dist // uCLinux-dist 为uCLinux 源代码所在目录

  #make distclean // 清除上编译所产生的辅助文件和目标文件

  #make menuconfig // 通过文本菜单方式配置uCLinux

  #make dep // 建立源代码文件的依赖关系

  #make //编译内核

  编译结束之后会在 uCLinux 安装目录下建立romfs 和images 两个目录。其中romfs 为romfs 文件系统的临时存放目录;images 为生成的目标代码目录,其中romfs.img 为romfs文件系统的映像文件,image.bin 为文件系统和内核代码的目标文件。

  2.1.3 bootloader 及根文件系统的移植

  通过 RS-232 串口将完整的bootloader 程序到目标板的NOR Flash 中。主要工作是在WinXP 下设置超级终端,波特率38400、8 位数据位、1 位停止位、无奇偶校验位、无流控制。通过运行程序,可以将bootloader 到NOR Flash 中。

  建立 uCLinux 超级终端,设置波特率为115200、8 位数据位、1 位停止位、无奇偶校验位、无流控制。命名为uCLinux。然后启动开发板,在超级终端中也即嵌入式开发板的“显示器”中,可以看到bootloader 的启动界面,通过FlashFXP 软件可以将目录bin\、boot\、etc\下的文件到开发板。

  2.1.4 uCLinux 的启动

  通过 bootloader 转载和引导刚刚生成的内核和文件系统。bootloader 引导内核的方式是:将内核影像文件和根文件系统至PSRAM 中直接启动,而不是从NAND Flash 中读入PSRAM,这种方法不需要烧写Flash。如图3 是uCLinux 操作系统启动后的界面。


图3 uCLinux 操作系统的启动界面

  2.2 NFS 辅助开发环境的建立

  网络文件系统(NFS,Network File System)是一种将远程主机上的分区(目录)经网络挂载到本地系统的一种机制,通过对网络文件系统的支持,用户可以在本地系统上像操作本地分区一样来对远程主机的共享分区(目录)进行操作。因此,通过建立NFS,把Linux 宿主机上的特定分区共享到待调试的目标板上,就可以直接在目标板上操作Linux 宿主机的特定分区,同时可以在线对程序进行调试和修改,大大方便了软件的开发。故NFS 是嵌入式Linux 开发的一个重要组成部分,下面详细说明如何建立NFS 辅助开发环境。

  2.2.1 宿主机端NFS 服务器的配置

  以 root 身份登录Linux 服务器,编辑/etc 目录下的共享目录配置文件exports,指定共享目录及权限等。

  执行如下命令编辑文件 /etc/exports:

  #vi /etc/exports

  在该文件中添加如下内容:

  /home/work 192.168.0.* (rw, sync, no_root_squash)

  然后保存退出。

  添加的内容表示允许 IP 地址范围在192.168.0.*的计算机以读写的权限来访问/home/work 目录。

  其中,/home/work 也称为服务器输出共享目录;rw 读写权限;sync 数据同步写入内存和硬盘;no_root_squash 为NFS 服务器共享目录用户的属性,如果用户是root,那么对于这个共享目录来说就具有root 权限。

  接着执行如下命令,以启动端口映射:

  #/etc/rc.d/init.d/portmap start

  执行如下命令启动 NFS 服务,此时NFS 就会激活守护进程,然后开始*client 端的请求:

  #/etc/rc.d/init.d/nfs start

  在 NFS 服务器启动后,还需检查Linux 服务器的防火墙等设置(一般需要关闭防火墙服务),确保没有屏蔽掉NFS 使用的端口和允许通信的主机,主要是检查Linux 服务器iptables,ipchains 等选项的设置,以及/etc/hosts.deny,/etc/hosts.allow 等文件。

  到此,宿主机端 NFS 服务器配置完成。

  在宿主机上进行 NFS 服务器的回环测试,验证共享目录是否能够被访问。在宿主机上运行如下命令:

  # mount –t nfs –o nolock 192.168.0.10:/home/work /mnt

  # ls /mnt

  命令将宿主机的 NFS 输出共享目录挂载到/mnt 目录下,因此如果NFS 配置正确的话,应该可以在/mnt 目录下看到/home/work 共享目录的内容。

  2.2.2 目标板端NFS 客户端的配置

  在宿主机端的设置成功之后,还需要对客户端进行相关的设置。在目标板系统的命令行下,执行如下命令来进行NFS 共享目录的挂载:

  /> mkdir /mnt/nfs //建立宿主机输出共享目录的挂载点

  /> mount –t nfs –o nolock 192.168.0.10:/home/work /mnt/nfs

  /> cd /mnt/nfs

  /> ls

  此时,目标板终端所显示的内容即为宿主机的输出目录的内容,即宿主机的输出目录/home/work 通过NFS 映射到了嵌入式目标板的/mnt/nfs 目录。由于Linux 默认下不启动NFS,每次宿主机进入Linux 之后都要重新完成NFS 的启动和挂载,比较麻烦。可以将以上的命令写入宿主机的脚本文件/etc/rc.d/rc.local 中,宿主机启动时会执行此文件。

  3 嵌入式Linux 应用程序的开发

  完成上述工作之后,嵌入式Linux 开发平台搭建成功。在这个平台上即可以进行相关应用程序的开发。本文采用NFS 方式进行应用程序的开发。

  基于 NFS 方式的应用程序开发,首先在宿主机上通过vi 编辑器进行源代码的编辑,然后通过交叉编译,生成可执行文件,在嵌入式目标板端通过NFS 方式挂载宿主机的共享分区,让应用程序直接运行在嵌入式目标系统,并进行调试。基于 NFS 方式的开发流程如图4 所示。


图 4 基于NFS 方式的开发流程图

  当开发人员完成了应用程序的调试之后,可以将调试好的应用程序到目标系统的Flash 中或者直接编译到嵌入式Linux 内核中,从而终形成一个独立的嵌入式应用系统。下面介绍一个示例来说明基于嵌入式 Linux的应用程序开发流程。该示例使用MiniGUI的静态框、按钮和编辑框空间,实现一个Login 系统登录的对话框。对话框中要求输入用户名和密码,如果输入正确的用户名和密码(例如用户名为51,密码为888888)则进入系统(显示一个主窗口),否则弹出错误对话框,并要求用户再次输入用户名和密码。实现本示例之前,必须确保已经搭建好MiniGUI 编译和开发板上的运行环境。

  实验步骤如下:

  步:编辑源程序

  在宿主机的工作目录/home/work 下使用vi 编辑器编辑源程序,源程序名为login.c。

  部分程序源代码如下:

  // 定义对话框

  static DLGTEMPLATE MyDlg =

  { WS_BORDER | WS_CAPTION,

  WS_EX_NONE,

  2, 50, 235, 190,

  "登录",

  0,

  0,

  6,

  NULL,

  0

  };

  // 定义对话框中的控件

  static CTRLDATA CtrlInitData[] =

  {

  { "static",

  WS_VISIBLE | SS_SIMPLE,

  25,10, 200, 16,

  IDC_SLOGIN,

  "请输入用户名和密码.",

  0,

  WS_EX_NONE

  },

  { "static",

  WS_VISIBLE | SS_SIMPLE,

  10,40, 60, 16,

  IDC_SUSER,

  "用户名:",

  0,

  WS_EX_NONE

  },

  { "static",

  WS_VISIBLE | SS_SIMPLE,

  10,80, 60, 16,

  IDC_SPASS,

  "密码:",

  0,

  WS_EX_NONE

  },

  { "edit",

  WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP,

  70,40, 140,25,

  IDC_EUSER,

  "",

  0,

  WS_EX_NONE

  },

  { "edit",

  WS_CHILD | WS_VISIBLE | WS_BORDER | ES_PASSWORD | WS_TABSTOP,

  70,80, 140,25,

  IDC_EPASS,

  "",

  0,

  WS_EX_NONE

  },

  { "button",

  WS_VISIBLE | WS_TABSTOP | BS_DEFPUSHBUTTON,

  80,120, 80,25,

  IDOK,

  "确定",

  0,

  WS_EX_NONE

  }

  };

  //设置用户名和密码

  #define USER_NO 3

  static char *g_user[USER_NO] = {"root",

  "51",

  "WXM"

  };

  static char *g_pass[USER_NO] = {"******",

  "888888",

  "2046"

  };

  第二步:修改对应的 Makefile.am 文件,设置编译login.c 文件

  在命令行下输入 # make

  当命令执行完毕之后,会在当前目录下生成名为login 的可执行文件。

  第三步:在目标板挂载共享目录,并运行程序。

  /> cd usr

  />usr> portmap&

  [26]

  /usr> mount –t nfs 192.168.0.10:/home/work /usr/pro –o nolock //挂载共享目录

  />cd /usr/pro

  /usr/pro ./login //运行程序,显示登入对话框

  第四步:使用目标板上的功能键 0~9 输入用户名和密码,使用TAB 键转移到下一个焦点,使用BACK 键删除已输入的字符,使用ENTER 确定输入。当用户名和密码输入正确时,登录成功,登入界面被关闭,并显示一个MiniGUI 主窗口。如图5 示:


图5 “登入”对话框和欢迎界面

  4 结束语

  作为实时放射性气体气溶胶监测系统的数据采集系统开发的重要组成部分,本文通过分析ARM7 和uCLinux 特点,将二者有机结合,构建了ARM7+uCLinux 的嵌入式通用开发平台,并展示了应用该开发平台开发应用程序的详细过程。该平台的应用克服了大多数实时监测系统因采用8 位单片机为控制实现数据采集而带来的硬件电路复杂、稳定性差、升级困难等问题。故本文作者创新点:通过采用ARM7+uCLinux 的嵌入式通用开发平台克服了大多数实时监测系统硬件电路复杂、稳定性差、升级困难等缺点;同时采用该开发平台在开发过程中使用NFS 方式开发的应用程序,为嵌入式应用软件的开发节省了大量的时间,大大提高了开发效率。


  

参考文献:

[1]. LPC2210  datasheet  https://www.dzsc.com/datasheet/LPC2210+_454566.html.
[2]. ARM7TDMI  datasheet  https://www.dzsc.com/datasheet/ARM7TDMI+_139812.html.
[3]. RTL8019AS  datasheet  https://www.dzsc.com/datasheet/RTL8019AS+_1096173.html.
[4]. D15  datasheet  https://www.dzsc.com/datasheet/D15+_1092218.html.
[5]. RS-232  datasheet  https://www.dzsc.com/datasheet/RS-232+_584855.html.


关键词: 嵌入式

上一篇: 基于Flash的大容量高速数据记录仪设计

下一篇: 基于嵌入式Linux和MiniGUI的SIP电话设计

版权与免责声明

凡本网注明“出处:维库电子市场网”的所有作品,版权均属于维库电子市场网,转载请必须注明维库电子市场网,https://www.dzsc.com,违反者本网将追究相关法律责任。

本网转载并注明自其它出处的作品,目的在于传递更多信息,并不代表本网赞同其观点或证实其内容的真实性,不承担此类作品侵权行为的直接责任及连带责任。其他媒体、网站或个人从本网转载时,必须保留本网注明的作品出处,并自负版权等法律责任。

如涉及作品内容、版权等问题,请在作品发表之日起一周内与本网联系,否则视为放弃相关权利。

相关技术资料
  • 什么是linux内核 linux内核的作用与功能2024/6/6 17:35:53
  • EPS Global - 谁需要嵌入式安全?2024/4/22 15:39:31
  • 什么是嵌入式SoC2024/4/3 16:20:28
  • EasyARM-i.MX283(7)A 默认供电方案2024/3/28 17:39:53
  • EasyARM-i.MX283(7)A 的快速入门2024/3/27 17:29:30
技术分类
  • 电源技术
  • 单片机与DSP
  • 汽车电子/智能驾驶
  • 动力电池/充电桩
  • 物联网技术
  • 传感技术
  • 嵌入式系统/ARM技术
  • 光电显示/LED照明
  • 家电/消费电子
  • 模拟技术
  • 元器件应用
  • 通信与网络
  • EDA/PLD/PLC
  • PCB技术
  • 工业电子
  • 安防监控
  • 电子维修
  • 电子测量
  • 基础电子
  • 其它
  • 医疗电子
  • RFID技术
广告
热门技术资料
  • 编码器的工作原理及作用1
  • 超强整理!PCB设计之电流与线宽的关系2
  • 电脑蓝屏代码大全3
  • 三星(SAMSUNG)贴片电容规格对照表4
  • 国标委发布《电动汽车安全要求第3部分:人员触电防护》第1号修改单5
  • 通俗易懂谈上拉电阻与下拉电阻6
  • 电容单位7
  • 继电器的工作原理以及驱动电路8
  • 跟我学51单片机(三):单片机串口通信实例9
  • 一种三极管开关电路设计10
最新技术资料
  • 广域网和局域网的区别是什么_如何区分这两种网络
  • 什么是linux内核 linux内核的作用与功能
  • 变压器容量计算公式及注意事项
  • adc0809模数转换程序及详解
  • 采用高度集成的半桥 GaN IC 的 400W LLC转换器
  • CMOS 工艺节点设计
  • 共模半导体推出40V,3ppm/℃低噪声、高精度基准电压GM7400,可替代ADI的ADR01等产品
  • Toshiba - 东芝扩展U-MOSX-H系列80V N沟道功率MOSFET产品线,助力降低电源功耗
  • adc0809引脚图及功能详解,adc0809与51单片机连接电路分析
  • 同步带张紧的三种方式特性介绍
上传BOM文件: BOM文件
*公司名:
*联系人:
*手机号码:
QQ:
应用领域:

有效期:
OEM清单文件: OEM清单文件
*公司名:
*联系人:
*手机号码:
QQ:
有效期:

扫码下载APP,
一键连接广大的电子世界。

在线人工客服

买家服务:
卖家服务:

0571-85317607

客服在线时间周一至周五
9:00-17:30

关注官方微信号,
第一时间获取资讯。

建议反馈
返回顶部

建议反馈

联系人:

联系方式:

按住滑块,拖拽到最右边
>>
感谢您向阿库提出的宝贵意见,您的参与是维库提升服务的动力!意见一经采纳,将有感恩红包奉上哦!

深圳SEO优化公司横岗百度爱采购价格酒泉模板推广推荐淮北百度竞价包年推广报价鞍山企业网站改版推荐坪地建设网站推荐来宾网站推广系统山南模板制作推荐朔州设计公司网站济南网站开发推荐恩施关键词排名包年推广哪家好鹰潭外贸网站建设价格资阳英文网站建设多少钱凉山SEO按天收费哪家好安康百度seo哪家好盘锦百搜标王推荐大鹏外贸网站设计多少钱四平网站改版公司娄底网站制作报价新余网站优化报价大运阿里店铺运营推荐清远阿里店铺运营哪家好永新关键词排名报价阳泉阿里店铺运营报价咸宁网站优化按天计费公司长春网站推广系统多少钱安庆高端网站设计赤峰seo推荐垦利模板制作垦利模板推广报价江门网站设计模板报价歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化