嵌入式系统课程大作业设计报告

设计题目

基于Arm-Linux的嵌入式计数器设计

一、需求分析

1.根据系统功能,进行系统需求分析,设计嵌入式设备的软硬件总体方案,明确系统的软硬件层次划分;
        2.在1的基础上进行软硬件详细设计,包括硬件平台的功能模块划分及接口关系,交叉开发环境构建方案,各层次嵌入式软件的实现或移植方案等;
        3.应用层软件实现计数器功能:基于QT/E设计具有图形交互界面(GUI)的应用程序,当鼠标点击界面(窗体)上的按钮(button)时,对鼠标点击次数计数,计数值实时显示在界面(窗体)的的某个区域。基于QT/E交叉开发环境编写相应的代码,并用qvfb仿真GUI程序。

二、概要设计

要实现用户点击button,显示次数累加一。首先我们需要设计出GUI图形界面,为各个组件设置好属性和别名,便于在以后使用。然后将.ui文件生成.h 和 .cpp文件,在这两个文件中,我们对其中的代码进行添加,编写我们需要实现功能的代码。最后利用qvfb仿真GUI程序。

三、详细设计

1、基于 PC 机上 QVFB 模拟器的 Qt/Embedded 应用程序设计
在安装了QT/E开发环境的宿主机上,按以下步骤完成:
(1)注册环境变量(此时应当注册QT-X86的环境变量)

#cd /root/qt/x86-qt
#source setenv

建立一个 hello 目录,用于管理所以工程文件

#mkdir hello  #cd hello

(2) 设计界面
使用基于 X86 上的 Qt 的可视化界面设计工具 Qt Designer 设计界面。

   #designer hello.ui

进入 Qt Designer 设计好界面,保存并退出。
(3)生成 GUI 界面的代码
使用 Qt 的代码自动生成工具uic把设计好的界面 hello.ui 生成相应的 C++代码:hello.h 和 hello.cpp

        #uic -o hello.h hello.ui
#uic -o hello.cpp -impl hello.h hello.ui

生成的源文件中把我们设计好的界面定义为一个类,在我们的程序中使用这个类创建对象,并设为主控件就可以了。
(4) 编写代码,需要编一个 main 程序

#vim main.cpp

(5) 建立工程
可以使用 tmake 中的 progen 工具产生一个工程模板,然后自己修改。

#vim hello.pro

(6) 编译并仿真运行程序
        Qt 提供了生成 Makefile 文件的工具 tmake,可以根据不同平台的需要生成适合于不同平台的 Makefile 文件。在使用 tmake 工具前,应查看相应的环境变量是否正确。由于我们这个环节要编译在 PC 机上仿真运行的 Qt 程序,所以指定的编译器应该是含"linux-x86 -g++",在命令行里键入命令(echo $TMAKEPATH)检查环境变量是否正确。(注意,若在 x-86上,即便是指定为“linux-generic-g++”,可能也会报 “找不到 tmake.conf”的错。所以最好指定为"linux-x86-g++")。检查无误后,进行:

# tmake -o Makefile hello.pro
# make
# qvfb &
#./hello –qws

四、相应代码实现方案

1.main.c文件

#include<qapplication.h>
#include"hello.h"
int main(int argc,char **argv)
{
QApplication app(argc,argv);
Form1 *mainwindow=new Form1(0,"MainWindow");
app.setMainWidget(mainwindow);
mainwindow->show();
return app.exec();
}

2.hello.cpp文件

