嵌入式开发

更新时间: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 #include

#include #include #include #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 #endif

return 0;

四、 个人总结:

Minigui编译小程序求的就是简单实用,bitmap、scorbar等复杂控件的应用不出现在该小程序中,虽然程序的见面简单,但是实用性很强,右侧的两个箭头按钮分别可以打开浏览器窗口和文本编辑器窗口,为程序员提供了良好方便快捷的实用性功能。

程序开发的第一步就是要针对服务人群进行软件定位,我把minigui编译小程序定位于新手程序员的使用,让新手可以更快的提高自身知识,把更多的精力和情趣投入到minigui程序的开发中。

P-14

Minigui嵌入式程序开发 Minigui编译小程序 课程论文成绩评定表

指导老师评语:(评语50字左右,对论文选题、资料收集与处理、论证水平、写作能力和规范等进行评定。) 成绩评定: 指导教师签名: 年 月 日

郭梓豪

P-15

Minigui嵌入式程序开发 Minigui编译小程序 课程论文成绩评定表

指导老师评语:(评语50字左右,对论文选题、资料收集与处理、论证水平、写作能力和规范等进行评定。) 成绩评定: 指导教师签名: 年 月 日

郭梓豪

P-15

本文来源:https://www.bwwdw.com/article/8z18.html

Top