modified project to support Qt Creator inferior debugging through BDM.
This commit is contained in:
@@ -1,5 +1,6 @@
|
|||||||
#set disassemble-next-line on
|
#set disassemble-next-line on
|
||||||
define tr
|
define tr
|
||||||
|
!killall m68k-bdm-gdbserver
|
||||||
target remote | m68k-bdm-gdbserver pipe /dev/bdmcf3
|
target remote | m68k-bdm-gdbserver pipe /dev/bdmcf3
|
||||||
#target remote | m68k-bdm-gdbserver pipe /dev/tblcf3
|
#target remote | m68k-bdm-gdbserver pipe /dev/tblcf3
|
||||||
#target dbug /dev/ttyS0
|
#target dbug /dev/ttyS0
|
||||||
|
|||||||
@@ -228,3 +228,4 @@ COPYING
|
|||||||
COPYING.LESSER
|
COPYING.LESSER
|
||||||
dump.bdm
|
dump.bdm
|
||||||
mcf5474.gdb
|
mcf5474.gdb
|
||||||
|
Makefile
|
||||||
|
|||||||
@@ -39,6 +39,7 @@ CFLAGS=-mcpu=5474 \
|
|||||||
-Wa,--register-prefix-optional
|
-Wa,--register-prefix-optional
|
||||||
CFLAGS_OPTIMIZED = -mcpu=5474 \
|
CFLAGS_OPTIMIZED = -mcpu=5474 \
|
||||||
-Wall \
|
-Wall \
|
||||||
|
-g3 \
|
||||||
-O2 \
|
-O2 \
|
||||||
-fomit-frame-pointer \
|
-fomit-frame-pointer \
|
||||||
-ffreestanding \
|
-ffreestanding \
|
||||||
|
|||||||
@@ -61,6 +61,10 @@ define ib
|
|||||||
setup-dram
|
setup-dram
|
||||||
end
|
end
|
||||||
|
|
||||||
|
define run
|
||||||
|
continue
|
||||||
|
end
|
||||||
|
|
||||||
tr
|
tr
|
||||||
ib
|
ib
|
||||||
load
|
load firebee/ram.elf
|
||||||
|
|||||||
@@ -509,7 +509,7 @@ irq6: // MFP interrupt from FPGA
|
|||||||
movem.l (sp),d0-d1/a0-a1 // restore registers saved above
|
movem.l (sp),d0-d1/a0-a1 // restore registers saved above
|
||||||
lea 4 * 4(sp),sp // adjust stack
|
lea 4 * 4(sp),sp // adjust stack
|
||||||
|
|
||||||
bra irq6_os // call OS handler
|
beq irq6_os // call OS handler
|
||||||
rte
|
rte
|
||||||
|
|
||||||
irq6_os: // call native OS irq6 handler
|
irq6_os: // call native OS irq6 handler
|
||||||
|
|||||||
@@ -204,20 +204,20 @@ static int num_locked_mmu_maps = sizeof(locked_map) / sizeof(struct mmu_mapping)
|
|||||||
|
|
||||||
static struct mmu_mapping memory_map[] =
|
static struct mmu_mapping memory_map[] =
|
||||||
{
|
{
|
||||||
/* map system vectors supervisor-protected */
|
/* map OS system vectors supervisor-protected */
|
||||||
{
|
{
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
0x800,
|
0x800,
|
||||||
MMU_PAGE_SIZE_1K,
|
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,
|
0x800,
|
||||||
0x800,
|
0x800,
|
||||||
MMU_PAGE_SIZE_1K,
|
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 */
|
/* 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 0x8020000: /* TLB miss on data write */
|
||||||
case 0xc020000: /* TLB miss on data read or read-modify-write */
|
case 0xc020000: /* TLB miss on data read or read-modify-write */
|
||||||
fault_address = MCF_MMU_MMUAR;
|
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;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
|||||||
@@ -1093,6 +1093,7 @@ void initialize_hardware(void)
|
|||||||
|
|
||||||
/* the following only makes sense _after_ DDRAM has been initialized */
|
/* the following only makes sense _after_ DDRAM has been initialized */
|
||||||
clear_bss_segment();
|
clear_bss_segment();
|
||||||
|
xprintf(".bss segment cleared\r\n");
|
||||||
|
|
||||||
if (BAS_LMA != BAS_IN_RAM)
|
if (BAS_LMA != BAS_IN_RAM)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user