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

上传人:仙*** 文档编号:100468396 上传时间:2022-06-02 格式:DOC 页数:38 大小:1.55MB
收藏 版权申诉 举报 下载
基于嵌入式系统的无线点菜系统设计方案设计说明_第1页
第1页 / 共38页
基于嵌入式系统的无线点菜系统设计方案设计说明_第2页
第2页 / 共38页
基于嵌入式系统的无线点菜系统设计方案设计说明_第3页
第3页 / 共38页
资源描述:

《基于嵌入式系统的无线点菜系统设计方案设计说明》由会员分享,可在线阅读,更多相关《基于嵌入式系统的无线点菜系统设计方案设计说明(38页珍藏版)》请在装配图网上搜索。

1、技术文件技术文件名称:嵌入式无线WIFI点菜系统总体设计方案技术文件编号:版本:文件质量等级:共39页拟制审核会签标准化批准38 / 38目录第一篇概述41围42设计依据23定义和缩略语53.1定义53.2缩略语54设计原则和目标64.1系统设计原则64.2系统目标6第二篇系统总体原理61.现实系统的基本组成、功能和工作环境61.1现实系统的基本组成71.2主要功能71.3系统的工作环境71.3.1手持式PDA工作环境71.3.2前台计算机最低标配71.3.3厨房计算机最低标配8第三篇系统硬件实现及各模块功能实现81.概述82.手持设备的硬件设计方案83.手持设备的硬件总体设计原理图84.手持

2、设备的各模块功能实现94.1LCD显示屏的连接实现94.2 无线WIFI模块的连接实现94.3矩阵键盘模块的连接实现95.前台电脑硬件实现96.后台厨房的硬件实现97.硬件的PCB板主要的开发环境介绍97.1Protel97.2EAGLE10第四篇系统软件实现级各模块功能实现121.点菜系统手持终端PDA软件方案121.1概述121.2软件架构121.3系统软件121.4应用软件131.5应用软件控制流程图141.6应用软件设计141.6.1程序的代码初始化151.6.2输入事件处理模块151.6.3显示处理模块161.6.4 数据处理模块161.6.5远程数据传输模块171.7 系统界面设计

3、181.7.1系统的登录界面设计181.7.2系统登录后界面设计182.前台电脑的软件方案183. 厨房电脑的软件方案184.应用软件主要的开发环境介绍184.1交叉开发环境概述184.2基于安卓交叉开发环境的建立194.3基于 linux交叉开发环境的建立195. 嵌入式常用API函数介绍265.1 API之网络函数265.2 API之消息函数265.3 API之文件处理函数265.4 API之菜单函数27第五篇软件连调技术及调试方案的设定281.概述282.硬件PCB的测试283.软件调试284.软硬连调29第六篇 相关模块的工艺设计291.软件设计的注意事项291.1体系结构设计原则29

4、1.2用户界面设计301.3数据库设计322.硬件PCB版制件的规33第七篇 关键技术说明351.WIFI352.数据库363.linux系统简要36第八篇 工程进度和成本预计371.项目分解372.项目进度估算图383.成本预计39第一篇 概述1、围本文件规定了基于无线WIFI点菜系统的系统现实原理、系统原理、硬件总体设计、软件总体设计、关键技术及进度成本预计。本文件给出无线点菜系统点菜端、系统前台管理端、以及后台厨房管理端的研发方案,并给出软硬件关键性技术的一些模块流程、具体实现和关键代码。本文适用于整体无线点菜系统的研发方案。2、设计依据GB/T 8567-1988 计算机软件产品开发文

5、件编制指南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 143

6、94-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 A

7、MD 2-2007 工业自动化系统和集成.开放系统应用集成框架.第4部分:基于以太网的控制系统用参考描述.修改件2:Modbus TCP ISO/IEC 14766-1997 信息技术.系统间远程通信和信息交换因特网传输控制协议之上使用OSI应用件 ISO/IEC TR 9578-1990 信息技术 局域网用的通信接口连 器 ISO 7478-1987 信息处理系统 数据通信 多链路规程 ISO/IEC TR 18037-2004 程序设计语言.C.支持嵌入式处理机的扩展3、定义和缩略语3.1定义无线点菜系统:无线点菜系统是基于嵌入式ARM为手持终端的点菜设备。使整个点菜模块化、系统化。3.2

