; -------------------------------------------------------------------------------- ; @Title: Flash declaration of Hilscher Semiconductor netX90 internal flash. ; @Description: ; Script arguments: ; [PREPAREONLY] Only declares flash but does not execute flash programming. ; ; @Keywords: ; @Author: mmauser ; @Board: NXHX90-JTAG REV2 ; @Chip: NETX90 ; @Copyright: (C) 1989-2024 Lauterbach GmbH, licensed for use with TRACE32(R) only ; -------------------------------------------------------------------------------- ; $Id: netx90.cmm 13468 2024-05-22 08:51:26Z pegold $ PRIVATE ¶meters ¶m_prepareonly ENTRY %LINE ¶meters ¶m_prepareonly=(STRing.SCAN(STRing.UPpeR("¶meters"),"PREPAREONLY",0)!=-1) PRIVATE &DualPort &DualPortOpt &DualPort=STRing.SCANAndExtract(STRing.UPpeR("¶meters"),"DUALPORT=","0") if "&DualPort"!="0" &DualPortOpt="/DualPort" PRIVATE &ram_start &flashDriverSize &bufferSize PRIVATE &flash0_start &flash1_start &flash2_start &flashsize &pagesize ; ------------------------------------------------------------------------------ ; Setup CPU IF !SYStem.Up() ( RESet SYStem.CPU NETX90-COM SYStem.CONFIG.DEBUGPORTTYPE SWD SYStem.Option.ResBreak OFF SYStem.Option.WaitReset 100ms SYStem.Option.SYSRESETREQ OFF Trace.DISable SYStem.Up ) ;Data.Set 0xFF0016A8 %Long 0x00049F03 ; ------------------------------------------------------------------------------ ; Flash declaration FlashDeclaration: ( &ram_start=0x00020000 &flashDriverSize=0x1100 &bufferSize=0x1000 &flash0_start=0x00100000 &flash1_start=0x00180000 &flash2_start=0x00200000 &flashsize=0x80000 // 512k flash size is the same for all onchip flashes. §orsize=0x1000 // 4k sector size is the same for all onchip flashes. FLASH.RESet FLASH.Create 1. &flash0_start++(&flashsize-1) §orsize TARGET Long FLASH.Create 2. &flash1_start++(&flashsize-1) §orsize TARGET Long FLASH.Create 3. &flash2_start++(&flashsize-1) §orsize TARGET Long FLASH.TARGET &ram_start (&ram_start+&flashDriverSize) &bufferSize ~~/demo/arm/flash/long/netx90v0.bin &DualPortOpt ; Flash script ends here if called with parameter PREPAREONLY IF ¶m_prepareonly ENDDO PREPAREDONE ) ; ------------------------------------------------------------------------------ ; Flash programming DIALOG.YESNO "Program flash memory?" PRIVATE &progflash ENTRY &progflash IF &progflash ( FLASH.Erase.ALL FLASH.ReProgram.ALL Data.LOAD.auto * /Long FLASH.ReProgram.off ; Reset device SYStem.Down SYStem.Up ) ENDDO