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
加密算法 Test Driver for Crypto++, a C++ Class Library of Cryptographic Primitives: - To generate an RSA key cryptest g - To encrypt and decrypt a string using RSA cryptest r - To calculate MD5, SHS, and RIPEMD-160 message digests: cryptest m file - To encrypt and decrypt a string using DES-EDE in CBC mode: cryptest t - To encrypt or decrypt a file cryptest e|d input output - To share a file into shadows: cryptest s <pieces> <pieces-needed> file (make sure file has no extension, if you re running this under DOS) - To reconstruct a file from shadows: cryptest j output file1 file2 [....] - To gzip a file: cryptest z <compression-level> input output - To gunzip a file: cryptest u input output - To run validation tests: cryptest v - To run benchmarks: cryptest b [time for each benchmark in seconds]
标签: Cryptographic Primitives generate Library
上传时间: 2015-07-16
上传用户:wqxstar
ADT600-1的基地址0x300,中断为7, 3个定时器采用级连,CLK0的时钟源是模块上的8M震荡器,中断源为71054定时器的输出OUT2。采集电压范围为+/-5V,请按《ADT200/ADT600技术手册 版本B》上的说明对SW1,W5,W6,W9跳线。若你想修改中断号和基地址,请修改config.h相应的常量ADT_IRQ, ADT_BASE定义,然后重新编译安装,即运行make all 注意:不要在其他文件中修改。
上传时间: 2016-02-12
上传用户:evil
ADT600-1的基地址0x300,中断为7, 3个定时器采用级连,CLK0的时钟源是模块上的8M震荡器,中断源为71054定时器的输出OUT2。采集电压范围为+/-5V,请按《ADT200/ADT600技术手册 版本B》上的说明对SW1,W5,W6,W9跳线。若你想修改中断号和基地址,请修改config.h相应的常量ADT_IRQ, ADT_BASE定义,然后重新编译安装,即运行make all 注意:不要在其他文件中修改。
上传时间: 2013-12-10
上传用户:tonyshao
ADT600-1的基地址0x300,中断为7, 3个定时器采用级连,CLK0的时钟源是模块上的8M震荡器,中断源为71054定时器的输出OUT2。采集电压范围为+/-5V,请按《ADT200/ADT600技术手册 版本B》上的说明对SW1,W5,W6,W9跳线。若你想修改中断号和基地址,请修改config.h相应的常量ADT_IRQ, ADT_BASE定义,然后重新编译安装,即运行make all 注意:不要在其他文件中修改。
上传时间: 2013-12-25
上传用户:wl9454
輕易學好C++編程技巧 - 進楷 (香港科技大學筆記 19課) 內容包括 1) base C++ review, 2) Pointers and Dynamic Objects, 3) Recursion,Linked Lists, 4) Stacks and Queues, 5) Algorithm Analysis, 6) Insertion Sort and Mergesort, 7) Quicksort, 8) Heaps and Heapsort, 9) Lower Bound of Sorting and Radix Sort, 10) Binary Trees and Binary Search Trees 11) AVL Trees, 12) B+ Trees 13) Graphs and Breadth-First Search 14) Depth-First Search 15) Connected Components, Directed Graphs, 16) Topological Sort 17) Hashing 18) Pattern Matching 19) Additional Review
标签: Pointers Dynamic Objects review
上传时间: 2014-10-10
上传用户:chfanjiang
Neural Networks at your Fingertips.rar =============== Network: Adaline Network =============== Application: Pattern Recognition Classification of Digits 0-9 Author: Karsten Kutza Date: 15.4.96 Reference: B. Widrow, M.E. Hoff Adaptive Switching Circuits 1960 IRE WESCON Convention Record, IRE, New York, NY, pp. 96-104, 1960
标签: Network Fingertips Networks Adaline
上传时间: 2014-12-22
上传用户:lizhizheng88
VIP专区-嵌入式/单片机编程源码精选合集系列(161)资源包含以下内容:1. 温度监视器.2. 通过按键在3位一体的数码管上显示数字.3. 在IAR 环境下.4. pruotues仿真教程 pruotues仿真教程 pruotues仿真教程.5. 嵌入式系统设计的好书.6. i2c总线的verilog代码.7. 1、实验目的 掌握编写一般GUI程序的基本步骤.8. 红色飓风原理图.9. G代码生成软件.10. msp430F437三相电表DEMO(编译器 IAR 3.42A).11. 键盘程序:基于cpld开发环境的4*4键盘程序.12. ADS下开发的A/D转换器AD7892及LCD显示程序.13. mcs51单片机键盘扫描程序.14. 给出了一种基于$3C2410嵌入式SoC的网络视频会议终端的实现方案.15. 在仿真软件protues7.1上仿真arm7的GUI的代码和protues的工程文件。是学习arm的一个好东西.16. c51的原理图啊.17. 温度传感器ds18b20的完整程序.18. 中兴MG815+CDMA模块USB转接原理图及PCB图(基于CP2102的USB TO RS232转接原理.19. Michael J. Pont 的嵌入式系统编程讲座1.20. PIC 的ip 有用的着的拿去看看吧 对于开发pci总线会有很大帮助的.21. AT91RM9260PMC程序,程序和ATMEL9260EK开发板配套.22. Embedded VC++ 4 Programmer s Guide.23. ylp2410的bootloader源码.24. McCraw-Hill - Wap A Beginner s Guide Ebook-fly.25. 能够实现步进电机的正转反转.26. 很好的资料和大家分享 飓风板的原理图.27. 文章的内容是有关嵌入式编程用到的工具-MAKE的中文手册..28. 飞思卡尔智能车摄像头的完整程序.29. STM32的程序.30. 基于PLC控制交流变频调速电梯系统的研究的一篇pdf格式说明文档。.31. This a GUI that manages DSP analysis functions for wav-files (e.g., speech signals). Two functions (.32. 《嵌入式系统设计与实例开发》王田苗 北航出版社.33. 嵌入式开发中用于自制JTAG的dll文件.34. 黑色经典系列 arm嵌入式系统开发典型模块.35. 51系列的软件包,有i2c驱动,各种芯片的介绍.36. 此程序是在AVR单片机atmega169P处理器的程序.37. 关于手机BOOTLADER相关.38. 华中机床的plc程序.39. 键盘的源码的程序.40. 是北京智心工作室的基于MPC8280设计的核心板使用手册.
标签: 微带天线
上传时间: 2013-06-14
上传用户:eeworm
近年来,随着多媒体技术、计算机网络与通信技术的的快速发展,传统的监控系统也不断向着新的发展方向进行着不断的更新与发展。进而随着嵌入式技术的出现以及人们对降低监控系统成本和提高可靠性的迫切需求,基于嵌入式系统的网络视频监控系统将成为新的研发热点。 本文的目的是把嵌入式技术与计算机网络技术相结合,构造一个性能稳定且具有较强处理能力的数字化远程视频监控系统。该监控系统以嵌入式Linux系统平台作为服务器端,服务器程序在其上以后台方式运行,等待监控系统环境中的客户机使用浏览器向其发送访问请求,实现在局域网乃至Internet网上对摄像头的远程控制。 文中把系统设计分为三大部分:系统硬件设计、嵌入式Linux在硬件平台的实现和系统软件设计。硬件设计部分首先提出了整个硬件系统的实现方案,接着详细介绍了S3C2410处理器与存储器、以太网控制器芯片以及USB和串口的接口电路设计;第二部分详细叙述了嵌入式Linux在本系统硬件平台的移植实现及应用程序的开发特点,重点讲述了本系统平台上Linux的引导加载程序Bootloader的设计过程;系统软件部分首先介绍了USB接口摄像头驱动在嵌入式Linux下的实现,重点讲述了Video4Linux下视频采集的实现,接着论述了如何实现图像的JPEG压缩,最后针对基于B/S模式的网络通信系统结构,详细阐述了网络通信的具体实现过程和方法。 最后在办公室局域网通过对系统测试,显示了系统运行结果,实现了利用局域网或Internet网对远程环境进行监控的功能。
上传时间: 2013-07-04
上传用户:lgnf
永磁同步发电机由于一系列高效节能的优点,在工农业生产、航空航天、国防和日常生活中得到广泛应用,并且受到许多学者的关注,其研究领域主要涉及永磁同步发电机的设计、精确性能分析、控制等方面。 本课题作为国家自然科学基金项目《无刷无励磁机谐波励磁的混合励磁永磁电机的研究》的课题,主要研究永磁电机的电磁场空载和负载计算,求出永磁电机的电压波形和电压调整率,为分段式转子的混合励磁永磁电机的研究奠定基础,主要做了以下工作: 首先介绍了永磁同步发电机的基本原理,包括永磁同步发电机的结构形式和永磁同步发电机的运行性能,采用传统解析理论给出了电压调整率的计算方法及外特性的计算模型;然后用有限元ANSYS对永磁同步发电机样机进行实体建模,经过定义分配材料、划分网格、加边界条件和载荷、求解计算等,得到矢量磁位Az、磁场强度H、磁感应强度B等结果,直观地看出电机内部的磁场分布情况。 其次根据电磁场计算结果,应用齿磁通法对其进行后处理。该方法求解转子在一个齿距内不同位置处的磁场,以定子齿的磁通为计算单位,根据绕组与齿的匝链关系,计算出磁链随时间的变化,进而得到永磁同步发电机空、负载时电压大小及波形。通过计算结果写实验结果对比,验证了齿磁通法的正确性,为计算永磁同步发电机各种性能特性提供有力工具。 最后,基于齿磁通法对永磁同步发电机的外特性进行了深入研究,定量分析了结构参数对外特性的影响规律,提出了有效降低电压调整率的方法的是:增加气隙长度g的同时,适当增加永磁体的磁化方向的长度hm;此外,要尽量的减少每相串联匝数N和增大导线面积以减小阻抗参数。通过改变电机的结构参数,对其电磁场进行计算,找到永磁电机电压调整率的变化规律,为加电励磁的混合励磁永磁电机做准备,达到稳定输出电压的目的。
上传时间: 2013-04-24
上传用户:15853744528