8、缩略语MR 主复位IC 集成电路CKSL 时钟选择CMD 指令CLK时钟KEY按键SDA 数据总线ADDR 地址寄存器CPU DT CPU 数据总线CPU A CPU 地址总线CPU RD CPU 中断请求CPU WR CPU 写控制ANT 天线KB 键盘 keyboardCPU 中央处理器Central ProcessingUnitALU算术逻辑单元ArithmeticLogicUnit CLK Clock时钟周期EmbeddedChips嵌入式FIFO先入先出队列FirstInputFirstOutput,BIOS基本输入/输出系统BasicInput/OutputSystem,INTIN

9、中断输入InterruptInputsUSB通用串行总线UniversalSerialBus,LED光学二级管lightemittingdiode,WIFI 无线网路通信技术wireless fidelityFPD平面显示器flatpaneldisplayCCT时钟周期ClockCycleTime,EPROM可擦写可编程ROMerasable,programmableROMDSM分布式共享存Distributedsharedmemory,FM快闪存储器FlashMemorySD单面存SingleSide,FAT文件分配表FileAllocationTables,LAN局部网local-area

10、 networkQOS服务质量quality of serviceAPI 应用编程接口Application Programming InterfaceAC 交流电Alternating CurrentTCP/IP 传输控制协议/因特网互联协议TransmissioControlProtocol/Internet Protocol4、设计原则和目标4.1系统设计原则原则详细要求正确性运行和调试结果完全正确健壮性在常规的环境下能够保证多人进行有效操作。可靠性在连续24小时之无差错可靠运行成本控制产品设计选用合适的软硬件。节约成本,使整体降低。易用性不经过专业培训就可通过提示进行操作可维护性便于升

11、级,简单的维护。可扩展性可扩展菜单,人员等信息量兼容性控制台在PC系统的兼容性42系统目标本系统完成后要实现点菜、加菜、删除、催菜、退菜、换菜、等。并台、转台、拼台、结账、打折等相关功能。顾客在餐桌上点菜确认后,能在1-2s通过Wi-Fi发送到服务台同时服务能把菜单信息通过无线WIFI传送到厨房,将整个点菜到上菜的时间大大压缩。第二篇 系统总体原理1、 现实系统的基本组成、功能和工作环境1. 1现实系统的基本组成1. 2主要功能1手持点菜系统餐厅服务员可以登录工号,实现手持界面点菜,退菜。能过无线WIFI传入前台主机计算机。通过前台计算机执行指令到厨房,实现快速点菜。2前台管理:前台接待开单、

12、点菜、加菜、退菜、附加口味做法、并单、移台、房台预订、菜品预订、外卖、结单等日常操作;临时菜品菜谱未设置但本店还能做的菜品管理;支持现金、免单、签单、会员卡、支票、信用卡等多种付款方式;会员级别不同可以享受不同级别的优惠;预订显示可以有效防止房台冲突;其他简单的查询和统计。3厨房显示打印系统:客人点单完毕,服务员把单子传到前台,前台操作人员把菜品录入电脑,入单的同时,厨房凉菜、热菜、主食各个档口即打印相应菜品,厨师即可照单做菜,这样可大大提高工作效率1.3系统的工作环境1.3.1手持式PDA工作环境中央处理器:ARM7以上适应环境温度围 :-60+70;工作湿度:0 95%1.3.2前台计算机

13、最低标配前台机的最低配置如下:CPU:PPentium4 2.4GHz存:512M RAM存硬盘空间:80G硬盘网络设备:802.11b/g1.3.3厨房计算机最低标配前台机的最低配置如下:CPU:PPentium42.4GHz存:512M RAM存硬盘空间:80G硬盘网络设备:802.11b/g第三篇 系统硬件实现及各模块功能实现1、概述为使手持PDA性能、大小和功耗最佳化,因此前台主机实现大部分功能,从而减轻手持终端的复杂性,更有利于提高手持终端的可靠性。2、手持设备的硬件设计方案点菜系统手持PDA由主控版、LED显示屏、距键盘和无线WIFI模块4部分组成。主控板为核心部分,集成了ARM7

