⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mpc551x.cmm

📁 mpc55**系列芯片的例程 包括SCI,SPI,TIMER,FIT,EDMA等几乎所有功能的实现
💻 CMM
字号:
;
; Example script for programming of MPC551x internal flash.
;
; Internal Flash Memory 1.0 MByte:
;   Low address range   256 kByte (8x 16kByte, 2x 64 kByte)
;                       0x00000000--0x0003ffff
;   Mid address range   256 kByte (2 * 128 kByte)
;                       0x00040000--0x0007ffff
;   High address range  512 kByte (4 * 128 kByte)
;                       0x00080000--0x000fffff
;   Shadow row          32 kByte
;                       0x00ff8000--0x00ffffff
; 
; Internal SRAM         48 kByte
;                       0x40000000--0x4000bfff 
;
; Flash register base address is 0xc3f88000
;
; Flash algorithm may depend on processor revision:
;   MPC551x all revisions       h7fb5510_v323.bin or higher
;
;   h7fb5510.bin contains latest version of flash algorithm.
;
; NOTES:
; 
;   Flash register base address has to be 0xffff8000, because target
;   program does currently not support another base address.
;
; wrd - 26.02.2007
;

&flashbase=0x00000000
&shadowbase=0x00ff8000
&rambase=0x40000000
&flashdriver="tbd.bin"
&flashsize=0x000100000

; Optimize flash programming time by switching on PLL
; Check thar the PLL setup is matching your target before 
; enabling this option
&optimize=0

;========================================================================
; CPU setup

SYStem.RESet
SYStem.BdmClock 4.0MHz
SYStem.CPU MPC5516
SYStem.Up

if &optimize==1
(
  ; setup PLL
  Data.Set A:0xFFFE89A0 %LONG 0y00XXxxxxXXXXxxxxXXXXxxxxXXXXxxxx
  Data.Set A:0xFFFF0008 %LONG 0xF0020080
  Data.Set A:0xFFFF000C %LONG 0x00000007
  WAIT 100.ms
  Data.Set A:0xFFFF000C %LONG 0x00000005
  Data.Set A:0xFFFE89A0 %LONG 0y00XXxxxxXXXXxxxxXXXXxxxxXXXXxxxx

  ; set JTAG clock to 25 MHz
  SYStem.BdmClock 25MHz
)

; initialize internal SRAM
Data.Set EA:0x40000000--0x4000bfff %quad 0

; setup MMU for flash, RAM and register access
MMU.TLB1.SET 0x1 0xC0000500 0xFFF0000A 0xFFF0003F
MMU.TLB1.SET 0x2 0xC0000400 0x40000008 0x4000003F
MMU.TLB1.SET 0x3 0xC0000700 0x00000000 0x0000003F

;========================================================================
; Check SIU_MIDR register to select flash driver depending on processor 
; revision
&flashdriver="~~/demo/powerpc/flash/quad/h7fb5510.bin"

;========================================================================
; Flash declaration

FLASH.RESet

FLASH.Create 1. (&flashbase+0x00000000)++0x03fff TARGET Quad 0. ; L0
FLASH.Create 1. (&flashbase+0x00004000)++0x03fff TARGET Quad 1. ; L1
FLASH.Create 1. (&flashbase+0x00008000)++0x03fff TARGET Quad 2. ; L2
FLASH.Create 1. (&flashbase+0x0000C000)++0x03fff TARGET Quad 3. ; L3
FLASH.Create 1. (&flashbase+0x00010000)++0x03fff TARGET Quad 4. ; L4
FLASH.Create 1. (&flashbase+0x00014000)++0x03fff TARGET Quad 5. ; L5
FLASH.Create 1. (&flashbase+0x00018000)++0x03fff TARGET Quad 6. ; L6
FLASH.Create 1. (&flashbase+0x0001C000)++0x03fff TARGET Quad 7. ; L7
FLASH.Create 1. (&flashbase+0x00020000)++0x0ffff TARGET Quad 8. ; L8
FLASH.Create 1. (&flashbase+0x00030000)++0x0ffff TARGET Quad 9. ; L9
FLASH.Create 2. (&flashbase+0x00040000)++0x1ffff TARGET Quad 0. ; M0
FLASH.Create 2. (&flashbase+0x00060000)++0x1ffff TARGET Quad 1. ; M1
&flashaddr=&flashbase+0x00080000
&Hx=0.
while &flashaddr<(&flashbase+0x000100000)
(
  FLASH.Create 3. &flashaddr++0x1ffff TARGET Quad &Hx ; H0..H3
  &flashaddr=&flashaddr+0x20000
  &Hx=&Hx+1.
)
; Shadow row
FLASH.Create 4. (&shadowbase+0x00000000)++0x7fff NOP Quad

FLASH.TARGET E:&rambase E:&rambase+0x2000 0x1000 &flashdriver

;========================================================================
; Flash programming example
;
; Flash programming speed is about three times faster when memory class E:
; is used for data buffer (DUALPORT memory access). For DUALPORT access it
; is required to setup MemAccess NEXUS for both, NEXUS and JTAG debugger. 

DIALOG.YESNO "Program flash memory?"
entry &progflash

if &progflash 
(
  FLASH.Auto ALL
  ; optional set unused flash memory to 0xFF 
  ;Data.Set E:0x00--(&flashsize-1) %Quad 0xFFFFFFFFFFFFFFFF
  Data.LOAD * E:0x00--(&flashsize-1)
  FLASH.Auto OFF
)

;set JTAG clock back to default
SYStem.BdmClock 4MHz

ENDDO


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -