虫虫首页| 资源下载| 资源专辑| 精品软件
登录| 注册

外部<b>存储器</b>

  • ITU-T G.729的一个实现例子(包括附录b的vod检测等功能)

    ·ITU-T G.729的一个实现例子(包括附录b的vod检测等功能)-ITU-T g.729 example, include VOD detect of reference B, etc.文件列表(点击判断是否您需要的文件):   g729b_v14   .........\acelp_co.c   .........\basic_op.c   .....

    标签: ITU-T nbsp 729 vod

    上传时间: 2013-05-20

    上传用户:Garfield

  • 基于MATLAB的B样条小波程序的实现

    · 摘要:  MATLAB是一种建立在向量、数组、矩阵基础上,面向科学和工程计算的高级语言,为科学研究和工程计算提供了一个方便有效的工具.该文简要介绍了B样条和B样条小波的构成,并利用MATLAB语言编写了绘制任意阶B样条和B样条小波图形的程序.  

    标签: MATLAB 程序

    上传时间: 2013-04-24

    上传用户:sqq

  • 苏泊尔C21S02-B电磁炉电路图

    苏泊尔C21S02-B电磁炉电路图,红线标注,重点模块说明!

    标签: 21 02 苏泊尔 电磁炉电路图

    上传时间: 2013-06-22

    上传用户:huangzr5

  • ADS-B接收机DIY全套资料

    制作基于PIC Mcu 的ADS-B接收机的全套资料,包括SCH、PCB、源码和PC端软件。

    标签: ADS-B DIY 接收机

    上传时间: 2013-04-24

    上传用户:cx111111

  • 2012TI杯陕西赛题B题--频率补偿电路

    2012TI杯陕西赛题H题,2012TI杯陕西赛题B题--频率补偿电路.

    标签: 2012 TI 频率补偿电路

    上传时间: 2013-10-07

    上传用户:ysystc670

  • MOTOROLA 8位增强型单片机M68HC11原理与应用

    本书分三部分介绍在美国广泛应用的、高功能的M68HC11系列单片机(8位机 ,Motorola公司)。内容包括M68HC11的结构与其基本原理、开发工具EVB(性能评估板)以及开发和应用技术。本书在介绍单片机硬、软件的基础上,进一步介绍了在美国实验室内,如何应用PC机及EVB来进行开发工作。通过本书的介绍,读者可了解这种单片机的原理并学会开发和应用方法。本书可作为大专院校单片机及其实验的教材(本科、短训班)。亦可供开发、应用单片机的各专业(计算机、机电、化工、纺织、冶金、自控、航空、航海……)有关技术人员参考。 第一部分 M68HC11 结构与原理Motorola单片机 1 Motorla单片机 1.1 概述 1.1.1 Motorola 单片机发展概况(3) 1.1.2 Motorola 单片机结构特点(4) 1.2 M68HC11系列单片机(5) 1.2.1 M68HC11产品系列(5) 1.2.2 MC68HC11E9特性(6) 1.2.3 MC68HC11E9单片机引脚说明(8) 1.3 Motorola 32位单片机(14) 1.3.1中央处理器(CPU32)(15) 1.3.2 定时处理器(TPU)(16) 1.3.3 串行队列模块(QSM)(16) 1.3.4 系统集成模块 (SIM)(16) 1.3.5 RAM(17) 2 系统配置与工作方式 2.1 系统配置(19) 2.1.1 配置寄存器CONFIG(19) 2.1.2 CONFIG寄存器的编程与擦除(20) 2?2 工作方式选择(21) 2.3 M68HC11的工作方式(23) 2.3.1 普通单片工作方式(23) 2.3.2 普通扩展工作方式(23) 2.3.3 特殊自举方式(27) 2.3.4 特殊测试方式(28) 3 中央处理器(CPU)与片上存储器 3.1 CPU寄存器(31) 3?1?1 累加器A、B和双累加器D(32) 3.1.2 变址寄存器X、Y(32) 3.1.3 栈指针SP(32) 3.1.4 程序计数器PC(33) 3.1.5 条件码寄存器CCR(33) 3.2 片上存储器(34) 3.2.1 存储器分布(34) 3.2.2 RAM和INIT寄存器(35) 3.2.3 ROM(37) 3.2.4 EEPROM(37) 3.3 M68HC11 CPU的低功耗方式(39) 3.3.1 WAIT方式(39) 3.3.2 STOP方式(40) 4 复位和中断 4.1 复位(41) 4.1.1 M68HC11的系统初始化条件(41) 4.1.2 复位形式(43) 4.2 中断(48) 4.2.1 条件码寄存器CCR中的中断屏蔽位(48) 4.2.2 中断优先级与中断矢量(49) 4.2.3 非屏蔽中断(52) 4.2.4 实时中断(53) 4.2.5 中断处理过程(56) 5 M68HC11指令系统 5.1 M68HC11寻址方式(59) 5.1.1 立即寻址(IMM)(59) 5.1.2 扩展寻址(EXT)(60) 5.1.3 直接寻址(DIR)(60) 5.1.4 变址寻址(INDX、INDY)(61) 5.1.5 固有寻址(INH)(62) 5.1.6 相对寻址(REL)(62) 5.1.7 前置字节(63) 5.2 M68HC11指令系统(63) 5.2.1 累加器和存储器指令(63) 5.2.2 栈和变址寄存器指令(68) 5.2.3 条件码寄存器指令(69) 5.2.4 程序控制指令(70) 6 输入与输出 6.1 概述(73) 6.2 并行I/O口(74) 6.2.1 并行I/O寄存器(74) 6.2.2 应答I/O子系统(76) 6?3 串行通信接口SCI(82) 6.3.1 基本特性(83) 6.3.2 数据格式(83) 6.3.3 SCI硬件结构(84) 6.3.4 SCI寄存器(86) 6.4 串行外围接口SPI(92) 6.4.1 SPI特性(92) 6.4.2 SPI引脚信号(92) 6.4.3 SPI结构(93) 6.4.4 SPI寄存器(95) 6.4.5 SPI系统与外部设备进行串行数据传输(99) 7 定时器系统与脉冲累加器 7.1 概述(105) 7.2 循环计数器(107) 7.2.1 时钟分频器(107) 7.2.2 计算机正常工作监视功能(110) 7.2.3 定时器标志的清除(110) 7.3 输入捕捉功能(111) 7.3.1 概述(111) 7.3.2 定时器输入捕捉锁存器(TIC1、TIC2、TIC3) 7.3.3 输入信号沿检测逻辑(113) 7.3.4 输入捕捉中断(113) 7.4 输出比较功能(114) 7.4.1 概述(114) 7.4.2 输出比较功能使用的寄存器(116) 7.4.3 输出比较示例(118) 7.5 脉冲累加器(119) 7.5.1 概述(119) 7.5.2 脉冲累加器控制和状态寄存器(121) 8 A/D转换系统 8.1 电荷重新分布技术与逐次逼近算法(125) 8.1.1 基本电路(125) 8.1.2 A/D转换逐次逼近算法原理(130) 8.2 M68HC11中A/D转换的实现方法(131) 8.2.1 逐次逼近A/D转换器(131) 8.2.2 控制寄存器(132) 8.2.3 系统控制逻辑(135)? 9 单片机的内部操作 9.1 用立即>    图书前言   美国Motorola公司从80年代中期开始推出的M68HC11系列单片机是当今功能最强、性能/价格比最好的八位单片微计算机之一。在美国,它已被广泛地应用于教学和各种工业控制系统中。?   该单片机有丰富的I/O功能,完善的系统保护功能和软件控制的节电工作方式 。它的指令系统与早期Motorola单片机MC6801等兼容,同时增加了91条新指令。其中包含16位乘法、除法运算指令等。   为便于用户开发和应用M68HC11单片机,Motorola公司提供了多种开发工具。M68HC11 EVB (Evaluation Board)性能评估板就是一种M68HC11系列单片机的廉价开发工具。它既可用来 调试用户程序,又可在仿真方式下运行。为方便用户,M68HC11 EVB可与IBM?PC连接 ,借助于交叉汇编、通信程序等软件,在IBM?PC上调试程序。?   本书分三部分(共15章)介绍了M68HC11的结构和基本原理、开发工具-EVB及开发应用实例等。第一部分(1~9章),介绍M68HC11的结构和基本原理。包括概述,系统配置与工作方式、CPU和存储器、复位和中断、指令系统、I/O、定时器系统和脉冲累加器、A/D转换系统、单片机的内部操作等。第二部分(10~11章),介绍M68HC11 EVB的原理和技术特性以及EVB的应用。第三部分(12~15章),介绍M68HC11的开发与应用技术。包括基本的编程练习、应用程序设计、接口实验、接口设计及应用等。   读者通过学习本书,不仅可了解M68HC11的硬件、软件,而且可了解使用EVB开发和应用M68HC11单片机的方法。在本书的第三部分专门提供了一部分实验和应用程序。?   本书系作者张宁作为高级访问学者,应邀在美国马萨诸塞州洛厄尔大学(University of Massachusetts Lowell)工作期间完成的。全书由张宁执笔。在编著过程中,美国洛厄尔大学的R·代克曼教授?(Professor Robert J. Dirkman)多次与张宁一起讨论、研究,并提供部分资料及实验数据。参加编写和审校等工作的还有王云霞、孙晓芳、刘安鲁、张籍、来安德、张杨等同志。?   为将M68HC11系列单片机尽快介绍给我国,美国Motorola公司的Terrence M.S.Heng先生曾大力支持本书的编著和出版。在此表示衷心感谢。    

    标签: MOTOROLA M68 68 11

    上传时间: 2013-10-27

    上传用户:rlgl123

  • AVR系列单片机C语言编程与应用实例

    本书针对Atmel公司的AVR系列单片机和ImageCraft公司的ICC AVR开发环境,详细地介绍了AT90LS8535的C语言程序设计。全书共有13章,其内容既涉及到了单片机的结构原理、指令系统、内容资源和外部功能扩展,又包含了单片机的编程工具——ICC AVR C编程器的数据类型、控制流、函数和指针等。本书的特点是:深入浅出,从最基本的概念开始,循序渐进地讲解单片机的应用开发;列举了大量实例,使读者能从实际应用中掌握单片机的开发与应用技术。本书适合作为从事单片机开发人员的参考用书。书中先后讲解了C语言基础、AVR单片机基础,并举了一些简单的实例。本书非常适合初学者。 【目录信息】 第1章 单片机系统概述 1. 1 AVR系列单片机的特点 1. 2 AT90系列单片机简介 第2章 AT90LS8535单片机的基础知识 2. 1 AT90LS8535单片机的总体结构 2. 1. 1 AT90LS8535单片机的中央处理器 2. 1. 2 AT90LS8535单片机的存储器组织 2. 1. 3 AT90LS8535单片机的I/O接口 2. 1. 4 AT90LS8535单片机的内部资源 2. 1. 5 AT90LS8535单片机的时钟电路 2. 1. 6 AT90LS8535单片机的系统复位 2. 1. 7 AT90LS8535单片机的节电方式 2. 1. 8 AT90LS8535单片机的芯片引脚 2. 2 AT90LS8535单片机的指令系统 2. 2. 1 汇编指令格式 2. 2. 2 寻址方式 2. 2. 3 伪指令 2. 2. 4 指令类型及数据操作方式 2. 3 应用程序设计 2. 3. 1 程序设计方法 2. 3. 2 应用程序举例 第3章 AT90LS8535单片机的C编程 3. 1 支持高级语言编程的AVR系列单片机 3. 2 AVR的C编译器 3. 3 ICCAVR介绍 3. 3. 1 安装ICCAVR 3. 3. 2 设置ICCAVR 3. 4 用ICCAVR编写应用程序 3. 5 下载程序文件 第4章 数据类型. 运算符和表达式 4. 1 ICCAVR支持的数据类型 4. 2 常量与变量 4. 2. 1 常量 4. 2. 2 变量 4. 3 AT90LS8535的存储空间 4. 4 算术和赋值运算 4. 4. 1 算术运算符和算术表达式 4. 4. 2 赋值运算符和赋值表达式 4. 5 逻辑运算 4. 6 关系运算 4. 7 位操作 4. 7. 1 位逻辑运算 4. 7. 2 移位运算 4. 8 逗号运算 第5章 控制流 5. 1 C语言的结构化程序设计 5. 1. 1 顺序结构 5. 1. 2 选择结构 5. 1. 3 循环结构 5. 2 选择语句 5. 2. 1 if语句 5. 2. 2 switch分支 5. 2. 3 选择语句的嵌套 5. 3 循环语句 5. 3. 1 while语句 5. 3. 2 do…while语句 5. 3. 3 for语句 5. 3. 4 循环语句嵌套 5. 3. 5 break语句和continue语句 第6章 函数 6. 1 函数的定义 6. 1. 1 函数的定义的一般形式 6. 1. 2 函数的参数 6. 1. 3 函数的值 6. 2 函数的调用 6. 2. 1 函数的一般调用 6. 2. 2 函数的递归调用 6. 2. 3 函数的嵌套调用 6. 3 变量的类型及其存储方式 6. 3. 1 局部变量 6. 3. 2 局部变量的存储方式 6. 3. 3 全局变量 6. 3. 4 全局变量的存储方式 6. 4 内部函数和外部函数 6. 4. 1 内部函数 6. 4. 2 外部函数 第7章 指针 7. 1 指针和指针变量 7. 2 指针变量的定义和引用 7. 2. 1 指针变量的定义 7. 2. 2 指针变量的引用 7. 2. 3 指针变量作为函数参数 7. 3 数组与指针 7. 3. 1 指向数组元素的指针变量 7. 3. 2 数组元素的引用 通过指针 7. 3. 3 数组名作为函数参数 7. 3. 4 指向多维数组的元素的指针变量 7. 4 字符串与指针 7. 4. 1 字符串的表示形式 7. 4. 2 字符串指针变量与字符数组的区别 7. 5 函数与指针 7. 5. 1 函数指针变量 7. 5. 2 指针型函数 7. 6 指向指针的指针 7. 7 有关指针数据类型和运算小结 7. 7. 1 有关指针的数据类型的小结 7. 7. 2 指针运算的小结 第8章 结构体和共用体 8. 1 结构体的定义和引用 8. 1. 1 结构体类型变量的定义 8. 1. 2 结构体类型变量的引用 8. 2 结构类型的说明 8. 3 结构体变量的初始化和赋值 8. 3. 1 结构体变量的初始化 8. 3. 2 结构体变量的赋值 8. 4 结构体数组 8. 4. 1 结构体数组的定义 8. 4. 2 结构体数组的初始化 8. 5 指向结构体类型变量的指针 8. 5. 1 指向结构体变量的指针 8. 5. 2 指向结构体数组的指针 8. 5. 3 指向结构体变量的指针做函数参数 8. 6 共用体 8. 6. 1 共用体的定义 8. 6. 2 共用体变量的引用 第9章 A190LS8535的内部资源 9. 1 I/O 口 9. 1. 1 端口A 9. 1. 2 端口B 9. 1. 3 端口C 9. 1. 4 端口D 9. 1. 5 I/O口的编程 9. 2 中断 9. 2. 1 单片机的中断功能 9. 2. 2 AT90LS8535单片机的中断系统 9. 2. 3 1CCAVRC编译器的中断操作 9. 2. 4 中断的编程 9. 3 串行数据通信 9. 3. 1 数据通信基础 9. 3. 2 AT90LS8535的同步串行接口 9. 3. 3 AT90LS8535的异步串行接口 9. 4 定时/计数器 9. 4. 1 定时/计数器的分频器 9. 4. 2 8位定时/计数器0 9. 4. 3 16位定时/计数器1 9. 4. 4 8位定时/计数器2 9. 5 EEPROM 9. 5. 1 与EEPROM有关的寄存器 9. 5. 2 EEPROM读/写操作 9. 5. 3 EEPROM的应用举例 9. 6 模拟量输入接口 9. 6. 1 模数转换器的结构 9. 6. 2 ADC的使用 9. 6. 3 与模数转换器有关的寄存器 9. 6. 4 ADC的噪声消除 9. 6. 5 ADC的应用举例 9. 7 模拟比较器 9. 7. 1 模拟比较器的结构 9. 7. 2 与模拟比较器有关的寄存器 9. 7. 3 模拟比较器的应用举例 第10章 AT90LS8535的人机接口编程 10. 1 键盘接口 10. 1. 1 非矩阵式键盘 10. 1. 2 矩阵式键盘 10. 2 LED显示输出 10. 2. 1 LED的静态显示 10. 2. 2 LED的动态扫描显示 10. 2. 3 动态扫描显示专用芯片MC14489 10. 3 LCD显示输出 10. 3. 1 字符型LCD 10. 3. 2 点阵型LCD 10. 4 ISD2500系列语音芯片的编程 10. 4. 1 ISD2500的片内结构和引脚 10. 4. 2 ISD2500的操作 10. 4. 3 ISD2500和单片机的接口及编程 10. 5 TP-uP微型打印机 10. 5. 1 TP-uP打印机的接口和逻辑时序 10. 5. 2 P-uP打印机的打印命令和字符代码 10. 5. 3 AT90LS8535与TP-uP系列打印机的接口及编程 10. 6 IC卡 10. 6. 1 IC卡读写装置 10. 6. 2 IC卡软件 第11章 AT90LS8535的外围扩展 11. 1 简单I/O扩展芯片 11. 1. 1 用74LS377扩展数据输出接口 11. 1. 2 数据输入接口 11. 2 模拟量输出 11. 2. 1 D/A转换器简介 11. 2. 2 8位数模转换器DAC0832 11. 2. 3 8位数模转换器与单片机的接口及编程 11. 2. 4 12位数模转换器DACl230 11. 2. 5 12位数模转换器与单片机的接口及编程 11. 3 可编程I/O扩展芯片8255A 11. 3. 1 8255A的引脚和内部结构 11. 3. 2 8255A的工作方式 11. 3. 3 8255A的控制字 11. 3. 4 AT90LS8535和8255A的接口 11. 4 带片内RAM的I/O扩展芯片8155 11. 4. 1 8155的引脚和内部结构. 11. 4. 2 8155的I/O口工作方式 11. 4. 3 8155的定时/计数器 11. 4. 4 8155的命令和状态字 11. 4. 5 AT90LS8535与8155的接口及编程 11. 5 定时/计数器芯片8253 11. 5. 1 8253的信号引脚和逻辑结构 11. 5. 2 8253的工作方式 11. 5. 3 8253的控制字 11. 5. 4 AT90LS8535与8253的接口及编程 11. 6 实时时钟芯片DS1302 11. 6. 1 DS1302的引脚和内部结构 11. 6. 2 DS1302的控制方式 11. 6. 3 AT90LS8535与DS1302的接口与编程 11. 7 数字温度传感器DS18B20 11. 7. 1 DSl8B20的引脚和内部结构 11. 7. 2 DS18B20的温度测量 11. 7. 3 AT90LS8535与DS18B20的接口与编程 第12章 AT90LS8535的通信编程 12. 1 串口通信 12. 1. 1 异步串口UART通信 12. 1. 2 同步串口SPI通信 12. 2 I2C总线 12. 2. 1 I2C总线协议 12. 2. 2 采用AT90LS8535的并行I/O口模拟I2C总线 12. 3 CAN总线 12. 3. 1 CAN总线的特点 12. 3. 2 CAN协议的信息格式 12. 3. 3 CAN控制器SJA1000 12. 3. 4 AT90LS8535与SJA1000的接口及编程 12. 4 AT90LS8535单片机与PC的串行通信 12. 4. 1 基于VC 6. 0的PC串口通信 12. 4. 2 应用实例 第13章 系统设计中的程序处理方法 13. 1 数字滤波处理 13. 1. 1 平滑滤波 13. 1. 2 中值滤波 13. 1. 3 程序判断滤波 13. 2 非线性处理 13. 2. 1 查表法 13. 2. 2 线性插值法

    标签: AVR 单片机 C语言编程 应用实例

    上传时间: 2013-11-04

    上传用户:元宵汉堡包

  • PSHLY-B回路电阻测试仪

    PSHLY-B回路电阻测试仪介绍

    标签: PSHLY-B 回路 电阻测试仪

    上传时间: 2013-11-05

    上传用户:木子叶1

  • 基于单片机的数字化B超键盘设计

    针对目前使用的RS232接口数字化B超键盘存在PC主机启动时不能设置BIOS,提出一种PS2键盘的设计方法。基于W78E052D单片机,采用8通道串行A/D转换器设计了8个TGC电位器信息采集电路,电位器位置信息以键盘扫描码序列形式发送,正交编码器信号通过XC9536XL转换为单片机可接收的中断信号,软件接收到中断信息后等效处理成按键。结果表明,在满足开机可设置BIOS同时,又可实现超声特有功能,不需要专门设计驱动程序,接口简单,成本低。 Abstract:  Aiming at the problem of the digital ultrasonic diagnostic imaging system keyboard with RS232 interface currently used couldn?蒺t set the BIOS when the PC boot, this paper proposed a design method of PS2 keyboards. Based on W78E052D microcontroller,designed eight TGC potentiometers information acquisition circuit with 8-channel serial A/D converter, potentiometer position information sent out with keyboard scan code sequentially.The control circuit based on XC9536 CPLD is used for converting the mechanical actions of the encoders into the signals that can be identified by the MCU, software received interrupt information and equivalently treatmented as key. The results show that the BIOS can be set to meet the boot, ultrasound specific functionality can be achieved at the same time, it does not require specially designed driver,the interface is simple and low cost.    

    标签: 单片机 B超 数字化 键盘设计

    上传时间: 2013-10-10

    上传用户:asdfasdfd

  • at91rm9200启动过程教程

    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。

    标签: 9200 at 91 rm

    上传时间: 2013-10-27

    上传用户:wsf950131