基于LPC2210的嵌入式Linux开发平台构建
主机进入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 方式下载开发的应用程序,为嵌入式应用软件的开发节省了大量的时间,大大提高了开发效率。
ARM 相关文章:
- Linux嵌入式系统开发平台选型探讨(11-09)
- 基于ARM体系的嵌入式系统BSP的程序设计方案(04-11)
- 在Ubuntu上建立Arm Linux 开发环境(04-23)
- 达芬奇数字媒体片上系统的架构和Linux启动过程(06-02)
- SQLite嵌入式数据库系统的研究与实现(02-20)
- 革新2410D开发板试用手记(04-21)