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
* 高斯列主元素消去法求解矩阵方程AX=B,其中A是N*N的矩阵,B是N*M矩阵 * 输入: n----方阵A的行数 * a----矩阵A * m----矩阵B的列数 * b----矩阵B * 输出: det----矩阵A的行列式值 * a----A消元后的上三角矩阵 * b----矩阵方程的解X
上传时间: 2015-07-26
上传用户:xauthu
(1) 、用下述两条具体规则和规则形式实现.设大写字母表示魔王语言的词汇 小写字母表示人的语言词汇 希腊字母表示可以用大写字母或小写字母代换的变量.魔王语言可含人的词汇. (2) 、B→tAdA A→sae (3) 、将魔王语言B(ehnxgz)B解释成人的语言.每个字母对应下列的语言.
上传时间: 2013-12-30
上传用户:ayfeixiao
1.有三根杆子A,B,C。A杆上有若干碟子 2.每次移动一块碟子,小的只能叠在大的上面 3.把所有碟子从A杆全部移到C杆上 经过研究发现,汉诺塔的破解很简单,就是按照移动规则向一个方向移动金片: 如3阶汉诺塔的移动:A→C,A→B,C→B,A→C,B→A,B→C,A→C 此外,汉诺塔问题也是程序设计中的经典递归问题
上传时间: 2016-07-25
上传用户:gxrui1991
javascript语言的参考手册,在编写JavaScript程序的时候可以参考这个手册
标签: javascript 语言 参考手册
上传时间: 2014-01-14
上传用户:wuyuying
上海移远的EC600S的中文参考手册,硬件设计手册,版本V1.0
标签: ec600s
上传时间: 2021-11-15
上传用户:ttalli
AR0231AT7C00XUEA0-DRBR(RGB滤光)安森美半导体推出采用突破性减少LED闪烁 (LFM)技术的新的230万像素CMOS图像传感器样品AR0231AT,为汽车先进驾驶辅助系统(ADAS)应用确立了一个新基准。新器件能捕获1080p高动态范围(HDR)视频,还具备支持汽车安全完整性等级B(ASIL B)的特性。LFM技术(专利申请中)消除交通信号灯和汽车LED照明的高频LED闪烁,令交通信号阅读算法能于所有光照条件下工作。AR0231AT具有1/2.7英寸(6.82 mm)光学格式和1928(水平) x 1208(垂直)有源像素阵列。它采用最新的3.0微米背照式(BSI)像素及安森美半导体的DR-Pix™技术,提供双转换增益以在所有光照条件下提升性能。它以线性、HDR或LFM模式捕获图像,并提供模式间的帧到帧情境切换。 AR0231AT提供达4重曝光的HDR,以出色的噪声性能捕获超过120dB的动态范围。AR0231AT能同步支持多个摄相机,以易于在汽车应用中实现多个传感器节点,和通过一个简单的双线串行接口实现用户可编程性。它还有多个数据接口,包括MIPI(移动产业处理器接口)、并行和HiSPi(高速串行像素接口)。其它关键特性还包括可选自动化或用户控制的黑电平控制,支持扩频时钟输入和提供多色滤波阵列选择。封装和现状:AR0231AT采用11 mm x 10 mm iBGA-121封装,现提供工程样品。工作温度范围为-40℃至105℃(环境温度),将完全通过AEC-Q100认证。
标签: 图像传感器
上传时间: 2022-06-27
上传用户:XuVshu
《电子技术基础(数字部分)》是根据国家教育部最新制定的《高职、高专教育数字电子技术基础课程教学基本要求》,结合多年教学改革与实践的基础进行编写的。《电子技术基础(数字部分)》着重物理概念和基本原理的阐述,避免繁琐的理论推导。在文字上,力求通俗易懂,便于自学。在内容上删减了陈旧的、冗余的内容,减少内部电路分析,理论联系实际,突出工程应用;增加中、大规模集成电路内容并适当介绍可编程逻辑器件PLD。 全书共八章,包括数字逻辑基础、逻辑门电路、组合逻辑电路、集成触发器、时序逻辑电路、脉冲波形的产生与整形、A/D及D/A转换器、大规模集成电路等内容,并有与内容配合的思考题和习题。 《电子技术基础(数字部分)》可作为全国招收初中五年制高职和中等专业学校工科电工类专业的教材,也可供相近专业的师生和工业技术人员参考。
上传时间: 2013-04-24
上传用户:brucewan
自20世纪90年代以来,随着计算机技术、超大规模集成电路技术和通信及网络技术的发展,微机保护和测控装置的性能得到大幅提升,以此为基础的变电站自动化系统在我国的电力系统中得到长足的发展和广泛的应用。 @@ 为增加产品的市场竞争力,电力系统二次设备生产厂商紧跟市场需求,将各种具有高性价比的新型处理器芯片和外围芯片大量应用到变电站自动化系统的保护、测控装置上,如32位CPU、数字信号处理芯片DSP、高速高精度A/D转换芯片、大容量Flash存储芯片、可编程逻辑器件CPLD、FPGA等。这些功能强大的器件的应用使保护测控装置在外形上趋于小型化集成化,而在功能上则较以前有显著提升。同时,各种成熟的商用嵌入式实时操作系统的采用使处理器的性能得到充分发挥,装置通信、数据存储及处理能力更强,性能大幅提高,程序移植升级更加方便快捷。 @@ 本论文以现阶段国内外变电站自动化系统测控技术为参考,根据变电站自动化系统的发展趋势和要求,研究一种基于ARM和FPGA技术并采用嵌入式实时操作系统的高性能测控装置,并给出硬软件设计。 @@ 装置硬件采用模块化设计,按照测控装置基本功能设计插件板。分为主CPU插件、交流采样插件、遥信采集插件、遥控出口插件、直流采样及输出插件。除主CPU插件,其他插件的数量可以根据需要任意增减,满足不同用户的需求。 @@ 装置主CPU采用目前先进的基于ARM技术的微处理器AT91RM9200,通过数据、地址总线和其他插件板连接,构成装置的整个系统。交流采样插件采用FPGA技术,利用ALTERA公司的FPGA芯片EP1K10实现交流采样的控制,降低了CPU的负担。 @@ 软件采用Vxworks嵌入式实时操作系统,增加了系统的性能。以任务来管理不同的软件功能模块,利于装置软件的并行开发和维护。 @@关键词:测控装置;嵌入式实时操作系统;ARM;现场可编程门阵列
上传时间: 2013-04-24
上传用户:JESS
目前国内井下水泵电机多数采用传统的人工进行控制,即人工加继电器进行控制的方法。这种方法控制线路复杂,设备运行的自动化程度低,可靠性差,工人劳动强度大,应急能力差等缺点。针对当前国家对煤矿企业安全生产要求的不断提高和企业自身发展所遇到的实际问题,研制了基于ARM的煤矿井下水泵电机网络监控系统,不仅可以完成水位检测、轴温检测、流量检测、水泵起动、停止及其过程控制,而且还可以进行数据传输、处理等工作。它具有以下特点:水位实时在线检测与显示;水泵启动与停止控制;多台水泵实时“轮班工作制”;根据涌水量大小和用电“避峰就谷”原则,控制投入运行的水泵台数;与监控中心联网,实行集中控制。 本文所设计的监控系统由监控中心、监控终端和远程访问三部分组成,分别介绍了监控系统的硬件设计、电机保护算法设计、系统通讯网络的设计和监控系统软件的设计。 监控系统的硬件设计主要针对监控终端的硬件设计,它采用S3C440X作为监控终端的处理芯片。根据监测的主要参数如水泵电机电流、电压、水泵开停状态、电机温度、井底水仓水位、水泵出口流量的实际特点,通过ARM芯片的快速处理运算能力,实时计算出水泵的三相有功功率和无功功率、功率因数等参量,井底水仓的水位和水泵出水口的流量、水泵的三相电压和电流准确值。把处理运算的结果通过以太网传到监控中心进行存储、显示和打印,同时监控中心根据传上来的结果进行判断,然后根据判断的情况确定是否需要给监控终端发送控制命令。 电机保护算法设计方面,主要针对系统数据采集的特点,对相电流、相电压进行交流信号采样。对采样后的数据运用快速傅立叶变换(FFT)进行数值计算,获得了高精度的测量。 系统通讯网络的设计主要针对系统两层通讯网络的协议进行分析与设计。监控中心软件采用基于Basic的可视化的程序设计语言Visual Basic6.0进行开发。客户端利用计算机网络技术,使用B/S模式远程实现对系统运行数据的传输,以便可以查询实时数据和历史数据,实现资源共享。
上传时间: 2013-06-25
上传用户:q123321