嵌入式开发
更新时间:2024-03-15 07:29:01 阅读量: 综合文库 文档下载
华南师范大学增城学院
课 程 论 文
题目:基于minigui嵌入式程序开发
课 程 名 称 基于minigui嵌入式程序开发 考 查 学 期 2009 / 2010学年 第二学期 考 查 方 式 期末论文 姓 名 郭 梓 豪 学 号 070814108 专 业 07计算机系应用电子班 成 绩 指 导 教 师 陈卫丽 年 月 日 2010年 6月 21日
Minigui嵌入式程序开发 Minigui编译小程序 郭梓豪
基于minigui嵌入式程序开发
07计算机系电子应用郭梓豪 070814108
摘 要:
嵌入式系统已经深深地深入我们的生活中,无论是电子设备或者是电视机等电器,都带有自己的嵌入式系统。嵌入式系统大多是基于linux系统开发、裁剪而成的,而我们要使用这些嵌入式系统的性能,就需要开发相对应功能的软件。每移植到一个新的工作环境中,都必须安装GCC等的编译软件和动态链接库,使嵌入式程序在该硬件上有更加大更加多的发挥。我写了这个基于minigui程序开发的编译小软件,主要是方便程序员在新的工作环境中,可以简便地使用minigui来制作自己软件的一款辅助性小软件。
关键词:
嵌入式编译、终端指令、触发事件
当我们接触到一个新的开发环境,我们需要安装很多东西去营造编程环境,例如GCC,MINIGUI,KDE+,VC等,假如开发环境单单只具备了GCC等基本条件,在编译的过程,我们就需要记住大堆的链接库口令,还需要记住大量的命令语句。
过多繁琐的编译命令,不单单损耗我们的精神和思维,更多是混乱的文件整理和分类。没有GUI的帮助下,我们就难以对开发文件进行管理了。
基于这种繁琐的过程,我写出了如下这款小程序去帮助我们达到管理、编译文件的功能。
一、 软件界面介绍:
1. 主界面:
编程小软件包括:3个edit框,3个static文本,4个Button按钮,如下图:
P-1
Minigui嵌入式程序开发 Minigui编译小程序 郭梓豪
图表 1-MINIGUI编译小程序界面
图表1中:
第一个文本框为需要编译的C文件位置,第二个文本框为将要生成运行程序文件的位置,第三个文本框,就是编译该C文件对应需要到的链接库参数,分别有: -lpthread(主链接库)
-lminigui(minigui组件控件库) -ljpeg(调用jpeg图片格式的链接库) -lpng(调用png图片格式的链接库) -lz(调用z格式的链接库)
*-lttf(调用字符库链接库的ttf文件)
图表 2-基本使用方法(简单使用方法)
图表2中:
当C file中输入1.c,Putout file中输入1,即意思为将当前目录的1.c程序文件通过Opptions框中的参
P-2
Minigui嵌入式程序开发 Minigui编译小程序 郭梓豪
数进行一般编译,相当于gcc –o 1 1.c –lpthread –lminigui –ljpeg –lz –lpng –lz。运行语句之后,就会将与本程序在同一目录下的1.c文件编译,生成1.exe文件,存放位置也是在当前目录中。在终端中可以通过ls来查看。
图表 3-源文件异地使用方法
图表3中:
当需要编译的C语言源文件和该小程序不在同一目录,也不要担心,只要我们在Cfile中输入相应的C语言源文件目录即可,如图:1.c文件在/home下,就输入/home/1.c即可表示需要被编译的C语言源文件为/home/1.c,然后运行后,成功编译的1.exe文件在与小程序相同的目录下生成,而不是源文件目录/home。
图表 4-生成程序异地使用方法
图表4中:
当要生成的程序文件想放到特定的目录下,就可以在Putout file中输入需要生成的文件路径和文件名/home/1,运行成功后,就会将与本程序在同一个目录下的1.c源文件编译,生成的1.exe程序运行文件,就
P-3
Minigui嵌入式程序开发 Minigui编译小程序 郭梓豪
会放到/home目录下。
图表 5-自定义路径使用方法(半完全使用方法)
图表5中:
当C语言源文件与生成程序文件的存放路径都被指定的时候,本程序就会将你输入的路径作为源文件和输出程序存放的路径,即是将/home/1.c源文件编译成1.exe运行程序,然后存放到/home目录下。这是一种相当人性化的设置,无论你的源文件藏得多么复杂也可以一键编译,无论你生成的文件多么乱,多么多,也可以井井有序地存放到指定的文件路径中去。达到软件开发、编译调试的小功能。
P-4
Minigui嵌入式程序开发 Minigui编译小程序 郭梓豪
图表 6-编译例子
图表6中:
根据前5个例子用法,所生成的文件就如图表6中一样,程序放在桌面,也就是/root/desktop下。1.c分别存放在/root/desktop下和/home下,也成功便于出1.exe运行文件,分别存放在/root/desktop和/home下。
二、 软件特点:
Minigui编译小程序的特点就是方便编程人员可以更快捷更方便的去编译和调试程序。考虑到个人使用的习惯问题,把原有的编译完自动使用qvfb进行挂载调试部分删除,更有利程序员去检阅程序整体的准确性;基于方便和小型的初衷,放弃了以选择对话框等浏览器选择文件的定位源文件和定位输出运行程序部分功能和代码,这样更利于初学程序员去学习如何在Linux系统下编译嵌入式软件。
Minigui编译小程序还有显示错误信息功能,当被编译c语言源文件出现语法和程序错误,在运行的
P-5
Minigui嵌入式程序开发 Minigui编译小程序 郭梓豪
终端也会显示出编译的情况,例如哪行出错,什么错误。当被编译的c语言源文件没有出现错误,则不会显示错误信息,令编译环境更加健康。
Minigui编译小程序还具备飞漫公司产品minigui1.6.1.4编程环境的其他格式编译功能。具备对-lpthread链接库编译功能,分别可以编译出执行文件程序和minigui-threads文件。
三、软件代码:
#include
#include
#define IDC_CFILE #define IDC_PUTOUTFILE #define IDC_OPPTIONS #define IDC_YUAN #define IDC_MUBIAO #define IDC_OK #define IDC_CANCLE #define IDC_YUANXUANZETREE HWND hWnd; HWND hDlg;
static DLGTEMPLATE Dlgbianyi = {
WS_BORDER | WS_CAPTION,
WS_EX_NONE,
此部分代码为程序包含的头文件 101 102 103 此部分代码为定义程序各个控件和窗口的句柄,例如 101代表的是IDC_CFILE,104 也就是代表Cfile这个静态框的句柄。 105 113 114 150 此部分代码为minigui编译小程序的窗口控件定义 P-6
Minigui嵌入式程序开发 Minigui编译小程序 郭梓豪
0, 0, 320, 200,
\编译小程序\
0, 0,10, NULL, 0 };
static CTRLDATA Ctrlbianyi[] = { {
\
WS_VISIBLE , 10,10,50,20, IDC_STATIC, \:\ 0 }, {
\
WS_VISIBLE ,
10,50,70,20,
IDC_STATIC,
此部分代码为minigui编译小程序的窗口中各个控件的定义语句,按控件头文件的定义,分别是控件类型,控件参数,控件坐标大小,控件句柄,控件内容 P-7
Minigui嵌入式程序开发
\
0 },
{
\
WS_VISIBLE |WS_TABSTOP, 70,10,200,20, IDC_CFILE, \ 0 }, {
\
WS_VISIBLE |WS_TABSTOP, 70,50,200,20, IDC_PUTOUTFILE, \ 0 }, {
\ WS_VISIBLE , 10, 90, 70, 20, IDC_STATIC, \ 0
Minigui编译小程序 此部分代码为minigui编译小程序的窗口中各个控件的定义语句,按控件头文件的定义,分别是控件类型,控件参数,控件坐标大小,控件句柄,控件内容 郭梓豪
P-8
Minigui嵌入式程序开发 Minigui编译小程序 郭梓豪
}, {
\
WS_VISIBLE ,
70,90,200,20,
IDC_OPPTIONS,
\
0 }, {
\
WS_VISIBLE | BS_DEFPUSHBUTTON |
WS_TABSTOP | WS_GROUP,
10,130,70,30,
IDOK,
\
此部分代码为minigui编译小程序的窗口中各个控件的定义语句,按控件头文件的定义,分别是控件类型,控件参数,控件坐标大小,控件句柄,控件内容 P-9
Minigui嵌入式程序开发 Minigui编译小程序
0 },{
\
WS_VISIBLE | BS_DEFPUSHBUTTON |
WS_GROUP,
280,7,29,29,
IDC_YUAN,
\
0 },{
\
WS_VISIBLE | BS_DEFPUSHBUTTON |
WS_GROUP,
280,47,29,29,
IDC_MUBIAO,
\
郭梓豪
此部分代码为minigui编译小程序的窗口中各个控件的定义语句,按控件头文件的定义,分别是控件类型,控件参数,控件坐标大小,控件句柄,控件内容 P-10
Minigui嵌入式程序开发 Minigui编译小程序 郭梓豪
0 }, {
\
WS_VISIBLE | BS_PUSHBUTTON |
WS_TABSTOP,
(270-70), 130, 70, 30,
IDCANCEL,
\
0 }, };
static CTRLDATA Ctrlyuanxuanze[]= { { \
WS_VISIBLE , 10,10,50,20, IDC_YUANXUANZETREE,
此部分代码为minigui编译小程序的窗口中各个控件的定义语句,按控件头文件的定义,分别是控件类型,控件参数,控件坐标大小,控件句柄,控件内容 P-11
Minigui嵌入式程序开发 Minigui编译小程序 郭梓豪
\ 0 }, };
static int DialogYuanxuanze ( HWND hyxz,int message,WPARAM wParam, LPARAM lParam) { }
static void InitDialogbox(HWND hWnd) { Dlgbianyi.controls = Ctrlyuanxuanze;
DialogBoxIndirectParam(&Dlgyuanxuanze, hWnd,DialogYuanxuanze, 0L); }
static int Dialogbianyi ( HWND hDlg, int message, WPARAM wParam, LPARAM lParam) {
char out[300]=\ char cfile[50]; char putoutfile[50]; char opptions[50]; char file[300]=\ switch (message) {
case MSG_COMMAND:
switch (wParam)
{
此部分代码为minigui编译小程序主窗口主程序代码,分别是定义数组和处理事件消息机制 P-12
Minigui嵌入式程序开发 Minigui编译小程序 case IDC_YUAN:
InitDialogbox(hWnd); break; case IDOK:
{
GetWindowText(GetDlgItem(hDlg,IDC_CFILE),cfile,40);
GetWindowText(GetDlgItem(hDlg,IDC_PUTOUTFILE),putoutfile,40); GetWindowText(GetDlgItem(hDlg,IDC_OPPTIONS),opptions,40); strcat(out,putoutfile); strcat(out,\ strcat(out,cfile); strcat(out,\ strcat(out,opptions); strcat(file,putoutfile); system(out); system(file);
} break; case IDCANCEL: EndDialog (hDlg, wParam);
break;
}
break;
}
郭梓豪
此部分代码为获取文本框内容以及拼合编译语句核心代码 P-13
Minigui嵌入式程序开发 Minigui编译小程序 郭梓豪
}
return DefaultDialogProc (hDlg, message, wParam, lParam);
int MiniGUIMain (int argc, const char* argv[]) {
Dlgbianyi.controls = Ctrlbianyi;
DialogBoxIndirectParam (&Dlgbianyi, HWND_DESKTOP, Dialogbianyi, 0L); }
#ifndef _LITE_VERSION #include
return 0;
四、 个人总结:
Minigui编译小程序求的就是简单实用,bitmap、scorbar等复杂控件的应用不出现在该小程序中,虽然程序的见面简单,但是实用性很强,右侧的两个箭头按钮分别可以打开浏览器窗口和文本编辑器窗口,为程序员提供了良好方便快捷的实用性功能。
程序开发的第一步就是要针对服务人群进行软件定位,我把minigui编译小程序定位于新手程序员的使用,让新手可以更快的提高自身知识,把更多的精力和情趣投入到minigui程序的开发中。
P-14
Minigui嵌入式程序开发 Minigui编译小程序 课程论文成绩评定表
指导老师评语:(评语50字左右,对论文选题、资料收集与处理、论证水平、写作能力和规范等进行评定。) 成绩评定: 指导教师签名: 年 月 日
郭梓豪
P-15
Minigui嵌入式程序开发 Minigui编译小程序 课程论文成绩评定表
指导老师评语:(评语50字左右,对论文选题、资料收集与处理、论证水平、写作能力和规范等进行评定。) 成绩评定: 指导教师签名: 年 月 日
郭梓豪
P-15
正在阅读:
嵌入式开发03-15
我国资本市场对外开放进一步深化05-10
写寒假的作文(精选8篇)03-31
中国传统文化手抄报02-12
内河船员(一类)轮机实操考试资料-大管轮09-13
以人为本 安全发展07-02
向海底捞学习服务心得体会05-11
结论怎么写02-19
太平镇风景名胜古迹典故拾零10-29
大六壬04-14
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 嵌入式
- 开发