19 lines
1.1 KiB
Markdown
19 lines
1.1 KiB
Markdown
|
# NEORV32 On-Chip Debugger (OCD) - "Park Loop" Code
|
||
|
|
||
|
This folder contains the ASM sources for the *execution-based* debugger code ROM.
|
||
|
`park_loop.S` contains the "park loop" that is executed when the CPU is in debug mode. This code is used to communicate
|
||
|
with the *debug module (DM)* and is responsible for:
|
||
|
|
||
|
* acknowledging halt requests
|
||
|
* processing and acknowledging resume requests
|
||
|
* processing and acknowledging "execute program buffer" requests
|
||
|
* executing the program buffer (provided by the DM)
|
||
|
* catching exceptions while in debug mode
|
||
|
|
||
|
The park loop code is implemented as endless loop that polls the status register of the *debug memory (DBMEM)* module
|
||
|
to check for requests from the DM and sets according flags in the status register to acknowledge these requests.
|
||
|
|
||
|
:warning: Executing `make clean_all all` will **NOT** update the actual debugger code ROM that will be synthesized.
|
||
|
The interface with the DM will break if there are any bugs in this code. However, if you wish to update the code ROM,
|
||
|
copy the array content from `neorv32_debug_mem.code.vhd` to the `code_rom_file` constant in `rtl/core/neorv32_debug_dbmem.vhd`.
|