// 槽函数
connect (PushButton1 , SIGNAL(clicked()), this , SLOT(ClickButton()));
// 点击函数
void MainWindow: :ClickButton(){
static int i=0;
++i ;
QString str;
str=str . setNum(i);
TextLabel1->setText(str);
3.hello.pro文件
TEMPLATE=app
CONFIG+=qtopia warn_on release
SOURCES=main.cpp hello.cpp
HEADERS=hello.h
TARGET=hello

五、结果与分析

1.设计GUI界面

2.编写main.cpp

3.修改hello.h文件

4.修改hello.cpp

4.程序最终运行界面

六、心得体会

通过这次的嵌入式大作业,自己学到了很多的新知识。开始的时候觉得题目是非常的难,连在linux环境下怎么打开qt都不会,更不用说如何使用qt设计图形化界面了。后来通过四个嵌入式的实验,了解了一点红帽子的基础使用方法,还有qt的一些简单写法。在按照实验指导书一步一步操作的时候,依旧会报错,后面在同学的指导下,发现一直有一个地方没有改正确,开始的时候,觉得应该将名字改在最后,但是依然不对,后面才反应过来,应该先去生成的.h文件中看一下具体生成类的名字,然后再改。这个错误用了挺长的时间才改正过来。后面在运行最后一步执行文件的时候,发现不可以执行。询问老师后得知,是make没有产生可执行文件,后面发现make语句书写错误,改正后才运行正确。总的来说,通过这次的大作业,受益匪浅,学会了简单的Linux知识和qt的使用。

嵌入式系统课程大作业设计报告相关推荐

  1. HDU嵌入式实验课程大作业分析报告

    目录 作业要求 设计原理与思路 扩展任务说明 课程感受 友情链接 工程链接 作业要求 体能测试记录仪设计 基于课程发放的实验板,设计一个带有计时和数据采集功能的体能测试记录仪. 基本设计内容 功能1: ...

  2. 网页编程课程大作业实验报告HTML5 、CSS5 、JavaScript

    网页编程课程大作业实验报告 课程名称 网页编程 实验成绩 计算机学院制 一.实验内容与要求 利用HTML5 .CSS5 .JavaScript等知识,按照特定的主题制作一个完整的网站. 二.网站名称以 ...

  3. 象棋快棋赛电子裁判计时器的设计——《数字逻辑与数字系统设计》实验大作业设计报告

    数电Github资源 <数字逻辑与数字系统设计>实验大作业设计报告 实验题目 象棋快棋赛电子裁判计时器的设计 实验难度 ★★ 成员 姓名 班号 学号 1 郭茁宁 1837101 11837 ...

  4. java报告模板_Java大作业设计报告模板.doc

    Java大作业设计报告模板 <Java程序设计>大作业设计报告 设计名称 多人在线聊天小程序 学生姓名 学 号 学生班级 设计时间 设计成绩 一.问题描述及设计思路 问题描述:用java ...

  5. Java课程大作业设计:实现联网对战、实时聊天、多线程编程的五子棋项目

    前言 本项目是笔者和同学大二下Java课的时候的课程设计项目,该五子棋游戏的客户端可以实现联网对战.实时聊天.自定义昵称.对在线玩家并发出对战邀请.悔棋.撤回聊天消息.逃跑等多种功能,而服务端可以看到 ...

  6. 计算机html大作业聊天室,java大作业设计报告-JAVA聊天室.docx

    PAGE \* MERGEFORMAT18 JAVA程序设计 多人聊天室 设计目的 Java 编程语言是个简单.面向对象.分布式.解释性.健壮.安全与系统无关.可移植.高性能.多线程和静态的语言.本次 ...

  7. 嵌入式系统课程设计报告

    嵌入式系统课程设计报告 题目7(序号) 学生成绩查询系统(题目)              专    业:软件工程 班    级:   软件二班    姓    名:xx    学    号:     ...

  8. 嵌入式课程设计linux,嵌入式系统课程设计--基于U盘的linux操作系统的构建

    嵌入式系统课程设计--基于U盘的linux操作系统的构建 1 课程设计报告课程设计报告 课程名称课程名称 嵌入式系统课程设计嵌入式系统课程设计 设计题目设计题目基于基于 U盘的盘的 linux 操作系 ...

  9. 嵌入式系统课程设计题目

    简介:一些嵌入式系统课程设计题目,可以当做对你学习ARM的一个检测. 嵌入式系统课程设计-选题要求及课题 1.嵌入式系统课程设计时长两星期,要求学生分组进行课程设计,每组学生人数为2-3人(可在不超过 ...

  10. 【嵌入式系统课程设计——纸张计数显示装置设计】

    一.简介 本项目分享的是一个嵌入式系统的课程设计,老师给了多个题目供我们选择.我们组选择的题目是纸张计数显示装置设计,也是2019年全国大学生电子设计竞赛的F题. 有关这个题目的经验分享,网上已经出现 ...

最新文章

  1. Mysql的多表查询(表添加,多表查询练习:笛卡尔积、内连接、外连接、子查询、UNION组合查询)
  2. 营销获客场景下的个人类业务要件分析
  3. 效率低下的原因--开发者说
  4. 【iOS】The run destination iPhone is not valid for Running the scheme .
  5. 肇庆市二技学校计算机电算化,肇庆市有那些技术学校
  6. camelCase骆驼拼写法
  7. Windows PowerShell是啥?看完本文你就懂它了
  8. vue项目element-ui中el-select回车键隐藏下拉框,实现按回车键查询
  9. UART协议快速扫盲(图文并茂+超详细)
  10. 国内自主首创·融合数据采集与运动控制技术--运动数据采集卡
  11. JAVA的面向对象编程
  12. 全闪存存储 NetApp AFF A 系列 ——引领闪存的未来发展
  13. 顺序查找 题目编号:517
  14. SPI flash远程加载FPGA 应用
  15. 中国地质调查局:汶川地震原因已有初步结论
  16. ooVoo-Windows上的多人视频聊天
  17. debian云服务器项目,Debian做云服务器
  18. UML总结—包图(Package Diagram)
  19. error: failed linking references
  20. 敏捷开发大家谈(三)--敏捷开发技术在电子商务软件中的应用(2)

热门文章

  1. FLASH PLAYER 谷歌浏览器浏览网站无法正常显示的问题
  2. 不同/相同型号的路由器设置无线中继
  3. vue移动端项目vant组件库之style内置样式
  4. 抢注小程序“诱饵”多 轻信者被“套路”
  5. linux权限不够【操作方案】
  6. 使用matlab进行简单图像处理
  7. 推理的2种方式:演绎和归纳
  8. PHP面试技巧 之 职场暗语知多少?!
  9. PTA-今天是本学期的第几周的第几天?
  10. 调用百度地图API与语音API实现简易地图语音导航