modified project to support Qt Creator inferior debugging through BDM.

This commit is contained in:
Markus Fröschle
2014-05-11 06:40:48 +00:00
parent 2f311aedbf
commit fb9c4aaa1d
7 changed files with 393 additions and 381 deletions

View File

@@ -1,5 +1,6 @@
#set disassemble-next-line on
define tr
!killall m68k-bdm-gdbserver
target remote | m68k-bdm-gdbserver pipe /dev/bdmcf3
#target remote | m68k-bdm-gdbserver pipe /dev/tblcf3
#target dbug /dev/ttyS0

View File

@@ -228,3 +228,4 @@ COPYING
COPYING.LESSER
dump.bdm
mcf5474.gdb
Makefile

View File

@@ -39,6 +39,7 @@ CFLAGS=-mcpu=5474 \
-Wa,--register-prefix-optional
CFLAGS_OPTIMIZED = -mcpu=5474 \
-Wall \
-g3 \
-O2 \
-fomit-frame-pointer \
-ffreestanding \

View File

@@ -61,6 +61,10 @@ define ib
setup-dram
end
define run
continue
end
tr
ib
load
load firebee/ram.elf

View File

@@ -509,7 +509,7 @@ irq6: // MFP interrupt from FPGA
movem.l (sp),d0-d1/a0-a1 // restore registers saved above
lea 4 * 4(sp),sp // adjust stack
bra irq6_os // call OS handler
beq irq6_os // call OS handler
rte
irq6_os: // call native OS irq6 handler

View File

@@ -204,20 +204,20 @@ static int num_locked_mmu_maps = sizeof(locked_map) / sizeof(struct mmu_mapping)
static struct mmu_mapping memory_map[] =
{
/* map system vectors supervisor-protected */
/* map OS system vectors supervisor-protected */
{
0,
0,
0x800,
MMU_PAGE_SIZE_1K,
{ CACHE_WRITETHROUGH, SV_USER, 0, ACCESS_READ | ACCESS_WRITE | ACCESS_EXECUTE },
{ CACHE_WRITETHROUGH, SV_PROTECT, 0, ACCESS_READ | ACCESS_WRITE | ACCESS_EXECUTE },
},
{
0x800,
0x800,
0x800,
MMU_PAGE_SIZE_1K,
{ CACHE_WRITETHROUGH, SV_USER, 0, ACCESS_READ | ACCESS_WRITE | ACCESS_EXECUTE },
{ CACHE_WRITETHROUGH, SV_PROTECT, 0, ACCESS_READ | ACCESS_WRITE | ACCESS_EXECUTE },
},
{
/* when the first 4k are filled with 1k pages, we can switch to 8k pages */
@@ -434,7 +434,11 @@ bool access_exception(uint32_t pc, uint32_t format_status)
case 0x8020000: /* TLB miss on data write */
case 0xc020000: /* TLB miss on data read or read-modify-write */
fault_address = MCF_MMU_MMUAR;
dbg("access fault - TLB miss at %p. Fault status = 0x0%x\r\n", pc, fault_status);
/*
* the following line must stay commented or we risk a double fault (debugging
* output requiring itself a page mapping):
*/
// dbg("access fault - TLB miss at %p. Fault status = 0x0%x\r\n", pc, fault_status);
break;
default:

View File

@@ -1093,6 +1093,7 @@ void initialize_hardware(void)
/* the following only makes sense _after_ DDRAM has been initialized */
clear_bss_segment();
xprintf(".bss segment cleared\r\n");
if (BAS_LMA != BAS_IN_RAM)
{