无线电子点菜系统是餐馆实行信息化管理的一个重要组成部分,该系统的应用不仅会给餐饮企业带来良好的经济效益,而且有利于先进的科学技术在国民经济中的推广应用,产生良好的社会效益。目前国内点菜系统高、低档产品繁多,但推广速度十分缓慢,究其原因是缺少适合中国国情的中档适用产品。本文通过分析国内市场现有的各种点菜系统的优缺点,指出点菜系统的区别关键在于点菜终端和通讯方式的选择上,在此基础上提出了一种适合具体应用场合的中档无线点菜终端解决方案:运用嵌入式系统开发无线点菜终端,运用短距离无线通信技术进行数据传输。 文章首先分析了无线点菜机的系统组成及功能分配,并在此基础上对系统各个组成模块的硬件进行设计。接着分析了触摸屏数据采集的全过程,探讨了影响触摸屏数据精度的各种因素,提出了一种“三步法”进行数据的校正的方法。然后文章对几种常用的小范围无线通讯方式进行比较,确定采用无线射频单芯片实现短距离无线通讯,并详细阐述了数据帧格式和分层次通讯协议的设计,通讯系统的模型采、用主站论询,从站监听的方式。最后是软件的具体开发,首先研究了μC/OS-Ⅱ操作系统的移植和Boot Loader启动代码的设计,并成功移植下载到S3C44BOX中,然后在此操作系统的基础上进行点菜界面、通讯协议及关键驱动的设计。 本设计对基于嵌入式μC/OS-Ⅱ操作系统进行终端开发,具有一定的借鉴指导意义,对自助式餐饮业具有商业实用价值。同时,作为一款手持式产品,可以随身携带,可以使用于多种支持无线上网的场合,具有一定的市场应用前景和商业实用价值。
上传时间: 2013-07-30
上传用户:acon
机械手是自动装配生产线上必不可少的设备,它可以模拟人手臂的部分动作,按预定的程序、轨迹和要求,实现抓取、搬运和装配等工作。在减轻人的劳动强度、提高装配质量和提高装配效率等方面,起到了积极的作用。本文基于ARM和FPGA嵌入式系统,开展了机械手控制系统的研发工作,实现了机械手的自动控制。 嵌入式ARM处理器,具有运行速度快、功耗低、程序设计灵活、外围硬件资源丰富等优点,但其普通输入输出口的高低电平变化周期最快只能到1微妙左右,不适合高速输入输出;FPGA芯片高速输入输出数据,时间可缩短至几十纳秒。通过ARM处理器和FPGA技术的有机结合,发挥各自的优势,使系统具有程序设计灵活、以太网通信、大容量存储、高速数据输山、低成本等特点,满足高速机械手自动控制的要求。 本文分析了ARM和FPGA系统,以及机械手控制系统的功能要求;设计硬件模块、接口电路;阐述了系统软件的设计过程,包括启动代码U—BOOT、操作系统μCLinux的移植;并介绍了如何利用便件描述语言VHDL来实现机械手逻辑控制。
上传时间: 2013-04-24
上传用户:luyanping
随着我国经济建设的快速发展,人们的生活消费水平也越来越高,对餐饮业的服务质量和服务方式也不断地提出新的要求。基于计算机处理和无线通信技术的餐饮服务系统应运而生,本文就基于ARM9的无线餐饮服务终端系统进行了研究和开发,通过对终端的操作,实现无线点菜功能。 在参考阅读了大量信息资料的基础上,确定了以嵌入式系统为终端、基于微功率短距离无线通信技术进行无线通信的整体设计方案。嵌入式系统成本低、体积小、功耗低且可靠性高,是开发餐饮服务终端系统的绝佳选择,而微功率短距离无线通信技术开发容易,成本低廉。所以本课题选择ARM嵌入式开发板和短距离RF无线数据传输模块作为开发餐饮服务终端的硬件。 本文配置了适合嵌入式系统开发的交叉编译环境,在此环境下,通过对系统引导程序的配置、对Linux内核的裁减和对root文件系统的定制,开发了基于本平台的嵌入式Linux操作系统;用C语言编写了基于无线数据传输模块的无线通信应用程序,通过数据发送和数据接收,实现了点菜数据在餐饮服务终端和服务器之间的无线传输;设计了点菜终端的图形用户界面,操作者可在此界面上进行点菜操作,实现点菜功能。 在开发过程中,对Linux操作系统的内核源码、运行和管理机制进行了深入研究,就启动代码的更改和内核的裁减进行了探讨和开发;应用程序采用共享内存的Linux多线程技术进行功能处理,就线程管理问题的进行了分析探讨。
上传时间: 2013-06-12
上传用户:坏坏的华仔
at91rm9200启动过程教程 系统上电,检测BMS,选择系统的启动方式,如果BMS为高电平,则系统从片内ROM启动。AT91RM9200的ROM上电后被映射到了0x0和0x100000处,在这两个地址处都可以访问到ROM。由于9200的ROM中固化了一个BOOTLOAER程序。所以PC从0X0处开始执行这个BOOTLOAER(准确的说应该是一级BOOTLOADER)。这个BOOTLOER依次完成以下步骤: 1、PLL SETUP,设置PLLB产生48M时钟频率提供给USB DEVICE。同时DEBUG USART也被初始化为48M的时钟频率; 2、相应模式下的堆栈设置; 3、检测主时钟源(Main oscillator); 4、中断控制器(AIC)的设置; 5、C 变量的初始化; 6、跳到主函数。 完成以上步骤后,我们可以认为BOOT过程结束,接下来的就是LOADER的过程,或者也可以认为是装载二级BOOTLOER。AT91RM9200按照DATAFLASH、EEPROM、连接在外部总线上的8位并行FLASH的顺序依次来找合法的BOOT程序。所谓合法的指的是在这些存储设备的开始地址处连续的存放的32个字节,也就是8条指令必须是跳转指令或者装载PC的指令,其实这样规定就是把这8条指令当作是异常向量表来处理。必须注意的是第6条指令要包含将要装载的映像的大小。关于如何计算和写这条指令可以参考用户手册。一旦合法的映像找到之后,则BOOT程序会把找到的映像搬到SRAM中去,所以映像的大小是非常有限的,不能超过16K-3K的大小。当BOOT程序完成了把合法的映像搬到SRAM的任务以后,接下来就进行存储器的REMAP,经过REMAP之后,SRAM从映设前的0X200000地址处被映设到了0X0地址并且程序从0X0处开始执行。而ROM这时只能在0X100000这个地址处看到了。至此9200就算完成了一种形式的启动过程。如果BOOT程序在以上所列的几种存储设备中找到合法的映像,则自动初始化DEBUG USART口和USB DEVICE口以准备从外部载入映像。对DEBUG口的初始化包括设置参数115200 8 N 1以及运行XMODEM协议。对USB DEVICE进行初始化以及运行DFU协议。现在用户可以从外部(假定为PC平台)载入你的映像了。在PC平台下,以WIN2000为例,你可以用超级终端来完成这个功能,但是还是要注意你的映像的大小不能超过13K。一旦正确从外部装载了映像,接下来的过程就是和前面一样重映设然后执行映像了。我们上面讲了BMS为高电平,AT91RM9200选择从片内的ROM启动的一个过程。如果BMS为低电平,则AT91RM9200会从片外的FLASH启动,这时片外的FLASH的起始地址就是0X0了,接下来的过程和片内启动的过程是一样的,只不过这时就需要自己写启动代码了,至于怎么写,大致的内容和ROM的BOOT差不多,不同的硬件设计可能有不一样的地方,但基本的都是一样的。由于片外FLASH可以设计的大,所以这里编写的BOOTLOADER可以一步到位,也就是说不用像片内启动可能需要BOOT好几级了,目前AT91RM9200上使用较多的bootloer是u-boot,这是一个开放源代码的软件,用户可以自由下载并根据自己的应用配置。总的说来,笔者以为AT91RM9200的启动过程比较简单,ATMEL的服务也不错,不但提供了片内启动的功能,还提供了UBOOT可供下载。笔者写了一个BOOTLODER从片外的FLASHA启动,效果还可以。 uboot结构与使用uboot是一个庞大的公开源码的软件。他支持一些系列的arm体系,包含常见的外设的驱动,是一个功能强大的板极支持包。其代码可以 http://sourceforge.net/projects/u-boot下载 在9200上,为了启动uboot,还有两个boot软件包,分别是loader和boot。分别完成从sram和flash中的一级boot。其源码可以从atmel的官方网站下载。 我们知道,当9200系统上电后,如果bms为高电平,则系统从片内rom启动,这时rom中固化的boot程序初始化了debug口并向其发送'c',这时我们打开超级终端会看到ccccc...。这说明系统已经启动,同时xmodem协议已经启动,用户可以通过超级终端下载用户的bootloader。作为第一步,我们下载loader.bin.loader.bin将被下载到片内的sram中。这个loder完成的功能主要是初始化时钟,sdram和xmodem协议,为下载和启动uboot做准备。当下载了loader.bin后,超级终端会继续打印:ccccc....。这时我们就可以下在uboot了。uboot将被下载到sdram中的一个地址后并把pc指针调到此处开始执行uboot。接着我们就可以在终端上看到uboot的shell启动了,提示符uboot>,用户可以uboot>help 看到命令列表和大概的功能。uboot的命令包含了对内存、flash、网络、系统启动等一些命令。 如果系统上电时bms为低电平,则系统从片外的flash启动。为了从片外的flash启动uboot,我们必须把boot.bin放到0x0地址出,使得从flash启动后首先执行boot.bin,而要少些boot.bin,就要先完成上面我们讲的那些步骤,首先开始从片内rom启动uboot。然后再利用uboot的功能完成把boot.bin和uboot.gz烧写到flash中的目的,假如我们已经启动了uboot,可以这样操作: uboot>protect off all uboot>erase all uboot>loadb 20000000 uboot>cp.b 20000000 10000000 5fff uboot>loadb 21000000 uboot>cp.b 210000000 10010000 ffff 然后系统复位,就可以看到系统先启动boot,然后解压缩uboot.gz,然后启动uboot。注意,这里uboot必须压缩成.gz文件,否则会出错。 怎么编译这三个源码包呢,首先要建立一个arm的交叉编译环境,关于如何建立,此处不予说明。建立好了以后,分别解压源码包,然后修改Makefile中的编译器项目,正确填写你的编译器的所在路径。 对loader和boot,直接make。对uboot,第一步:make_at91rm9200dk,第二步:make。这样就会在当前目录下分别生成*.bin文件,对于uboot.bin,我们还要压缩成.gz文件。 也许有的人对loader和boot搞不清楚为什么要两个,有什么区别吗?首先有区别,boot主要完成从flash中启动uboot的功能,他要对uboot的压缩文件进行解压,除此之外,他和loader并无大的区别,你可以把boot理解为在loader的基础上加入了解压缩.gz的功能而已。所以这两个并无多大的本质不同,只是他们的使命不同而已。 特别说名的是这三个软件包都是开放源码的,所以用户可以根据自己的系统的情况修改和配置以及裁减,打造属于自己系统的bootloder。
上传时间: 2013-10-27
上传用户:wsf950131
JAVAJTest只是做出了一个测试代码框架而已,正真的测试代码,最终还是要用户自己来实现。 因此,我认为,JTest最大的优势在于静态代码分析,至于自动生成测试代码,只是商业上的一个嘑头而已,当然生成测试代码框架也是不错的,但是千万不要以为什么事情都不用自己做了!
上传时间: 2015-03-17
上传用户:qb1993225
xilinx fpga x3s500e芯片从flashboot的程序代码,一个是命令流编写,一个是往flash里写入启动代码。
标签: flashboot x3s500e xilinx fpga
上传时间: 2014-12-03
上传用户:vodssv
这是远峰开发板上的代码,WINCE的启动代码
上传时间: 2014-01-21
上传用户:凌云御清风
代码是基于ti公司DM642,8位rom启动代码。含有16进制的转换工具和flashburn。
上传时间: 2014-01-23
上传用户:sammi
本套书分上、下册。上册以PHILIPS公司的LPC2131 ARM微控制器为核心,以EasyARM2131开发板为基础,深入浅出地对LPC213x系列ARM微控制器的使用进行了详细、全方位的阐述。全书共分5章。第1章介绍EasyARM2131硬件开发平台;第2章介绍嵌入式开发软件平台;第3章着重介绍 LPC2131微控制器的体系结构和启动代码;第4章是本书的核心,以LPC2131微控制器功能部件为主线,详细介绍该芯片所有功能部件的使用,并提供详细的例程;第5章介绍LPC213x系列微控制器的硬件结构。 下册以 C/OS-II为基础,全面介绍基于OS的各种应用设计,同时介绍LPC214x系列ARM微控制器的原理及其USB驱动开发与源代码分析。 本套书可作为从事嵌入式系统应用开发工程师的参考资料,也可作为高等院校电子、自动化、机电一体化、计算机等相关专业嵌入式系统的教学参考书,特别适合于进行ARM7嵌入式开发的初学者。
上传时间: 2013-12-26
上传用户:zhouli
Z228 芯片的sdram_remap代码。很有参考意义。初始化sdram后可以直接烧写裸机程序,不用启动代码了。 附带一个Z228的串口0操作代码
标签: sdram_remap sdram Z228 芯片
上传时间: 2013-12-18
上传用户:417313137