; -------------------------------------------------------------------------------- ; @Title: Flash declaration for ABOV A34M420 family internal flash ; @Description: ; Script arguments: ; ; DO mspm0 [PREPAREONLY] [CPU=] [DUALPORT=<0|1>] ; PREPAREONLY only declares flash but does not execute flash programming ; CPU= selects CPU derivative ; DUALPORT=<0|1> use dual port memory access, default 0 ; Example: ; DO ~~/demo/arm/flash/a34m420 PREPAREONLY ; ; List of A34M420 derivatives and their configuration: ; CPU-Type Code Flash Data Flash RamSize ; [KB] [KB] [KB] ; A34M420RL 1024 32 64 ; A34M420YL 1024 32 64 ; A34M420VL 1024 32 64 ; ; @Chip: A34M420* ; @Author: NEZ ; @Copyright: (C) 1989-2023 Lauterbach GmbH, licensed for use with TRACE32(R) only ; -------------------------------------------------------------------------------- ; $Rev: 13291 $ ; $Id: a34m420.cmm 13291 2024-04-03 11:05:25Z nzouari $ PRIVATE ¶meters ENTRY %LINE ¶meters PRIVATE ¶m_prepareonly ¶m_cpu ¶m_dualport ¶meters=STRing.UPpeR("¶meters") ¶m_prepareonly=(STRing.SCAN("¶meters","PREPAREONLY",0)!=-1) ¶m_cpu=STRing.SCANAndExtract("¶meters","CPU=","") ¶m_dualport=STRing.SCANAndExtract("¶meters","DUALPORT=","0") ; -------------------------------------------------------------------------------- ; Initialize and start the debugger IF !SYStem.Up() ( SYStem.RESet IF "¶m_cpu"!="" SYStem.CPU ¶m_cpu IF !CPUIS(A34M420*) SYStem.CPU A34M420VL SYStem.Option ResBreak OFF SYStem.Option WaitReset 100.MS SYStem.Up ) ; -------------------------------------------------------------------------------- ; Flash declaration FLASH.RESet GOSUB FlashDeclaration "¶m_dualport" ; Flash script ends here if called with parameter PREPAREONLY IF ¶m_prepareonly ENDDO PREPAREDONE ; -------------------------------------------------------------------------------- ; Flash programming example DIALOG.YESNO "Program flash memory?" PRIVATE &progflash ENTRY &progflash IF &progflash ( FLASH.ReProgram ALL /Erase Data.LOAD.auto * FLASH.ReProgram OFF ; Reset device SYStem.Down SYStem.Up ) ENDDO ; -------------------------------------------------------------------------------- ; SUBROUTINES ; -------------------------------------------------------------------------------- ; Flash declaration depending on selected CPU FlashDeclaration: ;(param_dualport) ( PARAMETERS ¶m_dualport PRIVATE &CodeFlashSize &DataFlashSize &SectorSize &RamSize &FlashBin &FlashBin="a34m420.bin" &CodeFlashSize=0x100000 &DataFlashSize=0x8000 &SectorSize=0x800 &RamSize=0x10000 FLASH.Create 1. 0x00000000++(&CodeFlashSize-1) &SectorSize TARGET Long /INFO "Code FLASH" FLASH.Create 2. 0x0E000000++(&DataFlashSize-1) &SectorSize TARGET Long /INFO "Data FLASH" IF ("¶m_dualport"!="0") ( PRINT %WARNING "Target RAM too small! Dual port mode not supported" ¶m_dualport="0" ) IF ("¶m_dualport"=="0") FLASH.TARGET 0x20000000++0x1FFF 0x20002000++0x1FFF ~~/demo/arm/flash/long/&FlashBin ELSE FLASH.TARGET E:0x20000000++0x1FFF 0x20001000++0x1FFF ~~/demo/arm/flash/long/&FlashBin /DualPort RETURN )