14、以上处理器、2MB SRAM 、2MB NorFLASH、和32MB NandFlash,为软件运行提供了足够的空间。主控版还提供外部模块接口,方便用户根据不同的应用情况选择不同的模块配置。WIFI模块通过串口与主控版连接,提供与前台主机的无线WIFI业务的收发功能,显示模块通过LCDC接口与主控板连接,提供单色屏和彩色屏的显示功能。跟键盘与主控板相连,提供与PDA部选择功能。3、 手持设备的硬件总体设计原理图4、 手持设备的各模块功能实现4.1 LCD显示屏的连接实现4.2无线WIFI模块的连接实现4.3 矩阵键盘模块的连接实现5、前台电脑硬件实现由于基于缩短开发周期和费用,前台管理主机和厨

15、房显示主机可用平常PC机即可,因此前台主机的硬件方案这里不作介绍。5、 后台厨房的硬件实现由于基于缩短开发周期和费用,前台管理主机和厨房显示主机可用平常PC机即可,因此厨房显示系统的硬件方案这里不作介绍。6、 硬件的PCB板主要的开发环境介绍PCBPrintedCircuitBoard,中文名称为印制电路板,又称印刷电路板、印刷线路板,是重要的电子部件,是电子元器件的支撑体,是电子元器件电气连接的提供者。由于它是采用电子印刷术制作的,故被称为印刷电路板。两种常用的PCB板制做工具:Protel99SE和EAGLE6.1 protel99SE1、简介Protel99SE是应用于Windows9X

16、/2000/NT操作系统下的EDA设计软件,采用设计库管理模式,可以进行联网设计,具有很强的数据交换能力和开放性及3D模拟功能,是一个32位的设计软件,可以完成电路原理图设计,印制电路板设计和可编程逻辑器件设计等工作,可以设计32个信号层,16个电源-地层和16个机加工层。2、Protel 99 SE的系统组成1、电路工程设计部分电路原理设计部分Advanced Schematic 99:电路原理图设计部分包括电路图编辑器简称SCH编辑器、电路图零件库编辑器简称Schlib编辑器和各种文本编辑器。本系统的主要功能是:绘制、修改和编辑电路原理图;更新和修改电路图零件库;查看和编辑有关电路图和零件

17、库的各种报表。 2印刷电路板设计系统Advanced PCB 99:印刷电路板设计系统包括印刷电路板编辑器简称PCB编辑器、零件封装编辑器简称PCBLib编辑器和电路板组件管理器。本系统的主要功能是:绘制、修改和编辑电路板;更新和修改零件封装;管理电路板组件。 3自动布线系统Advanced Route 99:本系统包含一个基于形状Shape-based的无栅格自动布线器,用于印刷电路板的自动布线,以实现PCB设计的自动化。 2、电路仿真与PLD部分1电路模拟仿真系统Advanced SIM 99:电路模拟仿真系统包含一个数字/模拟信号仿真器,可提供连续的数字信号和模拟信号,以便对电路原理图进

18、行信号模拟仿真,从而验证其正确性和可行性。 2可编程逻辑设计系统Advanced PLD 99:可编程逻辑设计系统包含一个有语法功能的文本编辑器和一个波形编辑器Waveform。本系统的主要功能是;对逻辑电路进行分析、综合;观察信号的波形。利用PLD系统可以最大限度的精简逻辑部件,使数字电路设计达到最简化。 3高级信号完整性分析系统Advanced Integrity 99:信号完整性分析系统提供了一个精确的信号完整性模拟器,可用来分析PCB设计、检查电路设计参数、实验超调量、阻抗和信号谐波要求等。 3、Protel 99 SE的功能特性1、开放式集成化的设计管理体系 2、超强功能的、修改与编

