首 页 用户登录 | ![]() |
|||
|
|||
按字母检索 | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z |
按声母检索 | A | B | C | D | E | F | G | H | J | K | L | M | N | O | P | Q | R | S | T | W | X | Y | Z | 数字 | 符号 |
|
![]() |
您的位置: 5VAR论文频道 → 论文中心 → 理工论文 → 电子通信 |
|
|||||
在MPC555中实现从RAM的快速引导 | |||||
收集整理:佚名 来源:本站整理 时间:2009-01-10 22:39:32 点击数:[] ![]() |
|||||
4 # /* BR2=0x0400003 RAM基址 0X400000 32位口大小 */ lis r5 0x40 ori r5 r5 0x0003 lis r4 BR2@ha stw r5 BR2@lr4 # /* 拷贝内部Flash 到外部RAM */ li r60x0 lis r40x40 ori r4r40x0000 lis r50xfff0 ori r5r50x0 loop 1 lhzx r7r6r5 sthx r7r6r4 addi r6r60x2 li r80xb00 cmp r6r8 bne loop 1 # /* 使CS2的片选区无效 */ # /* BR2=0x0400003 基本寄存器2 */ lis r5 0xfff0 ori r5 r5 0x0000 lis r4 BR2@ha stw r5 BR2@lr4 # /* 双重映射使能 */ # /* DMOR=0xFFF00000 片选双重映射区 大小 256k */ lis r5 0x7000 ori r5 r5 0x0000 lis r4 OR2@ha stw r5 OR2@lr4 # /* DMBR=0x0400003 双重映射区基址 0X0 32位口大小 */ lis r5 0x0 ori r5 r5 0x0005 lis r4 BR2@ha stw r5 BR2@lr4 ba INT Initialize … 3.2 复制法 对于与MPC500同系列中的MPC561和MPC562等芯片,由于微处理器内部没有ROM,所以必须外扩ROM。在这种情况下,可以把程序烧录到外部ROM,然后在上电时再把程序从外部ROM拷贝到外部RAM中,从而使程序能够在外部RAM中运行。以MPC555为例的流程图如图2所示。 在这种方法中,程序仅在重新配置存储区前运行在外部ROM,而在重新配置存储区后运行在外部RAM中,因此提高了程序的运行速度。该方法在操作时,首先把程序用仿真器烧录到外部FALSH,入口地址为0xfff00000,然后脱机运行。本例中,外部FLASH是16位总线,外部RAM是32位总线。下面以MPC555为例给出具体程序代码。 INT Vectors /* 系统复位 */ .skip 0x0100-.-INT Vectors start # /* 设置RAM 和 ROM 存储区 */ # /*OR2=0xFFF00000片选RAM 大小 1M*/ lis r5 0xfff0 ori r5 r5 0x0000 lis r4 OR2@ha stw r5 OR2@lr4 # /* BR2=0x0400003 RAM基址 0X400000 32位口大小 */ lis r5 0x40 ori r5 r5 0x0003 lis r4 BR2@ha stw r5 BR2@lr4 # /*OR0=0Xfff80000片选FLASH 大小 512k*/ lis r5 0xfff8 ori r5 r5 0x0000 lis r4 OR2@ha stw r5 OR2@lr4 # /* BR0=0xfff00803 RAM基址 0Xfff00000 16位口大小 */ lis r5 0xfff0 ori r5 r5 0x0803 lis r4 BR2@ha stw r5 BR2@lr4 # /* 拷贝外部Flash到外部RAM */ li r60x0 lis r40x40 ori r4r40x0000 lis r50xfff0 ori r5r50x0 loop 1 lhzx r7r6r5 sthx r7r6r4 addi r6r60x2 li r80xb00 cmp r6r8 bne loop_1 # /* 重新分配存储区 */ # /* BR0=0x600803 */ lis r5 0x60 ori r5 r5 0x0803 lis r4 BR0@ha stw r5 BR0@lr4 # /* OR0=0xFFf80000 片选flash 512k 1个时钟等周期 */ lis r5 0xfff8 ori r5 r5 0x0003 lis r4 OR0@ha stw r5 OR0@lr4 # /* OR2=0xFFF00000 片选RAM 1M */ lis r5 0xfff0 ori r5 r5 0x0000 lis r4 OR2@ha stw r5 OR2@lr4 # /* BR2=0xfff00003 基址 0Xfff00000 32位口大小 */ lis r5 0xfff0 ori r5 r5 0x0003 lis r4 BR2@ha stw r5 BR2@lr4 ba INT_Initialize … 4 结束语 笔者对文中所介绍的以MPC555为例对从RAM快速引导运行的两种实现方法进行了测试对比。结果证明:程序在RAM中的运行速度比在FLASH中提高了1倍多,因而程序运行速度得到了很大提高。 |
提供人:佚名 | |
【返回上一页】【打 印】【关闭窗口】 |
![]() |
5VAR论文频道 |
![]() |
5VAR论文频道 |
![]() |
关于本站 -
网站帮助 -
广告合作 -
下载声明 -
网站地图
Copyright © 2006-2033 5Var.Com. All Rights Reserved . |