好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

第2次课 MeeGo开发流程与开发基础.ppt

71页
  • 卖家[上传人]:012****78
  • 文档编号:132703652
  • 上传时间:2020-05-19
  • 文档格式:PPT
  • 文档大小:1.22MB
  • / 71 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 第2次课MeeGo开发流程与开发基础 内容 嵌入式应用开发流程嵌入式应用开发环境嵌入式应用开发流程嵌入式开发工具链MeeGo的开发工具链宿主机与仿真机环境配置QT知识Qt介绍Qt安装基于QT的HelloWorld示例程序Qt中主要类的介绍Qt的信号槽机制Qt中主要控件介绍 一 嵌入式应用开发流程 嵌入式应用开发环境交叉开发编程语言嵌入式应用开发流程嵌入式开发工具链 交叉开发 通用计算机的软件开发一般都是以本地 Native 编译或开发的方式进行 嵌入式系统一般不支持本地环境开发 其软件开发通常采用交叉 Cross 开发的方式 交叉开发环境建立在宿主机 Host 上 宿主机又称开发机 一般是一台通用计算机 如PC 对应嵌入式系统称为目标 Target 机 目标机指各式各样的嵌入式设备 例如 掌上电脑等 或者是嵌入式厂商提供的一套专用于开发的评估板 evaluationboard 所以又称开发板 甚至是基于软件的模拟器 开发时使用宿主机上的交叉编译 汇编和链接工具形成可在目标机上执行的二进制代码 然后把可执行文件下载到目标机上运行 嵌入式系统开发过程中不仅编译 包括链接等步骤 采用交叉的方式 调试也常采用交叉的方式 交叉开发 采用交叉开发的原因主要原因在于目标机上往往无法进行有效的本地编译 目标机硬件本身在开发过程中还不能使用或还不够稳定 目标机平台上缺乏完整的本地编译工具 环境 目标机系统本身性能不够导致编译太慢 嵌入式系统的软件编译 与Windows开发不一样 不仅要编译应用程序 还要编译相应的依赖库 操作系统内核等 所以一次完整的编译非常费时 而从硬件角度 决定编译速度的主要因素是CPU速度 内存容量和文件系统I O速度 而这些方面在嵌入式系统上往往都要比PC差很多 这样会造成目标机系统上进行本地编译效率低下 综合以上多方面因素的考虑 嵌入式系统开发一般都采用交叉开发方式 如交叉编译 包括交叉链接 交叉调试等 交叉开发 宿主机和目标机的连接一般通过串口 并口 USB或以太网等连接线进行连接 交叉开发过程在宿主机上会安装用于嵌入式软件开发的一系列工具集 例如代码编辑工具 编译器 连接器 调试工具 软件配置管理工具等 开发者在宿主机一端完成代码编写和调试 交叉开发 宿主机和目标机的差异体系结构的不同 宿主机和目标机通常是异构的 宿主机一般采用x86体系结构 但是目标机的体系结构则可能非x86的 如是ARM MIPS PowerPC等各式各样 处理能力不同 通常宿主机的处理速度 存储容量等会远远大于目标机 运行的操作系统不同 宿主机一般运行通用操作系统 而目标机通常运行各种嵌入式操作系统 输入输出方式不同 相对宿主机 目标机的输入输出功能可能比较单一 编程语言 本书采用的主要语言由于C C 拥有便于底层编程等诸多优点 目前C C 为大多数嵌入式系统开发的首选语言 考虑到现实的发展状况 我们在后续章节的应用开发中首选语言也是C C 嵌入式应用开发流程 典型的开发流程示意图 编码阶段 构建阶段 部署阶段 调优阶段 嵌入式应用开发流程 开发流程主要分为如下几个阶段 1 编码阶段编码阶段是软件开发的开始 其任务是编写软件的源代码代码 使用的工具是各种编辑器 2 构建阶段构建阶段的任务是把代码转化成可以在嵌入式硬件上可执行程序的过程 此阶段包括包括编译 链接 定址和打包等步骤 3 部署阶段部署是把可执行的运行时映像或可执行文件部署到嵌入式设备上 让嵌入式设备在系统上电后可以启动并加载开发者编写的代码 4 调优阶段 调试 优化阶段 此阶段主要是对软件进行调试和性能优化 调试 即使再有经验的软件工程师 要编写完全没有错误的程序也是不可能的 嵌入式软件调试的效率都比较低 因为即使改动一行代码 都可能需要把编译 链接 重定位 烧写 下载等步骤完整走一遍 这也是调优阶段最显著的特点 快速地定位到问题可以节省大量的时间 嵌入式应用开发流程 4 调优阶段 调试 优化阶段 优化对于软件产品最低目标是能正确的运行 还需要优化 优化目标主要包括是速度性能 功耗性能 空间性能等方面 达到运行更快 更节能 占用空间更小等目的 借助工具分析程序代码 精确分析性能瓶颈 据此引导和建议开发者进行改进 此过程常称为代码剖析 codeprofiling 对应的工具常常称为剖析器 profiler 或性能分析器 performanceanalyzer Intel的VTune 典型的开发工具链 工具链的概念在嵌入式软件开发的各个阶段都相应的工具帮助用户来完成其工作 这些工具形成与开发流程对应的工具链 Toolchain 又称工具集 嵌入式软件开发典型工具 典型的开发工具链 Moblin平台下的工具集在Linux Moblin平台下最有名的工具集是GNU和Intel两家 由于GNU工具集的跨平台 开放性 使用广 与其他工具兼容等特点 使得其成为嵌入式应用开发的首选工具 GNU工具链GNU的开发工具都是免费的 遵循GPL协议 任何人都可以从网上获取 同样GNU也为嵌入式系统 x86系统下的软件开发提供了完整的工具链 这些工具包含编译器 汇编器 链接器 调试工具等 这些工具它们可以以命令行形式单独运行 也可以集成到Eclipse等集成开发环境中 典型的开发工具链 GNU工具链生成目标文件的几种途径方法一 使用gcc命令分别编译 链接各源代码文件 生成可执行的目标文件 方法二 用户编写makefile等配置文件 然后用make一步生成可执行的目标文件 方法三 使用系统构建自动工具autotools制作makefile等配置文件 然后用make一步生成可执行的目标文件 二 MeeGo的开发工具链 交叉开发 宿主机 生成目标可执行文件和调试的机器 一般是一台PC目标机 MeeGo运行平台 上网本或者仿真器 qemu MeeGo交叉开发的实际环境 MeeGo交叉开发的仿真环境 仿真 仿真的情景 仿真 1 仿真 2 二 MeeGo的开发工具链 几个术语 1 QEMUMeeGo的虚拟机 emulator 仿真环境之一或者叫仿真器 2 Xephyr 二 MeeGo的开发工具链 3 宿主机Qt开发工具链 ls l opt meego meego sdk qt bin 1 InstallingtheMeeGoSDK 安装对应CPU架构的编译工具链 1 sudoapt getinstallmeego sdk 2 InstallMeeGoTarget 安装对应CPU架构的编译工具链 2 sudomad admincreate fmeego netbook ia32 1 1用来下载下载meego core ia32 madde sysroot 1 1 fs tar bz2 CreateaMeeGotargetusingMADDE 三 宿主机与仿真机环境配置 2 配置QTCreator 1 打开上网本仿真器 目标机 madremote rmeego netbook ia32 qemu 1 1 20101031 2037 sda runtimepoweron登录到目标机里面去 sshmeego 127 0 0 1 p6666进入目标机 不管是仿真器还是实际机都要执行如下步骤 运行如下命令 xhost 3 配置工程的build环境 4 编译生成MeeGo目标文件 在QTCreator环境里面打开一个 pro工程文件 5 选择目标机Run环境 6 部署运行与停止运行 四 QT介绍 Qt介绍Qt安装基于QT的HelloWorld示例程序Qt中主要类的介绍Qt的信号槽机制Qt中主要控件介绍 21 Qt介绍 Qt是跨平台的应用程序和UI框架 包括跨平台类库集成开发环境跨平台IDE一次性开发可在不同桌面和嵌入式操作系统部署 22 Qt特征一 面向对象Qt具有模块设计和注重软件构件或元素的可重用性的特点构件支持Qt提供信号signal和槽slot的概念 支持对象之间在彼此不知道对方的情况下合作 使得Qt适合构件编程友好的联机帮助Qt提供了大量的联机参考文件 23 Qt特征二 便利性Qt是跨平台的GUI工具包 对编程者隐藏了处理不同窗口系统时的潜在问题国际化Qt为本地化应用提供了完全的支持 所有用户界面文本都可以基于消息翻译表被翻译成各国语言 24 Qt特征三 丰富的API函数Qt为开发者提供了大量的函数可用户化外观Qt支持主题 基于Qt的应用程序能够在Windows外观 Motif外观以及其他一些用户外观主题之间切换完整的组件工具Qt编程的基本模块叫做组件 Qt含有用来创建专业外观用户界面需要的所有组建 25 Qt介绍 WhousesQt WritecodeoncetotargetmultipleplatformsCreateamazinguserexperienceDomorewithlessandfasterBlendwebandnativecodeinasingleapplication 26 QtSDK QtSDK 27 Qt中主要的类介绍 QObjectQObject类是所有能够处理signal slot和事件的Qt对象的基类 原型如下 QObject QObject Qobject parent 0 constchar name 0 在上面的函数中 如果parent为0则构造一个无父的对象 如果对象是一个组件 则它会成为顶层窗口 28 Qt中主要的类介绍 2 QApplicationQApplication类负责GUI应用程序的控制流和主要的设置 它包括主事件循环体 负责处理和调度所有来自窗口系统和其他资源的事件处理应用程序的开始 结束以及会话管理QApplication是QObject类的子类 29 Qt中主要的类介绍 3 QwidgetQWidget是所有用户接口对象的基类 继承了QObject类的属性组件是用户界面的单元组成部分 接收鼠标 键盘和从其它窗口系统来的事件QWidget类有很多成员函数 但一般不直接使用 而通过子类继承来使用其函数功能QWidget是QObject类的子类 30 信号和槽 信号和槽机制是Qt的一个主要特征 是Qt与其它工具包最不相同的部分 在图形用户界面编程中 经常会出现窗口的一个部件发生的变化会被通知给另一个部件 Qt采用信号和槽实现对象部件之间的通信 31 信号和槽的声明一 在Qt程序设计中 包含signals和slot的类都要加上Q OBJECT的定义 下面给出一个在类中定义signal和slot的例子classStudent publicQobject Q OBJECTpublic Student myMark 0 intgetMark const returnmyMark publicslots voidsetMark intnewMark signals voidmarkChanged intnewMark private intmyMark 32 信号和槽的声明二 Signal的发出一般在事件的处理函数中 利用emit发出signal 下面的例子中在事件处理结束后发出signalvoidStudent setMark intnewMark if newMark myMark myMark newMark emitmarkChanged myMark 33 信号和槽的连接一 在signal和slot声明以后 需要使用connect 函数将它们连接起来 Connect 函数属于QObject类的成员函数 能够连接signal和slot 也能够连signal和signal 函数原型如下boolconnect constQObject sender constchar signal constQObject receiver constchar slot 其中第一个和第三个参数指出signal和slot属于的对象或组件 34 信号和槽的连接二 使用connect 函数进行连接的时候 还需要用到SIGNAL 和SLOT 两个宏 使用方法如下 QLa。

      点击阅读更多内容
      相关文档
      新版中华民族共同体概论课件第五讲大一统与中华民族初步形成(秦汉时期)-2025年版.pptx 2023版《思想道德与法治》教学设计-绪论.docx 新版中华民族共同体概论课件第一讲中华民族共同体基础理论-2025年版.pptx 思想道德与法治(2023年版)资料第四章 明确价值要求 践行价值准则 - 副本.docx 2023版教学设计第五章 遵守道德规范 锤炼道德品格思想道德与法治2023版本课件.docx 新版中华民族共同体概论课件第二讲树立正确的中华民族历史观-2025年版.pptx 第六讲践行多边主义完善全球治理讲稿-2025秋形势与政策讲稿.docx 2023版教学设计第四章 明确价值要求 践行价值准则思想道德与法治2023版本课件.docx 新版中华民族共同体概论课件第十六讲文明新路与人类命运共同体-2025年版.pptx 第四讲阔步迈向农业强国讲稿-2025秋形势与政策讲稿.docx 2023版第一章 领悟人生真谛 把握人生方向教学设计思想道德与法治2023版本课件.docx 2023版教学设计第二章 追求远大理想 坚定崇高信念思想道德与法治2023版本课件.docx 微机原理及单片机应用技术概述.ppt 塑料成型工艺与模具结构-塑料成型工艺基础.ppt 市场营销学(第2版)市场营销管理.ppt 税收筹划(第2版)课件:跨国税收筹划问题.ppt 微机原理及单片机应用技术-初识STM32.ppt 政府与非营利组织会计(第7版)课件:政府会计的基本概念.pptx 政府与非营利组织会计(第7版)课件:政府单位会计概述.pptx 银行会计课件:无形资产与其他资产的核算.pptx
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.