19、辑功能 3、强大的设计自动化功能6.2、EAGLE1、简介自上世纪九十年代初以来,源于CadSoft公司的EAGLE软件一直畅销欧美,在EDA工具行业占有很大比例的市场份额,曾被德国一家著名电子杂志五次评选为年度最佳产品奖,为了让更多的EDA工具使用者了解到更好的PCB设计和原理图设计工具,EAGLE现正式进军中国市场,市英蓓特信息技术作为EAGLE软件亚洲地区第一家也是唯一一家代理商,主要负责该软件的市场推广和销售工作。2、EAGLE 四大核心模块:PCB编辑器 分辨率1/10,000毫米0.1微米 最多支持16个信号层支持用户自定义排序 拥有一套全新的分离库文件 使用这个全套集成库函数编辑

20、器很容易构建你自己的文件 在任何情况下都可执行取消/重建功能的编辑命令 在对PCB布线时支持信号线路动态计算 POLYGO敷铜层接地层 针对电路板进行设计规则检查DRC比如检查重叠、测量焊盘尺寸或线宽 支持用户自定义的、可自由编程的用户语言,用于为装配设备、测试设备、铣床生成数据文件以及生成其他数据格式的文件 支持多层电路板的生成原理图编辑器 通过拖拽实现原理图页面排序 支持元件替换功能的同时保持原理图和PCB设计的一致性 自动生成电路板 电气规则检查ERC原理图中的错误检查以及原理图与PCB设计之间的一致性检查 USE库调用和ADD添加已经存在的库元件 Grid栅格显示与隐藏便于图形的绘制

21、Global Attribute全局属性为原理图添加整体特性 命令语言完全能实现工具栏任务 加载已有绘图边框或自主设计绘图边框 交叉关联模式可将不同页面的连线关联起来自动布线器 使用您定义的设计规则组来检查PCB设计 一种在手动布线中为您提供支持的工具,也是跟随布线器的基本引擎;能够自动计算所选信号的走线 可随时在手动和自动布线之间切换 最多16个信号层支持用户自定义排序,14个电源层 支持所有的SMD,Pad焊盘及盲孔和埋孔 在自动布线生成后仍可编辑修改 PCB结构化布线,有利于布线优化设计 手工布线中添加两种Fellow-me布线模式元件库编辑器 用户自由编辑生成新的Package封装,S

22、ymbol原理图符号,Device元件 支持Device set元件组,为同一元件添加不同的Technology技术参数和Package封装类型 通过拖拽的方式复制修改已有元件生成新的元件库第四篇 系统软件实现级各模块功能实现1、 点菜系统手持终端PDA软件方案1.1概述点菜系统终端由系统软件和应用软件两部分构成,采用模块化层次结构方法进行设计,系统软件包括设备驱动程序、嵌入式linux、嵌入式数据库、TCP/IP协议等。应用软件则按功能定制在操作系统的控制下来完成指定的功能。1.2软件架构1.3系统软件系统软件由低层驱动程序、操作系统、中间层、和上层接口层安卓层组成,如图所示:1.4应用软件

23、点菜系统终端应用软件主要由输入输出事件外理模块主控模块、软入处理模块、数据处理模块、显示模块、远程WIFI通信模块等组成。应用软件以输入事件外理模块为主控模块,根据读取的信息调用其它模块进行具体处理事件。下图为点菜系统各模块之间关系及组成示意图。应用软件模块之间的关系图下图为应用软件组成图:应用软件组成图1.5应用软件控制流程图点菜终端开机上电时,应用软件执行初始化代码后,进入主控模块,即输入事件处理模块,并根据不同的输入事件调用各模块进行相应的处理,如图所示:软件控制流程图1.6应用软件设计 点菜系统终端的应用软件需要实现数据的输入、修改、删除、存储、显示等用户需求,并通过无线WIFI完成后

24、前台管理系统的信息交互任务。1.6.1程序的代码初始化初始化代码主要完成初始化及创建子进程的任务。流程图如图所示:1.6.2输入事件处理模块输入事件处理模块为主控模块,该模块接收来算各窗口的消息,并将消息发送给相应的消息外理函数进行处理,处理流程如图所示:1.6.3显示处理模块 根据输入事件处理模块发送的显示信息,通过相应的窗口函数进行表页显示和客显。外理流程图如图所示:1.6.4数据处理模块在事件处理模块控制下处理时,进行存取业务数据,如增加菜,删菜系统调置等操作。其处理流程图如图所示:1.6.5远程数据传输模块 远程数据传输使用WIFI无线通信实现手持PDA与前台管理中心的沟通。是在UDP

