Zynq.PsTraceDevice.Mod 882 B

12345678910111213141516171819202122232425262728293031323334353637
  1. MODULE TraceDevice;
  2. (**
  3. AUTHOR: Timothee Martiel, Alexey Morozov, HighDim GmbH, 2013-2017
  4. PURPOSE: simple abtraction for installing kernel tracing over Zynq PS UART
  5. *)
  6. IMPORT SYSTEM, Platform, BootConfig, Trace, PsUartMin;
  7. VAR
  8. uart: PsUartMin.UartRegisters;
  9. PROCEDURE TraceChar(ch: CHAR);
  10. VAR ignore: LONGINT;
  11. BEGIN
  12. PsUartMin.SendChar(uart, ch, TRUE, NIL, ignore);
  13. END TraceChar;
  14. PROCEDURE Install *;
  15. VAR
  16. uartId: LONGINT;
  17. res: LONGINT;
  18. BEGIN
  19. Trace.Init;
  20. uartId := BootConfig.GetIntValue("TracePort")-1;
  21. PsUartMin.Install(uartId, Platform.UartBase[uartId], BootConfig.GetIntValue("UartInputClockHz"), res);
  22. IF res # 0 THEN RETURN; END;
  23. uart := PsUartMin.GetUart(uartId);
  24. IF ~PsUartMin.SetBps(uart, BootConfig.GetIntValue("TraceBPS"), res) THEN RETURN; END;
  25. PsUartMin.Enable(uart,TRUE);
  26. Trace.Char := TraceChar;
  27. END Install;
  28. END TraceDevice.