2019-12-11 09:26 PM
Reading this cell: 0xe0040000 will hard crash the CPU. You can do it from non secure code also, which opens the way for a possible denial of service attack.
In gdb:
x/x 0xe0040000
I realize parallel trace (the tpiu reg in Q) is not implemented but at least return 0, dont hang.
Only a power cycle can recover it. Soft reset is insufficient.
Tnx
H.
2019-12-22 01:01 PM
Operator error. That space @0xe0040000 cannot be read unless... some bits are flipped.
SWO trace works now.
DBGMCU_Periph.CR.TRACE_EN := True;
DBGMCU_Periph.CR.TRACE_IOEN := True;
where:
DBGMCU_Periph : aliased DBGMCU_Peripheral
with Import, Address => System'To_Address (16#E0044000#);