25、协议控制下进行手持PDA与前台主机通过WIFI通信模块进行无线通信。从功能上说:远程数据传输模块主要实现4部分功能。1报文组织将订菜单按传输控制协议组织成报文放入发送等待队列中2报文发送读取发送等待队列中的报文进行发送3报文接收接收从前台下发的数据信息4报文处理将接收到的报文分类处理无线通信传输体系结构如图所示:1.7系统界面设计1.7.1系统的登录界面设计1.7.2系统登录后界面设计2、前台电脑的软件方案略3、厨房电脑的软件方案略4、应用软件主要的开发环境介绍4.1、交叉开发环境概述对于嵌入式系统的开发,由于没有足够的资源在本机运行开发工具和调试工具,所以嵌入式系统的软件开发采用一种交叉编译

26、调试的方式,即宿主机-目标机模式。开发时使用宿主机上的交叉编译、汇编及连接工具形成可执行的二进制代码,然后把可执行文件下载到目标机上运行。交叉开发环境的示意图:4.2、 基于安卓交叉开发环境的建立1、软件安装安装jdk 6u19Java 安装完成即可,无需配置环境变量解压eclipse, eclipse无需安装,解压后,直接打开就行解压android sdk 这个也无需安装,2、Eclipse配置3、测试项目运行右键项目名称-runas -Android Application即可启动运行该Android程序,如下所示:测试程序运行结果如图4.3、 基于 linux交叉开发环境的建立1、准备工

27、作 首先需要一台运行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.t

28、ar.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

29、/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-

30、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 mkdi

31、r src-dir mkdir setup-dir mkdir kernel arm这个目录是我们的最顶层工作目录,我们所有的编译工作都在这里完成。 tool-chain这个目录是我们交叉编译工具的安装位置,它下面的bin子目录存放我们创建好的编译器,汇编器,连接器,以及编译好的C库也会安装到这个目录之下。 setup-dir这个目录用来存放我们下载的压缩包。 src-dir这个目录用于存放binutils,gcc,glibc解压之后的源文件。 kernel这个目录用来存放核文件,对核的配置、编译工作将在这个目录中完成。 build-dir用来编译src-dir中的源文件,具体就是binuti

32、ls,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个源文件

33、目录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目录下,并打补丁。 c

34、d ./kernel tar xvzf ./setup-dir/ linux-2.4.21.tar.gz cd ./linux-2.4.21 patch p1 ././setup-dir/ patch-2.4.21-rmk12、开始创建1、 确定几个系统变量cd ././export TARGET=arm-linuxexport PREFIX=./arm/tool-chainexport TARGET_PREFIX=$PREFIX/$TARGETexport KERNEL_SOURCE_LOCATION=./arm/kernel/linux-2.4.21export PATH=$PREFIX/

35、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 ././k

36、ernel/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/linux4、 创建b

37、oot-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

38、-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 mak

39、e install6、 创建功能健全的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

40、-linux文件,在 TARGET_LIBGCC2_CFLAGS中去除如下两个定义 -Dinhibit-libc D_gthr_posix_h make make install5、嵌入式常用API函数介绍1. API之网络函数 WNetAddConnection 创建同一个网络资源的永久性连接 WNetAddConnection2 创建同一个网络资源的连接 WNetAddConnection3 创建同一个网络资源的连接 WNetCancelConnection 结束一个网络连接 WNetCancelConnection2 结束一个网络连接2. API之消息函数 BroadcastSystem

41、Message 将一条系统消息广播给系统中所有的顶级窗口 GetMessagePos 取得消息队列中上一条消息处理完毕时的鼠标指针屏幕位置 GetMessageTime 取得消息队列中上一条消息处理完毕时的时间 PostMessage 将一条消息投递到指定窗口的消息队列 PostThreadMessage 将一条消息投递给应用程序 RegisterWindowMessage 获取分配给一个字串标识符的消息编号 ReplyMessage 答复一个消息 SendMessage 调用一个窗口的窗口函数,将一条消息发给那个窗口 SendMessageCallback 将一条消息发给窗口 SendMes

