OpenCores
URL https://opencores.org/ocsvn/riscv_vhdl/riscv_vhdl/trunk

Subversion Repositories riscv_vhdl

[/] [riscv_vhdl/] [trunk/] [docs/] [doxygen/] [08_debugpy.doxy] - Blame information for rev 5

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 5 sergeykhbr
/** @page debug_python_page Python Frontend
2
 
3
 @section python_prerequisites Prerequisites
4
 
5
 Current Debugger version is integrated with Python 2.7 using TCP connection
6
 and special Python module \c rcp distributed with this bundle. The following
7
 requirements should be met before start using the python's debug console:
8
 
9
 \li Debugger binary files built from the provided sources on Windows or Linux
10
     machines. It is possible to use starting script \c _run_fpga_nogui_uartdbg
11
     (sh|bat) to load minimal configuration into Debugger without GUI and
12
     SystemC support. It enables console mode only.
13
 
14
  \li Installed Python 2.7. To check the installed version:
15
 
16
        >>> import sys
17
        >>> sys.version
18
 
19
  \li FPGA board with loaded image instantiated 2 UARTs modules:
20
       - \c UART1 is the slave device used for the user's output.
21
       - \c UART2 is the master device (with DMA) used as the Test Access
22
            Point (TAP) to the system. Cannot be used for the user's output.
23
 
24
 @section python_uarttap UART TAP
25
 
26
 \li Build FPGA image from the provided sources (ML605 or KC705 are supported).
27
 \li Run FPGA board and load the prepared bit-file.
28
 
29
  So now your target supports 2 debug interfaces:
30
      - Debug via Ethernet
31
      - Debug via UART
32
 
33
  Actually both this interfaces can be used in the same time.There's no
34
  limitation on that.
35
 
36
  Run minimal Debugger configuration with UART TAP support (and disabled
37
  Ethernet). For this run one of the following starting files depending of
38
  your OS:
39
 
40
      # cd $(TOP)/river_demo/debugger/linuxbuild/bin
41
      # ./_run_fpga_nogui_uartdbg.sh
42
 
43
 or
44
 
45
      # cd $(TOP)/river_demo/debugger/win32build/Debug
46
      # _run_fpga_nogui_uartdbg.bat
47
 
48
  Both os these scripts is doing the same thing actually. They start debugger
49
  application and point to the JSON-configuration file
50
  $(TOP)/river_demo/debugger/targets/fpga_nogui_uartdbg.json
51
 
52
  Modify this JSON-file accordingly with your Serial Port settings:
53
 
54
 Ethernet config
55
 @latexonly {\includegraphics{../doxygen/pics/uartdbg1.png}} @endlatexonly
56
 
57
  When debugger was started you should see the following debugger console:
58
 
59
 Ethernet config
60
 @latexonly {\includegraphics{../doxygen/pics/uartdbg2.png}} @endlatexonly
61
 
62
  Try different console commands to test debugger:
63
 
64
       # help
65
       # help read
66
       # regs
67
       # status
68
       # cpi
69
       etc
70
 
71
 Ethernet config
72
 @latexonly {\includegraphics{../doxygen/pics/uartdbg3.png}} @endlatexonly
73
 
74
 
75
  @warning UART TAP configured with hardcoded Scale Rate computed to give
76
          port speed 115200 when Bus Frequency is 40 MHz.
77
 
78
  This simple Debug configuration also includes TCP server to interact with
79
  the standalone Python scripts. Don't close Debugger console and run Python
80
  as in the following part of the document.
81
 
82
  @section python_scripting Python Scripting
83
 
84
  Just after your Debugger was started you actually is able to control the FPGA
85
  board via specially implemeted JSON-based interface using TCP transport
86
  and the standalone frontend.
87
 
88
  We provide special Python module \b rpc placed in the following folder:
89
 
90
      # cd $(TOP)/river_demo/debugger/scripts
91
 
92
  You should be inside of folder \c scripts to import module \rpc otherwise
93
  you will need to modify sys.path variable.
94
 
95
  Let's debug our FPGA board from python manually without running automatic
96
  script. For this, run python's shell from the folder scripts:
97
 
98
      E:\river_demo\debugger\scripts> python.exe
99
 
100
      >>> import sys
101
      >>> sys.version
102
      >>> import rpc
103
      >>> t = rpc.Remote()
104
      >>> t.connect()
105
 
106
  Try to call different method to debug FPGA board:
107
 
108
  Ethernet config
109
  @latexonly {\includegraphics{../doxygen/pics/uartdbg4.png}} @endlatexonly
110
 
111
  If you see the similar results then your debugger works properly and you can
112
  try to run demonstration scripts with annotation placed in folder
113
  \c scripts. Close current python shell:
114
 
115
      >>> t.connect()
116
      >>> exit()
117
 
118
  Run automatic scripts from the OS console:
119
 
120
      # python example.py
121
 
122
  Congratulations! Now you are able to remotely debug your target using scripts.
123
*/

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.