Files
2025-10-14 09:52:32 +09:00

111 lines
3.2 KiB
Plaintext

; --------------------------------------------------------------------------------
; @Title: Example for flash declaration for Scaleo easyCAN4 F1M-32 internal flash
;
; @Description:
; Script arguments:
;
; DO easycan4 [PREPAREONLY]
;
; PREPAREONLY only declares flash but does not execute flash
; programming example
;
; Memory ranges (reset values):
;
; 1 MByte code flash at 0x00000000--0x000fffff
; 32 kByte data flash at 0x80000000--0x8003ffff
; 32 kByte internal RAM at 0x00300000--0x00307fff
;
; @Author: WRD
; @Copyright: (C) 1989-2022 Lauterbach GmbH, licensed for use with TRACE32(R) only
; @Chip: EASYCAN4
; --------------------------------------------------------------------------------
; $Rev: 10516 $
; $Id: easycan4.cmm 10516 2022-02-02 11:39:30Z bschroefel $
LOCAL &parameters &param_prepareonly
ENTRY %LINE &parameters
&param_prepareonly=(STRing.SCAN(STRing.UPpeR("&parameters"),"PREPAREONLY",0)!=-1)
LOCAL &ifcbase &dfcbase &rambase
; --------------------------------------------------------------------------------
; CPU setup
IF SYStem.MODE()<5
(
SYStem.RESet
SYStem.CPU EASYCAN4
SYStem.JtagClock 3Mhz
SYStem.Up
)
; Disable Watchdog
//DATA.SET SD:0xFFE14050 %LE %LONG 0x80000000
//DATA.SET SD:0xFFE14060 %LE %LONG 0x0000C071
//DATA.SET SD:0xFFE14068 %LE %LONG 0x00002340
; --------------------------------------------------------------------------------
; Flash declaration
FLASH.RESet
&ifcbase=Data.Long(SD:0xffe04064)&0xff000000
&dfcbase=Data.Long(SD:0xffe00064)&0xff000000
&rambase=Data.Long(SD:0xffff0000)&0xfff00000
; Program flash
FLASH.Create 1. (&ifcbase+0x000000)--(&ifcbase+0x0fffff) 0x4000 TARGET Long 0xffe04000
; Data flash
FLASH.Create 2. (&dfcbase+0x000000)--(&dfcbase+0x001fff) 0x100 TARGET Byte 0xffe00000 ; Sector 0
FLASH.Create 3. (&dfcbase+0x002000)--(&dfcbase+0x003fff) 0x100 TARGET Byte 0xffe00000 ; Sector 1
FLASH.Create 4. (&dfcbase+0x004000)--(&dfcbase+0x005fff) 0x100 TARGET Byte 0xffe00000 ; Sector 2
FLASH.Create 5. (&dfcbase+0x006000)--(&dfcbase+0x007fff) 0x100 TARGET Byte 0xffe00000 ; Sector 3
FLASH.TARGET &rambase+0x1000 &rambase+0x2000 0x1000 ~~/demo/arm/flash/byte/easycan.bin
; --------------------------------------------------------------------------------
; Flash programming example
; Flash script ends here if called with parameter PREPAREONLY
IF &param_prepareonly
ENDDO PREPAREDONE
DIALOG.YESNO "Program IFC flash memory?"
LOCAL &progflash
ENTRY &progflash
IF &progflash
(
FLASH.ReProgram 1. /Erase
Data.LOAD.auto *
FLASH.ReProgram.off
)
DIALOG.YESNO "Program DFC data flash memory?"
LOCAL &progflash
ENTRY &progflash
IF &progflash
(
LOCAL &dfc &mr
; Enable and activate DFC
&dfc=Data.Long(SD:0xFFE00058)&0x02
Data.Set 0xFFE00050 %Long 0x02
&mr=Data.Long(SD:0xFFE00064)
Data.Set 0xFFE00064 %Long (Data.Long(SD:0xFFE00064)|0x7800)&~0x10
; Program data flash memory
FLASH.AUTO 2.
FLASH.AUTO 3.
FLASH.AUTO 4.
FLASH.AUTO 5.
Data.LOAD.auto *
FLASH.AUTO.off
; Restore DFC configuration
Data.Set 0xFFE00064 %Long &mr|0x7800
IF &dfc==0x0
Data.Set 0xFFE00054 %Long 0x02
)
ENDDO