初步接触QT嵌入式

  拿到这块板子已经有一个多月了,处理器是三星公司的S5PV210AH-A0,主频最高可达1GHz,ARM CortexTM-A8内核,v7精简指令集,512MB DDR2 RAM,4GB 8-bit eMMC,这配置是相当高了。配备7寸的LCD显示屏,外部接口有17路外部中断GPIO,4路ADC,3路UART,1路SPI,2路PWM。

  首先拿到板子启动它自带的是andorid4.0系统,工作中要用的是QT,于是就折腾到内核和文件系统,学习如何下载内核和文件系统,理解板子带的demo,读配置bash,后来还自己编译了一遍QT4.8.6,因为板子自带的是QT4.5.0,而我电脑上装的QT Creater版本是3.0.1版本,在加载kits的时候报错,这也是自己觉得云里雾里的原因才折腾的。

  今天下载做了两天的界面程序到板子中运行的时候,遇到了问题,内存溢出,启动程序后系统自动的吧程序进程杀死了,于是使我意识到了在ARM平台上写程序不能像我在PC上写程序那样了,不计较对象的定义方式,直接在头文件中吧要用到的对象全部给定义出来,导致在ARM板子上出错,实验得出的经验呐。在对界面的设计的时候需要用到图片,最好的方式是通过调用,而不是将图片编译到代码中去。初步以为这个做界面的框架用不了多长时间,真正的去做的时候才感觉有很多问题需要解决,项目要求这周把界面框架做出来,我还以为这是一件很好完成的事情,结果这不是想象中的容易啊。

  问提情况如下:

  我搭建的界面框架有很多界面,其中就必然有一个主界面,我把主界面的按钮点击要进入的界面类全部在主界面类的头文件中定义为私有对象,如下

private:
    Ui::MainWindow *ui;
    Dialog_HistoryData historydata;//定义历史数据对话框对象
    Dialog_BeginDetection begindetection;//定义开始测试对话框对象
    Dialog_Setting setting;//定义设置对话框对象
    Dialog_SystemDebug systemdebug;//定义系统调试对话框对象
    Dialog_Help help;//定义帮助对话框对象
    Dialog_history_select history_select;//定义选择历史记录查看对话框对象

  这样就出现了上述的问题,主界面的这个类太大了,内存溢出(这里是不是内存溢出?按理说我的板子配置这么高,只跑了一些界面设计内容和加载了数据库以及很小的背景图片就出现了问题)。

Out of memory: Kill process 1608 (program) score 943 or sacrifice childKilled process 1608 (program) total-vm:400672kB, anon-rss:372764kB, file-rss:4kB

  经过思考作出以下方面的修改:

  类的对象的定义放在使用的地方,在什么时候使用,就在什么时候定义,做到即拿即用,用完归还。这里还遇到了一个问题,就是直接定义对象的时候,没有弹出窗口,而我定义指针对象并new后能够实现弹出窗口,所以这里就有问题。

//点击实时浓度按钮
void MainWindow::on_pushButton_RealTimeConcentration_clicked()
{
    real_time_concentration *widget_real;
    widget_real = new real_time_concentration();
    widget_real->showFullScreen();
    qDebug()<<"widget_real.show();";
}
时间: 2024-10-29 19:06:46

初步接触QT嵌入式的相关文章

转:Qt 嵌入式开发环境搭建

地址: http://www.cnblogs.com/lishixian/articles/3013897.html         作者:lsx_007 这里主要是记录了自己在搭建嵌入式开发环境时阅读的一些有价值的参考文档,文档主要来自于网络,由于是从文库中下载,所以也不知道 文档的出在哪?因为个人觉得总结的比较好,我暂且拿过来记录下,当然在此基础上也会加上我自己的理解!这篇文章主要是以问答的形式来组织. QT嵌入式开发环境是本文所要介绍的内容,我们先看看Qt的各个版本简介: 1.什么是QT

为什么要使用puppet 及初步接触

