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
1.1MCS51实验系统安装与启动1.DVCC系列实验系统在出厂时均为51状态对DVCC—52196JH机型:SK1位1—5置ON位置,位6—10置OFF对DVCC—5286JH和DVCC—598JH机型:a.SK1位1—5置ON,位6—10置OFF;b.SK2位1—2置ON;c.SK3置ON;d.SK4置OFFe.卧式KBB置51、96位置,立式KBB1开关置51、88位置(只对DVCC—598JH/JH+);f.DL1—DL4连1、22.如果系统用于仿真外接用户系统,将40芯仿真电缆一头插入系统中J6插座,另一头插入用户系统的8051CPU位置,注意插入方向,仿真头上小红点表示第一脚,对应用户8051CPU第一脚。3.接上+5V电源,将随机配备的2芯电源线,红线接入外置电源的+5V插孔,黑线接入外置电源地插座。上电后,DVCC系列实验系统上显示“P.”闪动。如果是独立运行,按DVCC系列用户手册进入键盘管理监控,就能马上做实验。键盘管理监控操作详见第一分册第四章。如果连上位机工作,必须将随机配备的D型9芯插头一端插入DVCC系统J2插座,另一端插入上位机串行口COM1—COM2任选。然后按DVCC实验系统PCDBG键,再运行上位机上的DVCC联机软件,双方建立通信,往后详细操作见用户手册第五章。如果电源内置,只需打开~220V电源开关即可。
上传时间: 2013-10-12
上传用户:xc216
使用源码注意项: 1、Windows2000 Professional SP3、DELPHI 6.0、SQL Server2000的开发环境; 2、开发目录为:D:PieceRate,数据库备份存放于Data目录中,还原SQL Server后名为PieceRate; 3、目前客户3站点在使用,初次运行时服务器名、客户机名的设置大家应该会吧,不会就QQ吧。 4、里面有大量数量,数据日期为2003年1月份的,所以大家查看统计时要注意日期,如果统计全部人员的数据耗时会比较长一些; 5、统计大部分使用了存储过程; 6、使用了Devexpress Quantum、LxMenu、Reportmachine等控件; 7、二用户密码均为1
标签: 2000 Professional PieceRate Windows
上传时间: 2017-01-29
上传用户:yiwen213
VIP专区-嵌入式/单片机编程源码精选合集系列(41)资源包含以下内容:1. pcb EMI 的防护的资料.2. pcb EMI 的防护的资料.3. pcb EMI 的防护的资料.4. pcb EMI 的防护的资料.5. pcb EMI 的防护的资料.6. 引入事件驱动观念的抢占式多任务微型实时内核——MicroStar的设计与实现;提出基于事件的优先级这一新概念。.7. uC_OS2.52官方源代码 新人报道~~ 不知道能不能满足老大的要求.8. 本文章并不是程序.9. 日本著名的的嵌入式实时操作系统T-Kernel的源码及用户手册。.10. 利用单片机控制电流大小.11. 初学单片机.12. 双口RAM硬件和软件可靠性握手的实现 双口RAM硬件和软件可靠性握手的实现.13. 是本人的大学接口课程设计.14. Modbus通讯协议详解.15. C8051F单片机ADC0转换,大家可以学习参看!.16. s51系列芯片下载软件,可以在线烧写flash芯片.17. 基于SPCE061A的MiniOS源代码..18. This the completed iic communication program for LPC2200!.19. UART communication program for lpc.20. SPeex语音压缩算法的静态连接库和源代码.21. 基于AT89C2051和ISD2560的录放音系统设计 基于AT89C2051和ISD2560的录放音系统设计.22. PCF8563时钟芯片的C语言应用事例.23. 4X4键盘扫描程序.24. NOKIA手机液晶屏I3510的应用例程.25. AVR单片机内部EEPROM的编程方法。.26. DS18B20的操作读写源程序(7.3728MHZ晶震).27. 用AVR单片机做的LC测量仪。(ATMEGA8+GCC).28. M32+LCM12864源代码及相关资料.29. 使用3310液晶的数字频率计(AVR)..30. 用mega8模拟usb做下载线(AVR).31. 7920两行中文液晶显示屏的源程序及电路图 (ICC).32. LCD1602四线接口应用范例(AVR_GCC).33. s3c44b0x上实现的ucos+tftp.34. 周立功ARM开发板LPC2104 移植的PC服务代码.35. 周立功ARM开发板LPC2104 ZLG_CF驱动.36. 周立功ARM开发板LPC2104 ZLF_IP驱动.37. 周立功ARM开发板LPC2104 TCP/IP协议应用.38. 传感器中文手册.39. 基于F020单片机的应用程序.40. keil c 破解.
标签: 固件
上传时间: 2013-05-29
上传用户:eeworm
□基于来电显示技术,识别主人,利用手机或固定电话实现免接通,免费用的绝密遥控关及撤防。□单芯片多功能可编程设计,MCU内核,有着十分灵活广泛的应用(可定制特殊功能)。自动拨号的电话报警器方面:室内手动延时布防,手机或固定电话免接通遥控撤防;拨号报警+现场报警(可选)。电话遥控开关方面:用于开启电控门锁,保险柜电控锁,车库电动门,电器开关...等。更多应用......。□单芯片最多可存入6组电话号码(6个主人)不重码,最后一组号码可刷新,掉电不丢失,可保100年。□非主人拨入无效,主人需20秒内连续拨通两次遥控才有效(撤防或开关),操纵成功后会自动回拨遥控者电话一次,以表示遥控成功。绝不影响电话的正常使用。□循环拨打1-6组主人电话号码报警15次,接听报警时警声提示,可同时选择现场报警。无注册用户时,触发报警将自动转入连续现场报警1分钟。□接警处理功能,接听报警期间,手机或固定电话按"#"键退出报警。未接警的号码继续打报警。□仅设计两按钮实现用户注册、信息删除、室那手动布防撤防、输出开关控制、报警模式设定,报警期间无法手动撤防。□两种反复可编程报警模式。掉电不丢失。模式1:报警完毕自动撤防;模式2:报警完毕保持布防。□两种自适应电路模式:DTMF解码器接入模式和DTMF解码器不接入模式。自动实现不同的电路设计实现不同的输出控制功能。同一电路设计,通过增减硬部件即可实现不同的输出功能,QL310上电时自动识别DTMF解码器是否存在。□两路警声输出:其中一路输出用于操作音提示及报警时加载到电话线路中供监听用。另一路为现场报警使用(可根据需要选用,这路只有在报警时才有输出,设计时可通过加大功率提高警声)。□状态记忆功能:布撤防状态都有记忆功能(掉电不丢失)。可避免布撤防期间的偶然的停电再上电是状态发生变化。比如,当前为布防状态,掉电再上电后还是保持布防状态。□手动布撤防提示音,布撤防LED指示灯。□上电开机报警模式提示音,模式1发一声提示音;模式2发两声提示音。□触发端的信号智能检测,因此可适应任何触发信号:或高电平,或低电平,或高/低脉冲信号;无源的开关信号,如继电器,干簧管或门磁开关等(由于触发端内部有上拉电阻)。标准的TTL电平,通过外接简单的限幅电路可实现更高电平或脉冲的输入(红外探头,防火探头等)。特强抗干扰处理,长距离布线可抗强电磁干扰。□20脚PDIP封装及20脚SOP封装。□5V低功耗。使用3.58M晶振。□工业级设计,工作温度:-40℃~+85℃
上传时间: 2013-11-13
上传用户:lacsx
EasyFPGA060是广州致远电子有限公司为FPGA初学者“量身定做”的一款真正用得起、高性能的FPGA开发套件,它在EasyFPGA030开发平台的基础上进行了改进,除了保留原产品的精巧,适用的风格外,对其资源进行了扩充,由原来的A3P030修改为A3P060,不仅资源翻了一番,还将拥有18Kbit RAM,1个PLL,AES加密等功能;由原来并口的下载接口升级为USB的下载接口,方便笔记本以及没有并口的台式机用户使用。
上传时间: 2013-10-17
上传用户:zsjzc
RealView™ 编译工具 2.0 版 Windows 版安装指南 本绪言介绍 RealView™ 编译工具 2.0 版入门指南 和其它用户文档。其中包含下列 各部分: • 第 vi 页的关于本书; • 第 ix 页的反馈。 本书按下列各章组织: 第 1 章简介 阅读此章,了解 RealView 编译工具 的简介(RVCT)。 第 2 章嵌入式软件开发 阅读此章,了解如何用 RVCT 开发嵌入式应用程序的详细信息。 它 描述与目标系统无关的默认 RVCT 行为,以及如何调整 C 库和映像 内存映射以适应您的目标系统。 第 3 章使用过程调用标准 阅读此章,了解如何使用 ARM-Thumb 过程调用标准。 使用此标准 可以更方便地确保分别编译和汇编的模块可以协同工作。 第 4 章ARM 和 Thumb 交互操作 阅读此章,了解编写实现 Thumb ® 指令集的处理器代码时,如何在 ARM 状态和 Thumb 状态之间切换的详细信息。 第 5 章混合使用 C、C++ 和汇编语言 阅读此章,了解如何编写 C、C++ 和 ARM 汇编语言混合代码的详 细信息。 它还描述如何从 C 和 C++ 使用 ARM 内联和嵌入式汇编程 序。
标签: Compilation RealView 用户手册
上传时间: 2013-10-23
上传用户:fudong911
EasyFPGA060是广州致远电子有限公司为FPGA初学者“量身定做”的一款真正用得起、高性能的FPGA开发套件,它在EasyFPGA030开发平台的基础上进行了改进,除了保留原产品的精巧,适用的风格外,对其资源进行了扩充,由原来的A3P030修改为A3P060,不仅资源翻了一番,还将拥有18Kbit RAM,1个PLL,AES加密等功能;由原来并口的下载接口升级为USB的下载接口,方便笔记本以及没有并口的台式机用户使用。
上传时间: 2013-11-08
上传用户:哈哈haha
引导装载程序(boot loader)控制复位后的初始化操作,并提供对Flash存储器进行编程的方法。这可以对空片进行初始编程、对事先已编程的芯片进行擦除和再编程或者是在系统运行时通过系统中的应用程序对Flash存储器进行编程。19.3特性在系统编程:在系统编程(ISP)是通过使用引导装载程序软件和UART0串口对片内Falsh存储器进行编程/再编程的方法。这种方法也可以在芯片位于终端用户板时使用;在应用编程:在应用编程(IAP)是通过终端用户的应用代码对片内Flash存储器进行擦除/写操作的方法;只有LPC134x系列Cortex-M3微控制器支持从USB端口引导,通过将其枚举为大容量存储器等级(MSC)设备来连接到USB主机接口(仅适用于Windows操作系统);Flash访问时间可通过Flash控制器模块中的寄存器来配置;每个扇区的擦除时间为100ms±5%;而每个256字节的模块,其编程时间为1ms±5%。
上传时间: 2013-11-04
上传用户:weixiao99
引言 1.1 编写目的 编写本测试计划的目的是为整个测试阶段的管理工作和技术工作提供指南;同时确定测试的内容和范围,为评价系统提供依据;此外还帮助用户安排测试活动,说明对设备器材和机构人员的资源需求;说明测试结果的评价指标。 1.2 背景 说明本测试计划所属软件系统的名称、特征、要求和难点,以及在开始执行本测试计划之前必须完成的各项任务。 1.3 参考资料 《XX电子运行维护系统省内系统需求规范 V2.0》 《XX省EOMS系统需求规范 V1.5》 《概要设计说明书》 《软件需求规格说明书》 1.4 术语和缩写词 缩略语 EOMS:electronic operation and management system 2 任务概述
上传时间: 2013-12-10
上传用户:顶得柱