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`.
 |