; -------------------------------------------------------------------------------- ; Initialization part, use AMP using Combiprobe with two DebugCables BOTH RESet BOTH SYStem.RESet BOTH SYStem.CPU STM32L151VB WHISKER1 SYStem.CONFIG.DEBUGPORT DebugCableA WHISKER1 SYStem.CONFIG.CORE 1. 1. WHISKER2 SYStem.CONFIG.DEBUGPORT DebugCableB WHISKER2 SYStem.CONFIG.CORE 1. 2. BOTH SYStem.CONFIG CONNECTOR MIPI20T BOTH SYStem.CONFIG SLAVE OFF BOTH SYStem.CONFIG SWDP ON BOTH System.JtagClock 2MHz BOTH SYStem.Option IMASKASM ON BOTH SYStem.Option IMASKHLL ON ; connect to BOTH targets, load code, preboot code till 'main' BOTH SYStem.Up ;Load debug files WHISKER1 Data.LOAD.auto ../Output/CPU1_Flash_mBL/H_CPU1.axf /VM /NoCode WHISKER2 Data.LOAD.auto ../Output/CPU2_Flash_mBL/H_CPU2.axf /VM /NoCode BOTH WAIT 200ms ; connect to target at WHISKER1, load code, preboot code till 'main' WHISKER1 Go main WHISKER1 WAIT !RUN() ; connect to target at WHISKER2, load code, preboot code till 'main' WHISKER2 Go main WHISKER2 WAIT !RUN() BOTH WinCLEAR ; optional Trace Setup, assume in the REAL example all PinMuxes are already configured by the ; target software. ; optional trace setup on WHISKER1 IF TRUE() ( ; set pinmux ; Prevent error during power saving states and stop peripherals in debug mode ; HERE: Normaly "RCC_AHBENR: IO port E clock enable" should be enabled. This should already be done by FW WHISKER1 Data.Set E:0x4002381C %Long 0yXXXXxxxxXXXXxxxxXXXXxxxxXXX1xxxx ; enable GPIOE Clock WHISKER1 Data.Set E:0x40021000 0x00002AA0 ; GPIOE_MODER: PE2..PE6 = Alternate function mode WHISKER1 Data.Set E:0x40021008 0x00002AA0 ; GPIOx_OSPEEDR: PE2..PE6 = 10 MHz Medium speed WHISKER1 Data.Set E:0x4002100C 0x00001550 ; GPIOE_PUPDR: PE2..PE6 = Pull-up WHISKER1 Data.Set E:0x40021020 0x00000000 ; GPIOE_AFRL: PE2..PE6 = AF0 ;DWT Control WHISKER1 Data.Set E:0xE0001000 0x4005061F ; configure dwt : as in keil debugger ;enable ETM TRACE on Stm32L151 WHISKER1 Data.Set E:0xE0041FB0 0xC5ACCE55 ; unlock trace control registers WHISKER1 Data.Set E:0xE0041000 0x00000910 ;1D1E ; configure trace - write 0x1D1E to ETM Control Register WHISKER1 Data.Set E:0xE0041008 0x000077FF ;406F ; configure trace - write 0x406F to trigger event register WHISKER1 Data.Set E:0xE0041020 0x0000006F ; configure trace - write 0x6F to ETM Trace Enable Event //WHISKER1 Data.Set E:0xE0041024 0x00000001 ; configure trace - Enable Trace - write 0x01 to ETM Start/Stop register ;enable ITM Trace & DBGMCU:CR WHISKER1 Data.Set E:0xE0042004 0x000000E7 ; DBGMCU_CR WHISKER1 Data.Set E:0xE0000FB0 0xC5ACCE55 ; unlock itm regs WHISKER1 Data.Set E:0xE0000E00 0xFFFFFFFF ; enable itm stimulus ports WHISKER1 Data.Set E:0xE0000E40 0x0000000F ; ITM Trace Privilege: enable ITM stimulus port 7:0 WHISKER1 Data.Set E:0xE0000E80 0x0001000D ; ITM Trace Control ; Select Trace Method CAnalyzer WHISKER1 Trace.METHOD CAnalyzer //WHISKER1 TPIU.PortSize 4 //WHISKER1 ITM.ON //WHISKER1 ITM.DataTrace OFF //WHISKER1 ITM.TraceID 2 //WHISKER1 ETM.ON //WHISKER1 ETM.Trace ON //WHISKER1 ETM.BBC ON WHISKER1 CAnalyzer.ThresHold 1.65 WHISKER1 CAnalyzer.Clock 2MHz WHISKER1 CAnalyzer.AutoInit ON WHISKER1 CAnalyzer.AutoArm ON WHISKER1 CAnalyzer.Mode STREAM ; init Trace - ready for recording now WHISKER1 CAnalyzer.Init