首页 基于嵌入式系统的无线点菜系统方案设计

基于嵌入式系统的无线点菜系统方案设计

举报
开通vip

基于嵌入式系统的无线点菜系统方案设计嵌入式无线点菜系统方案 技 术 文 件 技术文件名称:嵌入式无线WIFI点菜系统 总体设计方案 技术文件编号: 版 本: 文件质量等级: 共 39页 (包括封面) 拟 制 审 核 ...

基于嵌入式系统的无线点菜系统方案设计
嵌入式无线点菜系统 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 技 术 文 件 技术文件名称:嵌入式无线WIFI点菜系统 总体设计方案 技术文件编号: 版 本: 文件质量等级: 共 39页 (包括封面) 拟 制 审 核 会 签 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 化 批 准 目录 第一篇 概述 4 1范围 4 2设计依据 2 3定义和缩略语 5 3.1定义 5 3.2缩略语 5 4设计原则和目标6 4.1系统设计原则6 4.2系统目标6 第二篇 系统总体原理 6 1.现实系统的基本组成、功能和工作环境 6 1.1现实系统的基本组成 7 1.2主要功能 7 1.3系统的工作环境 7 71.3.1手持式PDA工作环境 HYPERLINK \l "_Toc509629069" 1.3.2前台计算机最低标配 7 1.3.3厨房计算机最低标配 8 第三篇 系统硬件实现及各模块功能实现 8 1.概述 8 2.手持设备的硬件设计方案 8 3.手持设备的硬件总体设计原理图 8 4.手持设备的各模块功能实现 9 4.1 LCD显示屏的连接实现 9 4.2 无线WIFI模块的连接实现 9 4.3矩阵键盘模块的连接实现 9 5.前台电脑硬件实现 9 6.后台厨房的硬件实现 9 7.硬件的PCB板主要的开发环境介绍 9 7.1Protel 9 7.2 EAGLE 10 12 第四篇 系统软件实现级各模块功能实现 1.点菜系统手持终端(PDA)软件方案 12 1.12 1概述 1.2软件架构 12 1.3 系统软件 12 1.4应用软件 13 1.5应用软件控制流程图 14 1.6应用软件设计 14 1.6.1程序的代码初始化 15 1.6.2输入事件处理模块 15 1.6.3显示处理模块 16 1.6.4 数据处理模块 16 1.6.5 远程数据传输模块 17 1.7 系统界面设计 18 1.7.1 系统的登录界面设计 18 1.7.2系统登录后界面设计 18 2.前台电脑的软件方案 18 3. 18 厨房电脑的软件方案 18 4.应用软件主要的开发环境介绍 4.1交叉开发环境概述 18 4.2基于安卓交叉开发环境的建立 19 4.3基于 linux交叉开发环境的建立 19 5. 嵌入式常用API函数介绍 26 5.1 API之网络函数 26 5.2 API之消息函数 26 5.3 API之文件处理函数 26 5.4 API之菜单函数 27 第五篇 软件连调技术及调试方案的设定 28 1.概述 28 2.硬件PCB的测试 28 3.软件调试 28 4.软硬连调 29 第六篇 相关模块的工艺设计 29 1.软件设计的注意事项 29 1.1体系结构设计原则 29 1.2用户界面设计 30 1.3数据库设计 32 2.硬件PCB版制件的 规范 编程规范下载gsp规范下载钢格栅规范下载警徽规范下载建设厅规范下载 33 第七篇 关键技术说明 35 1. WIFI 35 2. 数据库 36 3. linux系统简要 36 第八篇 工程进度和成本预计 37 1.项目分解 37 2.项目进度估算图 38 3.成本预计 39 第一篇 概述 1、范围 本文件规定了基于无线WIFI点菜系统的系统现实原理、系统原理、硬件总体设计、软件总体设计、关键技术及进度成本预计。 本文件给出无线点菜系统点菜端、系统前台管理端、以及后台厨房管理端的研发方案,并给出软硬件关键性技术的一些模块流程、具体实现和关键代码。 本文适用于整体无线点菜系统的研发方案。 2、设计依据 GB/T 8567-1988 《计算机软件产品开发文件编制指南》 GB/T 9385-1988 《计算机软件需求说明编制指南》 GB/T 9386-1988 《计算机软件测试文件编制指南》 GB/T 11457-1995《软件工程术语》 GB/T 12504-1990《计算机软件质量保证计划规范》 GB/T 12505-1990《计算机软件配置管理计划规范》 GB/T 14394-1993《计算机软件可靠性和可维护性管理》 GB/T 15532-1995《计算机软件单元测试》 GB/T 16680-1996《软件文档管理指南》 GB/T 17963 《信息技术开放系统互连网络层安全 协议 离婚协议模板下载合伙人协议 下载渠道分销协议免费下载敬业协议下载授课协议下载 》 GB/T 15532-1995 《计算机软件单元测试》 GB/T 16680-1996 《软件文档管理指南》 GB/T 14394-1993 《计算机软件可靠性和可维护性管理》 GB/T 8567-2006 《计算机软件文档编制规范》 GB/T 20157-2006 《信息技术软件维护》 GB/T 20527.1-2006《多媒体用户界面的软件人类工效学第1部分:设计原则和框架》 GB/T 15532-1995 《计算机软件单元测试》 GB/T 14394-1993 《计算机软件可靠性和可维护性管理》 GB/T 11457-2006 《信息技术软件工程术语》 GB/T 15532-2008 《计算机软件测试规范》 GB/T 9385-1988 《计算机软件需求说明编制指南》 GB/T 20917-2007 《软件工程 软件测量过程》 ISO 15745-4 AMD 2-2007 《工业自动化系统和集成.开放系统应用集成框架.第4部分:基于以太网的控制系统用参考描述.修改件2:Modbus TCP》 ISO/IEC 14766-1997 《信息技术.系统间远程通信和信息交换 因特网传输控制协议(TCP)之上使用OSI应用 件》 ISO/IEC TR 9578-1990 《信息技术 局域网用的通信接口连 器》 ISO 7478-1987 《信息处理系统 数据通信 多链路规程》 ISO/IEC TR 18037-2004 《程序设计语言.C.支持嵌入式处理机的扩展》 3、定义和缩略语 3.1定义 无线点菜系统:无线点菜系统是基于嵌入式ARM为手持终端的点菜设备。使整个点菜模块化、系统化。 3.2缩略语 MR 主复位 IC 集成电路 CKSL 时钟选择 CMD 指令 CLK 时钟 KEY 按键 SDA 数据总线 ADDR 地址寄存器 CPU DT CPU 数据总线 CPU A CPU 地址总线 CPU RD CPU 中断请求 CPU WR CPU 写控制 ANT          天线   KB 键盘 (keyboard) CPU 中央处理器(Central Processing Unit) ALU 算术逻辑单元(Arithmetic Logic Unit CLK) Clock 时钟周期 Embedded Chips 嵌入式 FIFO 先入先出队列(First Input First Output), BIOS 基本输入/输出系统(Basic Input/Output System), INTIN 中断输入(Interrupt Inputs) USB 通用串行总线(Universal Serial Bus), LED 光学二级管(light emitting diode), WIFI 无线网路通信技术(wireless fidelity) FPD 平面显示器(flat panel display) CCT 时钟周期(Clock Cycle Time), EPROM 可擦写可编程ROM(erasable, programmable ROM) DSM 分布式共享内存(Distributed shared memory), FM 快闪存储器(Flash Memory) SD 单面内存(Single Side), FAT 文件分配表(File Allocation Tables), LAN 局部网(local-area network) QOS 服务质量(quality of service) API 应用编程接口(Application Programming Interface) AC          交流电  (Alternating Current)   TCP/IP 传输控制协议/因特网互联协议(Transmissio Control Protocol/Internet Protocol) 4、设计原则和目标 4.1系统设计原则 原则 详细要求 正确性 运行和调试结果完全正确 健壮性 在常规的环境下能够保证多人进行有效操作。 可靠性 在连续24小时之内无差错可靠运行 成本控制 产品设计选用合适的软硬件。节约成本,使整体降低。 易用性 不经过专业培训就可通过提示进行操作 可维护性 便于升级,简单的维护。 可扩展性 可扩展菜单,人员等信息量 兼容性 控制台在PC系统的兼容性 4.2系统目标 本系统完成后要实现点菜、加菜、删除、催菜、退菜、换菜、等。并台、转台、拼台、结账、打折等相关功能。顾客在餐桌上点菜确认后,能在1-2s内通过Wi-Fi发送到服务台同时服务能把菜单信息通过无线WIFI传送到厨房,将整个点菜到上菜的时间大大压缩。 第二篇 系统总体原理 现实系统的基本组成、功能和工作环境 1. 1现实系统的基本组成 1. 2主要功能 1手持点菜系统 餐厅服务员可以登录工号,实现手持界面点菜,退菜。能过无线WIFI传入前台主机计算机。通过前台计算机执行指令到厨房,实现快速点菜。 2前台管理:    前台接待开单、点菜、加菜、退菜、附加口味做法、并单、移台、房台预订、菜品预订、外卖、结单等日常操作;临时菜品(菜谱未设置但本店还能做的菜品)管理;支持现金、免单、签单、会员卡、支票、信用卡等多种付款方式;会员级别不同可以享受不同级别的优惠;预订显示可以有效防止房台冲突;其他简单的查询和统计。 3 厨房显示打印系统:   客人点单完毕,服务员把单子传到前台,前台操作人员把菜品录入电脑,入单的同时,厨房凉菜、热菜、主食各个档口即打印相应菜品,厨师即可照单做菜,这样可大大提高工作效率 1.3系统的工作环境 1.3.1手持式PDA工作环境 中央处理器:ARM7以上 适应环境温度范围 :-60℃-+70℃;工作湿度:0 ~ 95% 1.3.2前台计算机最低标配 前台机的最低配置如下: CPU:PPentium4 2.4GHz 内存:512M RAM内存 硬盘空间:80G硬盘 网络设备:802.11b/g 1.3.3厨房计算机最低标配 前台机的最低配置如下: CPU:PPentium4 2.4GHz 内存:512M RAM内存 硬盘空间:80G硬盘 网络设备:802.11b/g 第三篇 系统硬件实现及各模块功能实现 1、概述 为使手持PDA性能、大小和功耗最佳化,因此前台主机实现大部分功能,从而减轻手持终端的复杂性,更有利于提高手持终端的可靠性。 2、手持设备的硬件设计方案 点菜系统手持PDA由主控版、LED显示屏、距陈键盘和无线WIFI模块4部分组成。主控板为核心部分,集成了ARM7以上处理器、2MB SRAM 、2MB NorFLASH、和32MB NandFlash,为软件运行提供了足够的空间。主控版还提供外部模块接口,方便用户根据不同的应用情况选择不同的模块配置。WIFI模块通过串口与主控版连接,提供与前台主机的无线WIFI业务的收发功能,显示模块通过LCDC接口与主控板连接,提供单色屏和彩色屏的显示功能。跟陈键盘与主控板相连,提供与PDA内部选择功能。 手持设备的硬件总体设计原理图 手持设备的各模块功能实现 4.1 LCD显示屏的连接实现 4.2无线WIFI模块的连接实现 4.3 矩阵键盘模块的连接实现 5、前台电脑硬件实现 由于基于缩短开发周期和费用,前台管理主机和厨房显示主机可用平常PC机即可,因此前台主机的硬件方案这里不作介绍。 后台厨房的硬件实现 由于基于缩短开发周期和费用,前台管理主机和厨房显示主机可用平常PC机即可,因此厨房显示系统的硬件方案这里不作介绍。 硬件的PCB板主要的开发环境介绍 PCB(Printed Circuit Board),中文名称为印制电路板,又称印刷电路板、印刷线路板,是重要的电子部件,是电子元器件的支撑体,是电子元器件电气连接的提供者。由于它是采用电子印刷术制作的,故被称为“印刷”电路板。 两种常用的PCB板制做工具:Protel99SE和EAGLE 6.1 protel99SE 1、简介 Protel99SE是应用于Windows9X/2000/NT操作系统下的EDA设计软件,采用设计库管理模式,可以进行联网设计,具有很强的数据交换能力和开放性及3D模拟功能,是一个32位的设计软件,可以完成电路原理图设计,印制电路板设计和可编程逻辑器件设计等工作,可以设计32个信号层,16个电源--地层和16个机加工层。 2、Protel 99 SE的系统组成 1、电路工程设计部分   (1)电路原理设计部分(Advanced Schematic 99):电路原理图设计部分包括电路图编辑器(简称SCH编辑器)、电路图零件库编辑器(简称Schlib编辑器)和各种文本编辑器。本系统的主要功能是:绘制、修改和编辑电路原理图;更新和修改电路图零件库;查看和编辑有关电路图和零件库的各种报表。   (2)印刷电路板设计系统(Advanced PCB 99):印刷电路板设计系统包括印刷电路板编辑器(简称PCB编辑器)、零件封装编辑器(简称PCB Lib编辑器)和电路板组件管理器。本系统的主要功能是:绘制、修改和编辑电路板;更新和修改零件封装;管理电路板组件。 (3)自动布线系统(Advanced Route 99):本系统包含一个基于形状(Shape-based)的无栅格自动布线器,用于印刷电路板的自动布线,以实现PCB设计的自动化。 2、电路仿真与PLD部分   (1)电路模拟仿真系统(Advanced SIM 99):电路模拟仿真系统包含一个数字/模拟信号仿真器,可提供连续的数字信号和模拟信号,以便对电路原理图进行信号模拟仿真,从而验证其正确性和可行性。   (2)可编程逻辑设计系统(Advanced PLD 99):可编程逻辑设计系统包含一个有语法功能的文本编辑器和一个波形编辑器(Waveform)。本系统的主要功能是;对逻辑电路进行分析、综合;观察信号的波形。利用PLD系统可以最大限度的精简逻辑部件,使数字电路设计达到最简化。 (3)高级信号完整性分析系统(Advanced Integrity 99):信号完整性分析系统提供了一个精确的信号完整性模拟器,可用来分析PCB设计、检查电路设计参数、实验超调量、阻抗和信号谐波要求等。 3、Protel 99 SE的功能特性   1、开放式集成化的设计管理体系   2、超强功能的、修改与编辑功能 3、强大的设计自动化功能 6.2、EAGLE 1、简介 自上世纪九十年代初以来,源于Cad Soft公司的EAGLE软件一直畅销欧美,在EDA工具行业占有很大比例的市场份额,曾被德国一家著名电子杂志五次评选为“年度最佳产品奖”,为了让更多的EDA工具使用者了解到更好的PCB设计和原理图设计工具,EAGLE现正式进军中国市场,深圳市英蓓特信息技术有限公司作为EAGLE软件亚洲地区第一家也是唯一一家代理商,主要负责该软件的市场推广和销售工作。 2、EAGLE 四大核心模块: PCB编辑器  分辨率1/10,000毫米(0.1微米)  最多支持16个信号层(支持用户自定义排序)  拥有一套全新的分离库文件  使用这个全套集成库函数编辑器很容易构建你自己的文件  在任何情况下都可执行取消/重建功能的编辑命令  在对PCB布线时支持信号线路动态计算  POLYGO敷铜层(接地层)  针对电路板进行设计规则检查DRC(比如检查重叠、测量焊盘尺寸或线宽)  支持用户自定义的、可自由编程的用户语言,用于为装配设备、测试设备、铣床生成数据文件以及生成其他数据格式的文件  支持多层电路板的生成 原理图编辑器  通过拖拽实现原理图页面排序  支持元件替换功能的同时保持原理图和PCB设计的一致性  自动生成电路板  电气规则检查ERC(原理图中的错误检查以及原理图与PCB设计之间的一致性检查)  USE库调用和ADD添加已经存在的库元件  Grid栅格显示与隐藏便于图形的绘制  Global Attribute全局属性为原理图添加整体特性  命令语言完全能实现工具栏任务  加载已有绘图边框或自主设计绘图边框  交叉关联模式可将不同页面的连线关联起来 自动布线器  使用您定义的设计规则组来检查PCB设计  一种在手动布线中为您提供支持的工具,也是跟随布线器的基本引擎;能够自动计算所选信号的走线  可随时在手动和自动布线之间切换  最多16个信号层(支持用户自定义排序),14个电源层  支持所有的SMD,Pad焊盘及盲孔和埋孔  在自动布线生成后仍可编辑修改  PCB结构化布线,有利于布线优化设计  手工布线中添加两种Fellow-me布线模式 元件库编辑器  用户自由编辑生成新的Package封装,Symbol原理图符号,Device元件  支持Device set元件组,为同一元件添加不同的Technology技术参数和Package封装类型  通过拖拽的方式复制修改已有元件生成新的元件库 第四篇 系统软件实现级各模块功能实现 点菜系统手持终端(PDA)软件方案 1.1概述 点菜系统终端由系统软件和应用软件两部分构成,采用模块化层次结构方法进行设计,系统软件包括设备驱动程序、嵌入式linux、嵌入式数据库、TCP/IP协议等。应用软件则按功能定制在操作系统的控制下来完成指定的功能。 1.2软件架构 1.3系统软件 系统软件由低层驱动程序、操作系统、中间层、和上层接口层(安卓层)组成,如图所示: 1.4应用软件 点菜系统终端应用软件主要由输入输出事件外理模块(主控模块)、软入处理模块、数据处理模块、显示模块、远程WIFI通信模块等组成。应用软件以输入事件外理模块为主控模块,根据读取的信息调用其它模块进行具体处理事件。 下图为点菜系统各模块之间关系及组成示意图。 应用软件模块之间的关系图 下图为应用软件组成图: 应用软件组成图 1.5应用软件控制流程图 点菜终端开机上电时,应用软件执行初始化代码后,进入主控模块,即输入事件处理模块,并根据不同的输入事件调用各模块进行相应的处理, 如图所示: 软件控制流程图 1.6应用软件设计 点菜系统终端的应用软件需要实现数据的输入、修改、删除、存储、显示等用户需求,并通过无线WIFI完成后前台管理系统的信息交互任务。 1.6.1程序的代码初始化 初始化代码主要完成初始化及创建子进程的任务。 流程图如图所示: 1.6.2输入事件处理模块 输入事件处理模块为主控模块,该模块接收来算各窗口的消息,并将消息发送给相应的消息外理函数进行处理, 处理流程如图所示: 1.6.3显示处理模块 根据输入事件处理模块发送的显示信息,通过相应的窗口函数进行表页显示和客显。 外理流程图如图所示: 1.6.4数据处理模块 在事件处理模块控制下处理时,进行存取业务数据,如增加菜,删菜系统调置等操作。 其处理流程图如图所示: 1.6.5远程数据传输模块 远程数据传输使用WIFI无线通信实现手持PDA与前台管理中心的沟通。是在UDP协议控制下进行手持PDA与前台主机通过WIFI通信模块进行无线通信。 从功能上说:远程数据传输模块主要实现4部分功能。 1报文组织 将订菜单按传输控制协议组织成报文放入发送等待队列中 2报文发送 读取发送等待队列中的报文进行发送 3报文接收 接收从前台下发的数据信息 4报文处理 将接收到的报文分类处理 无线通信传输体系结构如图所示: 1.7系统界面设计 1.7.1系统的登录界面设计 1.7.2系统登录后界面设计 2、前台电脑的软件方案(略) 3、厨房电脑的软件方案(略) 4、应用软件主要的开发环境介绍 4.1、交叉开发环境概述 对于嵌入式系统的开发,由于没有足够的资源在本机(即目标系统)运行开发工具和调试工具,所以嵌入式系统的软件开发采用一种交叉编译调试的方式,即宿主机-目标机模式。开发时使用宿主机上的交叉编译、汇编及连接工具形成可执行的二进制代码(这种可执行代码并不能在宿主机上执行,而只能在目标板上执行),然后把可执行文件下载到目标机上运行。 交叉开发环境的示意图: 4.2、 基于安卓交叉开发环境的建立 1、软件安装 (1)安装jdk 6u19(Java )安装完成即可,无需配置环境变量 (2)解压eclipse, eclipse无需安装,解压后,直接打开就行 (3)解压android sdk 这个也无需安装, 2、Eclipse配置 3、测试项目运行 右键项目名称->runas ->Android Application 即可启动运行该Android程序,如下所示: 测试程序运行结果如图 基于 linux交叉开发环境的建立 1、准备工作              首先需要一台运行Linux操作系统的PC以完成我们的编译工作。        其次要准备如下一些源文件。         1、源文件准备          binutils-2.14.tar.gz          ftp://ftp.gnu.org/gnu/binutils/binutils-2.14.tar.gz          gcc-core-2.95.3.tar.gz          ftp://ftp.gnu.org/gnu/gcc/gcc-2.95.3/gcc-core-2.95.3.tar.gz          gcc-g++2.95.3.tar.gz          ftp://ftp.gnu.org/gnu/gcc/gcc-2.95.3/gcc-g++-2.95.3.tar.gz          glibc-2.2.4.tar.gz          ftp://ftp.gnu.org/gnu/glibc/glibc-2.2.4.tar.gz          glibc-linuxthreads-2.2.4.tar.gz          ftp://ftp.gnu.org/gnu/glibc/glibc-linuxthreads-2.2.4.tar.gz          linux-2.4.21.tar.gz          ftp://ftp.kernle.org/pub/linux/kernel/v2.4/linux-2.4.21.tar.gz          patch-2.4.21-rmk1.gz # linux kernel patch for arm          ftp://ftp.arm.linux.org.uk/pub/linux/arm/kernel/v2.4/patch-2.4.21-rmk1.gz         binutils-2.14.tar.gz这个压缩包包含有ld,ar,as等一些产生或者处理二进制文件的工具。     gcc-core-2.95.3.tar.gz这个压缩包是GCC的主体部分,GCC是GNU Compiler Collection的简称,顾名思义,它能够编译很多种高级语言,例如C、C++,Java等,而这个压缩包中含有C编译器,及公共部分,而对其他语言的支持,采用另外的压缩包单独发布。     gcc-g++2.95.3.tar.gz,这个压缩包就是为使GCC能够编译C++程序而单独发布的。     glibc-2.2.4.tar.gz,libc是很多用户层应用都要用到的库,kernel和bootloader不需要这个库的支持,这个库主体部分封装在这个压缩包内。     glibc-linuxthreads-2.2.4.tar.gz,这是Libc用于支持Posix线程而单独发布的一个压缩包。     linux-2.4.21.tar.gz,这个压缩包就是Linux的内核。     patch-2.4.21-rmk1.gz,这个压缩包是用来给Linux内核打补丁,以使其可以支持ARM的硬件平台。         2、工作目录搭建        我们创建如下的目录树结构        mkdir arm        mkdir tool-chain        mkdir build-dir        mkdir src-dir        mkdir setup-dir        mkdir kernel               arm这个目录是我们的最顶层工作目录,我们所有的编译工作都在这里完成。        tool-chain这个目录是我们交叉编译工具的安装位置,它下面的bin子目录存放我们创建好的编译器,汇编器,连接器,以及编译好的C库也会安装到这个目录之下。        setup-dir这个目录用来存放我们下载的压缩包。        src-dir这个目录用于存放binutils,gcc,glibc解压之后的源文件。        kernel这个目录用来存放内核文件,对内核的配置、编译工作将在这个目录中完成。        build-dir用来编译src-dir中的源文件,具体就是binutils,gcc,glibc的编译工作将在这个目录下完成。这种源文件目录和编译目录分离的编译方式是GNU所推荐的。              cd ./src-dir        tar –xvzf ../setup-dir/ binutils-2.14.tar.gz        tar –xvzf ../setup-dir/ gcc-core-2.95.3.tar.gz        tar –xvzf ../setup-dir/ glibc-2.2.4.tar.gz        tar –xvzf ../setup-dir/ glibc-linuxthreads-2.2.4.tar.gz –directory=./glibc-2.2.4         这样我们在src-dir目录下就形成了3个源文件目录binutils-2.14,gcc-core-2.95,3,glibc-2.2.4,其中分别存放着binutils tools,gcc,glibc的源代码。接下来我们到build-dir中创建3个与这三个源文件目录对应的编译目录。              cd ../build-dir        mkdir ../build-dir/build-binutils        mkdir ../build-dir/build-gcc        mkdir ../build-dir/build-glibc         我们将在这三个目录中完成对binutils tools, gcc, glibc的配置和编译工作。下面还要把内核文件解压到kernel目录下,并打补丁。         cd ../kernel        tar –xvzf ../setup-dir/ linux-2.4.21.tar.gz        cd ./linux-2.4.21        patch –p1 < ../../setup-dir/ patch-2.4.21-rmk1   2、开始创建  1、  确定几个系统变量 cd ../../ export TARGET=arm-linux export PREFIX=../arm/tool-chain export TARGET_PREFIX=$PREFIX/$TARGET export KERNEL_SOURCE_LOCATION=../arm/kernel/linux-2.4.21 export PATH=$PREFIX/bin:$PATH         几个系统变量经常要用到,TARGET定义了目标机,PREFIX是工具链的安装目录,KERNEL_SOURCE_LOCATION是内核文件位置。  2、  创建binutils        运行如下命令来创建binutils        cd ./build-dir/build-binutils        configure ../../src-dir/binutils-2.14/configure –target=$TARGET –prefix=$PREFIX        make        make install        这时$PREFIX/bin下创建了一些文件,包括arm-linux-ld,arm-linux-as等。 3、  编译内核         cd ../../kernel/linux-2.4.21              改Makefile文件使        ARCH = arm        CROSS_COMPILE=arm-linux-              make menuconfig        在System Types中选择正确的硬件类型          make dep         之后执行如下操作        mkdir $TARGET_PREFIX/include        cp dR $KERNEL_SOURCE_LOCATION/include/arm-asm                      RGET_PREFIX/include/asm        cp dR $KERNEL_SOURCE_LOCATION/include/linux                      RGET_PREFIX/include/linux  4、  创建boot-trap gcc,这个GCC没有glibc库的支持,所以只能用于编译内核,bootloader等,后面创建C库也要用到这个编译器,所以创建它主要是为创建C库做准备,如果只想编译内核和bootloader那么,就可以到此结束。        cd ../../build-dir/build-gcc        ../../src-dir/gcc-2.95.3/configure –target=$TARGET –prefix=$PREFIX               --with-headers=$ERNEL_SOURCE_LOCATION/include –enable-language=c               --disable-threads        然后修改src-dir/gcc-2.95.3/gcc/config/arm/t-linux文件,在               TARGET_LIBGCC2_CFLAGS中添加如下两个定义               -Dinhibit-libc –D__gthr_posix_h        make        make install        这时$PREFIX/bin下创建了一些文件,主要创建了arm-linux-gcc。 5、  创建gblic        cd ../build-glibc        export CC=arm-linux-gcc        ../../src-dir/glibc-2.2.4/configure –host=$TARGET –prefix=$TARGET_PREFIX                             --enable-add-ons        make        make install  6、  创建功能健全的GCC,并创建G++        在成功创建了libc之后,我们就可以创建功能丰富的GCC编译器了,并且可以创建支持编译C++程序的G++。        cd ../../src-dir        tar –xvzf ../setup-dir/ gcc-g++2.95.3.tar.gz        cd ../build-dir/build-gcc        export CC=gcc        ../../src-dir/gcc-2.95.3/configure –target=$TARGET –prefix=$PREFIX               –enable-language=c,c++              然后修改src-dir/gcc-2.95.3/gcc/config/arm/t-linux文件,在               TARGET_LIBGCC2_CFLAGS中去除如下两个定义               -Dinhibit-libc –D__gthr_posix_h         make        make install 5、嵌入式常用API函数介绍 1. API之网络函数 WNetAddConnection 创建同一个网络资源的永久性连接 WNetAddConnection2 创建同一个网络资源的连接 WNetAddConnection3 创建同一个网络资源的连接 WNetCancelConnection 结束一个网络连接 WNetCancelConnection2 结束一个网络连接 2. API之消息函数 BroadcastSystemMessage 将一条系统消息广播给系统中所有的顶级窗口 GetMessagePos 取得消息队列中上一条消息处理完毕时的鼠标指针屏幕位置 GetMessageTime 取得消息队列中上一条消息处理完毕时的时间 PostMessage 将一条消息投递到指定窗口的消息队列 PostThreadMessage 将一条消息投递给应用程序 RegisterWindowMessage 获取分配给一个字串标识符的消息编号 ReplyMessage 答复一个消息 SendMessage 调用一个窗口的窗口函数,将一条消息发给那个窗口 SendMessageCallback 将一条消息发给窗口 SendMessageTimeout 向窗口发送一条消息 SendNotifyMessage 向窗口发送一条消息 3. API之文件处理函数 CloseHandle 关闭一个内核对象。其中包括文件、文件映射、进程、线程、安全和同步对象等 CompareFileTime 对比两个文件的时间 CopyFile 复制文件 CreateDirectory 创建一个新目录 CreateFile 打开和创建文件、管道、邮槽、通信服务、设备以及控制台 CreateFileMapping 创建一个新的文件映射对象 DeleteFile 删除指定文件 DeviceIoControl 对设备执行指定的操作 4. API之菜单函数 AppendMenu 在指定的菜单里添加一个菜单项 CheckMenuItem 复选或撤消复选指定的菜单条目 CheckMenuRadioItem 指定一个菜单条目被复选成“单选”项目 CreateMenu 创建新菜单 CreatePopupMenu 创建一个空的弹出式菜单 DeleteMenu 删除指定的菜单条目 DestroyMenu 删除指定的菜单 DrawMenuBar 为指定的窗口重画菜单 EnableMenuItem 允许或禁止指定的菜单条目 GetMenu 取得窗口中一个菜单的句柄 GetMenuCheckMarkDimensions 返回一个菜单复选符的大小 GetMenuContextHelpId 取得一个菜单的帮助场景ID GetMenuDefaultItem 判断菜单中的哪个条目是默认条目 GetMenuItemCount 返回菜单中条目(菜单项)的数量 GetMenuItemID 返回位于菜单中指定位置处的条目的菜单ID GetMenuItemInfo 取得(接收)与一个菜单条目有关的特定信息 GetMenuItemRect 在一个矩形中装载指定菜单条目的屏幕坐标信息 GetMenuState 取得与指定菜单条目状态有关的信息 GetMenuString 取得指定菜单条目的字串 GetSubMenu 取得一个弹出式菜单的句柄,它位于菜单中指定的位置 GetSystemMenu 取得指定窗口的系统菜单的句柄 HiliteMenuItem 控制顶级菜单条目的加亮显示状态 InsertMenu 在菜单的指定位置处插入一个菜单条目,并根据需要将其他条目向下移动 InsertMenuItem 插入一个新菜单条目 IsMenu 判断指定的句柄是否为一个菜单的句柄 LoadMenu 从指定的模块或应用程序实例中载入一个菜单 LoadMenuIndirect 载入一个菜单 MenuItemFromPoint 判断哪个菜单条目包含了屏幕上一个指定的点 ModifyMenu 改变菜单条目 RemoveMenu 删除指定的菜单条目 SetMenu 设置窗口菜单 第五篇 软件连调技术及调试方案的设定 1、概述 调试是可在被编译了的程序中判定执行错误的程序,它也经常与编译器一起放在IDE中。运行一个带有调试程序的程序与直接执行不同,这是因为调试程序保存着所有的或大多数源代码信息(诸如行数、变量名和过程)。它还可以在预先指定的位置(称为断点(breakpoint))暂停执行,并提供有关已调用的函数以及变量的当前值的信息。为了执行这些函数,编译器必须为调试程序提供恰当的符号信息,而这有时却相当困难,尤其是在一个要优化目标代码的编译器中。因此,调试又变成了一个编译问题。 2、硬件PCB的测试 1)样品的准备:在180-220或320粒度的轮上研磨,并控制研磨深度在0.050inch 范围内(近似),安装前须去毛刺 2)安装金相样板 清洁,干燥装配台表面,然后,在台上及安装环内注入防粘剂将样品装入安装 环,并将其固定。必要时,将需检查的表面面对装配表面。小心将封装材料注入 装配环,确保样板竖立,孔内充满封装材料。树脂封装材料可以要求真空除气, 容许样品在室温下固化,用蚀刻或其它永久性方法在样板上作标记。 3)研磨及抛光 使用金相设备,在180粒度的砂带磨光机上粗磨样板。注意:必须使用流水来防 止样板起燃。依次使用320粒度,400粒度,600粒度的圆盘砂纸细磨样品至电镀孔的 中心剖面处,直至磨去毛刺及划痕,转动样品90°,在连续的粒度砂纸下研磨,直至 样品由粗粒度造成的划痕被磨去。用自来水洗样板,再用气管吹干,然后用刚玉来抛 光样品,使之呈现清晰的镀层表面。使用5微米的软膏移去因600粒度砂纸留下的划 痕,接着使用0.3微米软膏。然后用酒精冲洗并吹干。检查切片,若有划痕,再抛 光,直至划痕全消失。用合适的微酸液来擦样片(通常用2--3秒)以得到高清晰的 层与层之间的分层线。用自来水来中和微酸液,再用酒精冲洗吹干。 * 在抛光操作重,可以用操声波清洁器来降低抛光介质中的费酸洗液 4)检查 用100倍的显微镜检查孔壁厚度,至少选三个电镀孔,也可以用同一切片来确定表面 的总厚度 5)评估 将测的平均镀层厚度及镀层质量 记录 混凝土 养护记录下载土方回填监理旁站记录免费下载集备记录下载集备记录下载集备记录下载 下来 3、软件调试 系统调试阶段: 系统完成配置以后,即可进行系统调试,模拟各种控制条件和联动环境,完成各项测试,待各项测试均通过时,即可进行下一步骤-系统试运行。 系统开始进入试运行阶段 系统进行7×24小时不间断运行,同时模拟工作状态进行测试。系统测试无误后,填写竣工报告准备验收。 软件的调试和测试将按照 GB/T9386-1988计算机软件测试文件编制规范 GB/T15532-1995计算机软件单元测试 等国家标准进行,保证详细的测试记录 4、软硬连调 在软件和硬件设计全部完成以后,分别要进行软件调试、硬件调试、和软硬件的反复连调。从而使得软件能够和硬件进行有效的融合。 第六篇 相关模块的工艺设计 1、软件设计的注意事项 1.1、体系结构设计原则 ● 合适性 即体系结构是否适合于软件的“功能性需求”和“非功能性需求”。高水平的设计师高就高在“设计出恰好满足客户需求的软件,并且使开发方和客户方获取最大的利益,而不是不惜代价设计出最先进的软件。 ● 结构稳定性 详细设计阶段的工作如用户界面设计、数据库设计、模块设计、数据结构与算法设计等等,都是在体系结构确定之后开展的,而编程和测试则是更后面的工作,因此体系结构应在一定的时间内保持稳定。 软件开发最怕的就是需求变化,但“需求会发生变化”是个无法逃避的现实。人们希望在需求发生变化时,最好只对软件做些皮皮毛毛的修改,可千万别改动软件的体系结构。如果当需求发生变化时,程序员不得不去修改软件的体系结构,那么这个软件的系统设计是失败的。 高水平的设计师应当能够分析需求文档,判断出哪些需求是稳定不变的,哪些需求是可能变动的。于是根据那些稳定不变的需求设计体系结构,而根据那些可变的需求设计软件的“可扩展性”。 ● 可扩展性 可扩展性是指软件扩展新功能的容易程度。可扩展性越好,表示软件适应“变化”的能力越强。 可扩展性越来越重要,这是由现代软件的商业模式决定的: 社会的商业越发达,需求变化就越快。需求变化必将导致修改(或者扩展)软件的功能,现代软件的规模和复杂性要比十年前的大得多(对比一下操作系统的变化就明白了),如果软件的可扩展性比较差的话,那么修改(或者扩展)功能的代价会很高。 现代软件产品通常采用“增量开发模式”,开发商不断地推出软件产品的新版本,从而不断地获取增值利润。如果软件的可扩展性比较差的话,每次开发新版本的代价就会很高。虽然开发商抓住了商机,但却由于设计水平差而导致没有赚取多少利润,真是要活活气死。 ● 可复用性 由经验可知,通常在一个新系统中,大部分的内容是成熟的,只有小部分内容是创新的。一般地可以相信成熟的东西总是比较可靠的(即具有高质量),而大量成熟的工作可以通过复用来快速实现(即具有高生产率)。 可复用性是设计出来的,而不是偶然碰到的。要使体系结构具有良好的可复用性,设计师应当分析应用域的共性问题,然后设计出一种通用的体系结构模式,这样的体系结构才可以被复用。 1.2、用户界面设计 ● 容易理解 提高用户界面可理解性的一些规则如下: 界面中的所有元素(如菜单、工具条等)没有错误,也不会让人误解。 所有的界面元素应当提供充分而必要的提示,例如当鼠标移动到工具条上的某个图标按钮时,应当在该图标旁边出现功能提示。 界面结构能够清晰地反映工作流程,以便用户按部就班地操作。 对于复杂的用户界面而言,最好提供界面“向导”,及时让用户知道自己在界面结构中所处的位置。例如对于基于Web的应用软件,应该在界面上显示“当前位置”,否则用户很容易在众多的页面中迷失方向。 ● 风格一致 风格一致有两方面的含义: (1) 一个软件的用户界面中,同类的界面元素应当有相同的视感和相同的操作方式。例如命令按钮是最常见的界面元素,所有命令按钮的形状、色彩以及对鼠标的响应方式都是一致的。 (2) 同一类型软件的用户界面应当有一定程度的相似性。例如Microsoft公司的Office家族里有Word、Excel、PowerPoint、Outlook等软件,这些软件提供的“复制、剪切、粘贴”功能的操作方式都是相同的。 ● 及时反馈信息 用户进行某项操作后,如果过了一会儿(几秒钟)用户界面一点反应都没有,这将使用户感到迷茫和不安,因为他不知道是自己操作错了还是软件的原因导致死机了。所以及时反馈信息很重要,至少要让用户心里有数,知道该任务处理得怎么样了,有什么样的结果。 例如下载一个文件,界面上应当显示“百分比”或相关数字来表示下载的进度,否则人们不知道要等待多少时间。如果某些事务处理不能提供进度等数据,那么至少要给出提示信息如“正在处理,请等待…”,最好是提供合适的动画,让用户明白软件正在干活、没有死机。 ● 出错处理 在设计用户界面时必须考虑出错处理,目的是让用户不必为避免犯错误而提心吊胆、小心翼翼地操作。常见的错误处理方式有: 提供对输入数据进行校验的功能。当用户输入错误的数据时,及时提醒用户改正数据。 对于在某些情况下不应该使用的菜单项和命令按钮,将其“失效”(屏蔽)可以有效防止该项功能被错误地使用。例如:对于某些管理软件,不同的用户有不同的操作权限。如果低权限的用户登录到系统,那些只有高级权限用户才能使用的功能应当被屏蔽(如变成“灰色”不可操作)。 提供Undo功能,用以撤销不期望的操作。 执行破坏性的操作之前,应当获得用户的确认。例如用户删除一个文件时,应当弹出对话框:“真的要删除该文件吗”
本文档为【基于嵌入式系统的无线点菜系统方案设计】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_565687
暂无简介~
格式:doc
大小:1MB
软件:Word
页数:38
分类:互联网
上传时间:2012-10-16
浏览量:25