为什么要使用puppet 及初步接触 1.简介 云计算环境下,密度高,机器数量多,还要求弹性和伸缩性,这对于运维提出更高的要求.系统管理员需要经常安装操作系统,对系统参数进行配置和优化,对人员进行授权和定期更新公钥,对软件包进行升级,添加和配置某个服务.这些日常繁琐的任务不但单调.重复,也容易出错.为了提高效率,积累知识,不断改进,管理员一般会想到将这些任务使用脚本进行自动化,然后不断优化和改进这些脚本,可以大大提高效率.但是自己写的脚本,具有下面一些缺点: 可伸缩性是一个问题,要管理成千上万台

C#初步接触

如同非常多刚開始学习的人一样,刚接触C#的时候,也是一头雾水,学习了好长时间,都搞不清楚一些基本名称是什么.什么是C#?什么是.net?什么是visual studio?它们之间有什么关系?以下我们就从这几个问题入手,来探究C#. 关于上边的几个问题,我发现了一个神级的回答.假设我们把用开发软件比作写汉字,那么visual studio就是笔,.net 就是纸,C#就是汉字的书写规则,依次类推,我们就能够依照C#的规则,使用vs在.net上边编敲代码. 理解了这几个问题,我们就能够从C#的基础知

【Qt学习笔记】1.初步接触

一.前言 Qt是一个跨平台的C++图形面向对象的框架,今天开始学习并记录学习过程,希望通过这段时间的努力学会Qt的使用. 同时我也希望在学习的过程中对C++的各种特性有能深刻的认识. 此外,我在Qt初步的学习过程中,所用的环境应该是 VS2015 IDE 二.安装 官网下载Qt安装包和 Qt for VS addin,分别安装,并配置. 三.Hello World 接下来用Qt框架来完成第一个程序 首先打开VS,创建一个Qt工程 熟悉的C++界面,但Qt是有可视化界面的,点击解决方案管理器中的.

QT嵌入式平台配置

Qt5 on ARM platforms - IntroductionQt5 ARM 平台移植#################################################### Introduction: This short post covers the background of Qt5, architec tural details, configuring for eglfs with Graphics drivers, building, and known i

C语言初步接触

这几天对C语言有了初步的了解,看了不少的语法知识. #include<stdio.h> int main() { printf("hello world\n"); return 0; } 这是我接触的第一个简单的程序设计,相信大部分人都是从hello word开始的吧! 另外还接触到了变量的知识,变量的名字不要与关键词重名,这点很容易理解. 还有一个const关键词,它可以使变量在程序中保持它的初始值不变,只要把const关键词放在变量的类型前面(放在后面也是可以的)比如:

实验记录一 初步接触cortex-M3

应该说老早就在接触cortex-M3了.以前没想到会接触嵌入式,结果因为导师的缘故,在选择项目管理时,就呵呵了.不废话.搭配环境很简单,纯粹傻瓜式.可由于自己的马虎,却让自己一直困惑.记得在前段时间,不得已在实验室呆了一个通宵,也是醉了.北方的深夜是极其冷的,何况学校晚上现在还未曾供暖.最后才发现自己弄错了仿真器.贴贴撞撞下,现在也算是真正意义上跑出来第一个样例程序(右边D1测试灯闪烁).上次虽然也把程序烧进了CPU,可事实上失败的.关于CPU板卡上跳线引脚和跳线帽问题,我纠结许久后才发现跳线帽

初步剖析QT事件处理全过程(Windows)

一.说起Qt事件处理,在windows平台下,当然离不开Win32: Win32程序的基本结构: 1.注册窗口: 2.创建窗口: 3.启动由GetMessage和DispatchMessage构成的事件循环: 4.被注册的回调函数 WndProc 负责相应各类事件: Windows会为当前执行的每个Windows程序维护一个消息队列: 以上即简单介绍Windows消息处理流程: 二.QT事件入口类: QApplication :public QGuiApplication :public QCo

软件工程实践----初步接触软件工程的总结

这学期的软件工程课即将结束,下面我就对本学期的软件工程课做一下基本的总结. 首先,这是我学期初在阅读了相关资料后提的一些问题:http://www.cnblogs.com/bsdbch/p/4027935.html 这些问题,有的在实际的课程实践中碰到了,因此得到了更深一步的了解.比如关于如何进行需求分析.产品定位,再比如如何控制代码的质量,如何架构整体框架从而让子函数.子类变得更小.但是也有些问题,由于我们的产品没有达到用那些高级方法的高度,所以没有过多的了解.比如关于程序模块间的耦合. 下面