135 lines
3.6 KiB
Plaintext
135 lines
3.6 KiB
Plaintext
; --------------------------------------------------------------------------------
|
|
; @Title: Example for flash declaration of Toshiba TMPM37x internal flash.
|
|
;
|
|
; @Description:
|
|
; Script arguments:
|
|
;
|
|
; DO tmpm37x [PREPAREONLY]
|
|
;
|
|
; PREPAREONLY only declares flash but does not execute flash programming
|
|
;
|
|
; Example:
|
|
;
|
|
; DO ~~/demo/arm/flash/tmpm37x PREPAREONLY
|
|
;
|
|
; List of TMPM37x derivatives and their configuration:
|
|
;
|
|
; CPU-Type Flash size SRAM size Page size
|
|
; [Byte] [Byte] [Byte]
|
|
; --------------------------------------------------------------------------------
|
|
; TMPM370FY 0x40000 0x2800 0x100
|
|
; TMPM372FW 0x20000 0x1800
|
|
; TMPM373FW 0x20000 0x1800
|
|
; TMPM374FW 0x20000 0x1800
|
|
;
|
|
; The internal flash is located at 0x00000000 (User boot mode)
|
|
; or 0x3F800000 (Single boot mode)
|
|
; The internal RAM is located at 0x20000000
|
|
; The BOOTROM is located at 0x00000000 (Single boot mode)
|
|
;
|
|
; @Author: WRD
|
|
; @Copyright: (C) 1989-2022 Lauterbach GmbH, licensed for use with TRACE32(R) only
|
|
; @Chip: TMPM37*
|
|
; --------------------------------------------------------------------------------
|
|
; $Rev: 12049 $
|
|
; $Id: tmpm37x.cmm 12049 2023-04-20 12:32:16Z bschroefel $
|
|
|
|
LOCAL ¶meters
|
|
ENTRY %LINE ¶meters
|
|
|
|
LOCAL ¶m_prepareonly
|
|
¶m_prepareonly=(STRing.SCAN(STRing.UPpeR("¶meters"),"PREPAREONLY",0)!=-1)
|
|
|
|
LOCAL &flashbase
|
|
LOCAL &flashsize
|
|
LOCAL &RAMsize
|
|
|
|
; ------------------------------------------------------------------------------
|
|
; Setup CPU
|
|
|
|
IF SYStem.MODE()<5
|
|
(
|
|
SYStem.RESet
|
|
SYStem.CPU TMPM370FY
|
|
SYStem.Option EnReset OFF
|
|
SYStem.Up
|
|
)
|
|
|
|
; Disable watchdog
|
|
Data.Set 0x40040000 %Long 0x00000000 ; disable timer
|
|
Data.Set 0x40040004 %Long 0x000000B1 ; write key
|
|
|
|
; Setup flash base address depending on boot mode
|
|
&flashbase=0x00000000
|
|
|
|
; ------------------------------------------------------------------------------
|
|
; Setup flash configuration depending on selected CPU.
|
|
|
|
IF ((SYStem.CPU()=="TMPM370FY"))
|
|
(
|
|
&flashsize=0x40000
|
|
&RAMsize=0x2800
|
|
)
|
|
ELSE IF ((SYStem.CPU()=="TMPM372FW")||(SYStem.CPU()=="TMPM373FW")||(SYStem.CPU()=="TMPM374FW"))
|
|
(
|
|
&flashsize=0x20000
|
|
&RAMsize=0x1800
|
|
)
|
|
ELSE
|
|
(
|
|
PRINT %ERROR "FLASH size of CPU type is unknown"
|
|
ENDDO
|
|
)
|
|
|
|
; --------------------------------------------------------------------------------
|
|
; Flash declaration
|
|
|
|
FLASH.RESet
|
|
|
|
IF &flashsize>=0x20000
|
|
(
|
|
FLASH.Create 1. (&flashbase+0x00000)++0x07fff 0x04000 TARGET Long
|
|
FLASH.Create 1. (&flashbase+0x08000)++0x07fff 0x08000 TARGET Long
|
|
FLASH.Create 1. (&flashbase+0x10000)++0x0ffff 0x10000 TARGET Long
|
|
)
|
|
IF &flashsize>=0x40000
|
|
(
|
|
FLASH.Create 1. (&flashbase+0x20000)++0x1ffff 0x10000 TARGET Long
|
|
)
|
|
|
|
IF &RAMsize>=0x2800
|
|
(
|
|
FLASH.TARGET 0x20000400 0x20000800 0x1c00 ~~/demo/arm/flash/long/tmpm370.bin
|
|
)
|
|
ELSE IF &RAMsize>=0x1800
|
|
(
|
|
FLASH.TARGET 0x20000400 0x20000800 0x0c00 ~~/demo/arm/flash/long/tmpm370.bin
|
|
)
|
|
ELSE
|
|
(
|
|
PRINT %ERROR "RAM size is not supported by the script"
|
|
ENDDO
|
|
)
|
|
|
|
; Flash script ends here if called with parameter PREPAREONLY
|
|
IF ¶m_prepareonly
|
|
ENDDO PREPAREDONE
|
|
; ------------------------------------------------------------------------------
|
|
; Flash programming example
|
|
|
|
DIALOG.YESNO "Program flash memory?"
|
|
LOCAL &progflash
|
|
ENTRY &progflash
|
|
IF &progflash
|
|
(
|
|
FLASH.ReProgram.ALL /Erase
|
|
Data.LOAD.auto *
|
|
FLASH.ReProgram.off
|
|
|
|
; Reset device
|
|
SYStem.Down
|
|
SYStem.Up
|
|
)
|
|
|
|
ENDDO
|