42、sageTimeout 向窗口发送一条消息 SendNotifyMessage 向窗口发送一条消息3. API之文件处理函数 CloseHandle 关闭一个核对象。其中包括文件、文件映射、进程、线程、安全和同步对象等 CompareFileTime 对比两个文件的时间 CopyFile 复制文件 CreateDirectory 创建一个新目录 CreateFile 打开和创建文件、管道、邮槽、通信服务、设备以及控制台 CreateFileMapping 创建一个新的文件映射对象 DeleteFile 删除指定文件 DeviceIoControl 对设备执行指定的操作4. API之菜单函数 A

43、ppendMenu 在指定的菜单里添加一个菜单项 CheckMenuItem 复选或撤消复选指定的菜单条目 CheckMenuRadioItem 指定一个菜单条目被复选成单选项目 CreateMenu 创建新菜单 CreatePopupMenu 创建一个空的弹出式菜单 DeleteMenu 删除指定的菜单条目 DestroyMenu 删除指定的菜单 DrawMenuBar 为指定的窗口重画菜单 EnableMenuItem 允许或禁止指定的菜单条目 GetMenu 取得窗口中一个菜单的句柄 GetMenuCheckMarkDimensions 返回一个菜单复选符的大小 GetMenuConte

44、xtHelpId 取得一个菜单的帮助场景ID GetMenuDefaultItem 判断菜单中的哪个条目是默认条目 GetMenuItemCount 返回菜单中条目菜单项的数量 GetMenuItemID 返回位于菜单中指定位置处的条目的菜单ID GetMenuItemInfo 取得接收与一个菜单条目有关的特定信息 GetMenuItemRect 在一个矩形中装载指定菜单条目的屏幕坐标信息 GetMenuState 取得与指定菜单条目状态有关的信息 GetMenuString 取得指定菜单条目的字串 GetSubMenu 取得一个弹出式菜单的句柄,它位于菜单中指定的位置 GetSystemMe

45、nu 取得指定窗口的系统菜单的句柄 HiliteMenuItem 控制顶级菜单条目的加亮显示状态 InsertMenu 在菜单的指定位置处插入一个菜单条目,并根据需要将其他条目向下移动 InsertMenuItem 插入一个新菜单条目 IsMenu 判断指定的句柄是否为一个菜单的句柄 LoadMenu 从指定的模块或应用程序实例中载入一个菜单 LoadMenuIndirect 载入一个菜单 MenuItemFromPoint 判断哪个菜单条目包含了屏幕上一个指定的点 ModifyMenu 改变菜单条目 RemoveMenu 删除指定的菜单条目 SetMenu 设置窗口菜单第五篇 软件连调技术及

46、调试方案的设定1、概述调试是可在被编译了的程序中判定执行错误的程序,它也经常与编译器一起放在IDE中。运行一个带有调试程序的程序与直接执行不同,这是因为调试程序保存着所有的或大多数源代码信息诸如行数、变量名和过程。它还可以在预先指定的位置称为断点breakpoint暂停执行,并提供有关已调用的函数以及变量的当前值的信息。为了执行这些函数,编译器必须为调试程序提供恰当的符号信息,而这有时却相当困难,尤其是在一个要优化目标代码的编译器中。因此,调试又变成了一个编译问题。2、硬件PCB的测试1样品的准备:在180220或320粒度的轮上研磨,并控制研磨深度在0.050inch围近似,安装前须去毛刺2

47、安装金相样板 清洁,干燥装配台表面,然后,在台上及安装环注入防粘剂将样品装入安装环,并将其固定。必要时,将需检查的表面面对装配表面。小心将封装材料注入装配环,确保样板竖立,孔充满封装材料。树脂封装材料可以要求真空除气,容许样品在室温下固化,用蚀刻或其它永久性方法在样板上作标记。3研磨及抛光 使用金相设备,在180粒度的砂带磨光机上粗磨样板。注意:必须使用流水来防止样板起燃。依次使用320粒度,400粒度,600粒度的圆盘砂纸细磨样品至电镀孔的中心剖面处,直至磨去毛刺及划痕,转动样品90,在连续的粒度砂纸下研磨,直至样品由粗粒度造成的划痕被磨去。用自来水洗样板,再用气管吹干,然后用刚玉来抛光样品

48、,使之呈现清晰的镀层表面。使用5微米的软膏移去因600粒度砂纸留下的划痕,接着使用0.3微米软膏。然后用酒精冲洗并吹干。检查切片,若有划痕,再抛光,直至划痕全消失。用合适的微酸液来擦样片通常用23秒以得到高清晰的层与层之间的分层线。用自来水来中和微酸液,再用酒精冲洗吹干。* 在抛光操作重,可以用操声波清洁器来降低抛光介质中的费酸洗液4检查 用100倍的显微镜检查孔壁厚度,至少选三个电镀孔,也可以用同一切片来确定表面的总厚度5评估将测的平均镀层厚度及镀层质量记录下来3、软件调试1) 系统调试阶段:系统完成配置以后,即可进行系统调试,模拟各种控制条件和联动环境,完成各项测试,待各项测试均通过时,即

49、可进行下一步骤系统试运行。2) 系统开始进入试运行阶段系统进行724小时不间断运行,同时模拟工作状态进行测试。系统测试无误后,填写竣工报告准备验收。软件的调试和测试将按照GB/T9386-1988计算机软件测试文件编制规GB/T15532-1995计算机软件单元测试等国家标准进行,保证详细的测试记录4、软硬连调在软件和硬件设计全部完成以后,分别要进行软件调试、硬件调试、和软硬件的反复连调。从而使得软件能够和硬件进行有效的融合。第六篇 相关模块的工艺设计1、软件设计的注意事项11、体系结构设计原则 合适性即体系结构是否适合于软件的功能性需求和非功能性需求。高水平的设计师高就高在设计出恰好满足客户

50、需求的软件,并且使开发方和客户方获取最大的利益,而不是不惜代价设计出最先进的软件。 结构稳定性详细设计阶段的工作如用户界面设计、数据库设计、模块设计、数据结构与算法设计等等,都是在体系结构确定之后开展的,而编程和测试则是更后面的工作,因此体系结构应在一定的时间保持稳定。软件开发最怕的就是需求变化,但需求会发生变化是个无法逃避的现实。人们希望在需求发生变化时,最好只对软件做些皮皮毛毛的修改,可千万别改动软件的体系结构。如果当需求发生变化时,程序员不得不去修改软件的体系结构,那么这个软件的系统设计是失败的。高水平的设计师应当能够分析需求文档,判断出哪些需稳定不变的,哪些需可能变动的。于是根据那些稳

51、定不变的需求设计体系结构,而根据那些可变的需求设计软件的可扩展性。 可扩展性可扩展性是指软件扩展新功能的容易程度。可扩展性越好,表示软件适应变化的能力越强。可扩展性越来越重要,这是由现代软件的商业模式决定的: 社会的商业越发达,需求变化就越快。需求变化必将导致修改或者扩展软件的功能,现代软件的规模和复杂性要比十年前的大得多对比一下操作系统的变化就明白了,如果软件的可扩展性比较差的话,那么修改或者扩展功能的代价会很高。 现代软件产品通常采用增量开发模式,开发商不断地推出软件产品的新版本,从而不断地获取增值利润。如果软件的可扩展性比较差的话,每次开发新版本的代价就会很高。虽然开发商抓住了商机,但却

52、由于设计水平差而导致没有赚取多少利润,真是要活活气死。 可复用性由经验可知,通常在一个新系统中,大部分的容是成熟的,只有小部分容是创新的。一般地可以相信成熟的东西总是比较可靠的即具有高质量,而大量成熟的工作可以通过复用来快速实现即具有高生产率。可复用性是设计出来的,而不是偶然碰到的。要使体系结构具有良好的可复用性,设计师应当分析应用域的共性问题,然后设计出一种通用的体系结构模式,这样的体系结构才可以被复用。1.2、用户界面设计 容易理解提高用户界面可理解性的一些规则如下: 界面中的所有元素如菜单、工具条等没有错误,也不会让人误解。 所有的界面元素应当提供充分而必要的提示,例如当鼠标移动到工具条

