Stage2: Add exception handlers
This commit is contained in:
@@ -1,3 +1,5 @@
|
||||
#include <inttypes.h>
|
||||
|
||||
#include "exception_handlers.h"
|
||||
#include "lib/driver_utils.h"
|
||||
#include "utils.h"
|
||||
@@ -37,7 +39,7 @@ void exception_handler_main(uint32_t *registers, unsigned int exception_type) {
|
||||
|
||||
uint32_t instr_addr = pc + ((cpsr & 0x20) ? 2 : 4) - CODE_DUMP_SIZE;
|
||||
|
||||
printk("Something went wrong...\n");
|
||||
printk("\nSomething went wrong...\n");
|
||||
|
||||
code_dump_size = safecpy(code_dump, (const void *)instr_addr, CODE_DUMP_SIZE);
|
||||
stack_dump_size = safecpy(stack_dump, (const void *)registers[13], STACK_DUMP_SIZE);
|
||||
@@ -47,11 +49,11 @@ void exception_handler_main(uint32_t *registers, unsigned int exception_type) {
|
||||
|
||||
/* Print r0 to pc. */
|
||||
for (int i = 0; i < 16; i += 2) {
|
||||
printk("%-7s%08X %-7s%08X\n", register_names[i], registers[i], register_names[i+1], registers[i+1]);
|
||||
printk("%-7s%08"PRIX32" %-7s%08"PRIX32"\n", register_names[i], registers[i], register_names[i+1], registers[i+1]);
|
||||
}
|
||||
|
||||
/* Print cpsr. */
|
||||
printk("%-7s%08X\n", register_names[16], registers[16]);
|
||||
printk("%-7s%08"PRIX32"\n", register_names[16], registers[16]);
|
||||
|
||||
printk("\nCode dump:\n");
|
||||
hexdump(code_dump, code_dump_size, instr_addr);
|
||||
|
||||
Reference in New Issue
Block a user