Skip to main content
Hedley
Associate III
December 12, 2019
Question

Certain read causes hang/crash

  • December 12, 2019
  • 1 reply
  • 854 views

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.

I​n 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.

T​nx

H.​

This topic has been closed for replies.

1 reply

Hedley
HedleyAuthor
Associate III
December 22, 2019

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#);