53、上的某个图标按钮时,应当在该图标旁边出现功能提示。 界面结构能够清晰地反映工作流程,以便用户按部就班地操作。 对于复杂的用户界面而言,最好提供界面向导,及时让用户知道自己在界面结构中所处的位置。例如对于基于Web的应用软件,应该在界面上显示当前位置,否则用户很容易在众多的页面中迷失方向。 风格一致风格一致有两方面的含义:1 一个软件的用户界面中,同类的界面元素应当有相同的视感和相同的操作方式。例如命令按钮是最常见的界面元素,所有命令按钮的形状、色彩以及对鼠标的响应方式都是一致的。2 同一类型软件的用户界面应当有一定程度的相似性。例如Microsoft公司的Office家族里有Word、Exce

54、l、PowerPoint、Outlook等软件,这些软件提供的复制、剪切、粘贴功能的操作方式都是相同的。 及时反馈信息用户进行某项操作后,如果过了一会儿几秒钟用户界面一点反应都没有,这将使用户感到迷茫和不安,因为他不知道是自己操作错了还是软件的原因导致死机了。所以及时反馈信息很重要,至少要让用户心里有数,知道该任务处理得怎么样了,有什么样的结果。例如下载一个文件,界面上应当显示百分比或相关数字来表示下载的进度,否则人们不知道要等待多少时间。如果某些事务处理不能提供进度等数据,那么至少要给出提示信息如正在处理,请等待,最好是提供合适的动画,让用户明白软件正在干活、没有死机。 出错处理在设计用户界

55、面时必须考虑出错处理,目的是让用户不必为避免犯错误而提心吊胆、小心翼翼地操作。常见的错误处理方式有: 提供对输入数据进行校验的功能。当用户输入错误的数据时,及时提醒用户改正数据。 对于在某些情况下不应该使用的菜单项和命令按钮,将其失效屏蔽可以有效防止该项功能被错误地使用。例如:对于某些管理软件,不同的用户有不同的操作权限。如果低权限的用户登录到系统,那些只有高级权限用户才能使用的功能应当被屏蔽如变成灰色不可操作。 提供Undo功能,用以撤销不期望的操作。 执行破坏性的操作之前,应当获得用户的确认。例如用户删除一个文件时,应当弹出对话框:真的要删除该文件吗,当用户确认后才真正删除文件。 合理的布

56、局首先,界面的布局应当符合逻辑,最好能够与工作流程吻合。界面设计人员只有仔细地分析软件的需求,才能提取对界面布局有价值的信息。其次,界面的布局应当整洁整齐清爽。界面元素应当在水平或者垂直方向对齐,行、列的间距保持一致。窗体的尺寸要合适,各种控件不能过分拥挤也不能过分宽松。要善于利用窗体和控件的空白,以及分割用的线条。 和谐的色彩用户界面是否美观,主要取决于该界面的布局和色彩搭配。实现合理的布局相对比较容易一些,设计和谐的色彩太困难了,因为色彩的组合千变万化,并且人们对颜色的喜好也极不相同。对于广大软件开发人员而言,虽然我们没有必要让普通软件的界面漂亮到Windows XP这种程度,但是掌握一些

57、界面色彩的设计原则无疑是非常有益的。 如果不是为了显示真实感的图形和图像,那么应当限制一帧屏幕的色彩数目,因为人们在观察屏幕的时候很难同时记住多种色彩。 应当根据对象的重要性来选择颜色,重要的对象应当用醒目的色彩表示。 使用颜色的时候应当保持一致性,例如错误提示信息用红色表示,正常信息用绿色表示,那么切勿篡用红色和绿色。 在表达信息时,不要过分依赖颜色,因为有些用户是色盲或色弱。1.3、数据库设计 信息隐藏为了尽量避免某个模块的行为去干扰同一系统中的其它模块,在设计模块时就要注意信息隐藏。应该让模块仅仅公开必须要让外界知道的容,而隐藏其它一切容。模块的信息隐藏可以通过接口设计来实现。接口是模块的外部特征,应当公开;而数据结构、算法、实现体等则是模块的部特征,应当隐藏。一个模块仅提供有限个接口Interface,执行模块的功能或与模块交流信息必须且只须通过调用公有接口来实现。如果模块是一个C+对象,那么该模块的公有接口就对应于对象的公有函数。如果模块是一个COM对象,那么

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!