First commit, forked from sourceforge tar
This commit is contained in:
commit
394922bfd2
|
@ -0,0 +1 @@
|
|||
See https://stm8-binutils-gdb.sourceforge.io/ for installation and usage.
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,25 @@
|
|||
From 613571635409f08c9eb0460e011616dd16250ecb Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?=C3=85ke=20Rehnman?= <ake_rehnman_at_gmail_com>
|
||||
Date: Sat, 4 Mar 2017 00:06:10 +0100
|
||||
Subject: [PATCH 2/6] added clear_proceed_status in run_command_1 causing run
|
||||
command to hang.
|
||||
|
||||
---
|
||||
gdb/infcmd.c | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/gdb/infcmd.c b/gdb/infcmd.c
|
||||
index 976276b694..2050634c29 100644
|
||||
--- a/gdb/infcmd.c
|
||||
+++ b/gdb/infcmd.c
|
||||
@@ -675,6 +675,7 @@ run_command_1 (const char *args, int from_tty, enum run_how run_how)
|
||||
|
||||
/* Start the target running. Do not use -1 continuation as it would skip
|
||||
breakpoint right at the entry point. */
|
||||
+ clear_proceed_status (0);
|
||||
proceed (regcache_read_pc (get_current_regcache ()), GDB_SIGNAL_0);
|
||||
|
||||
/* Since there was no error, there's no need to finish the thread
|
||||
--
|
||||
2.12.2
|
||||
|
|
@ -0,0 +1,130 @@
|
|||
From a98428b14d141be893403aa7c7935012aef1f8e5 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?=C3=85ke=20Rehnman?= <ake_rehnman_at_gmail_com>
|
||||
Date: Sat, 4 Mar 2017 23:47:44 +0100
|
||||
Subject: [PATCH 3/6] Changed the run functionality to mimic running native
|
||||
code.
|
||||
|
||||
In addition two new remote settings were added to facilitate debugging with
|
||||
IDE's like eclipse. These settings will make gdb behave like if it is debugging
|
||||
native code removing the necessity to use remote, load and continue commands.
|
||||
|
||||
set remote run-connect on (default is on)
|
||||
The run-connect setting makes gdb automatically connect to localhost port 3333
|
||||
(openocd server port) when run command is entered.
|
||||
|
||||
set remote run-load on (default is on)
|
||||
The run-load setting makes gdb automatically load the program when run command
|
||||
is entered.
|
||||
|
||||
# Conflicts:
|
||||
# gdb/remote.c
|
||||
---
|
||||
gdb/remote.c | 50 ++++++++++++++++++++++++++++++++++++++++++++++++--
|
||||
1 file changed, 48 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/gdb/remote.c b/gdb/remote.c
|
||||
index a426508723..208bf4609b 100644
|
||||
--- a/gdb/remote.c
|
||||
+++ b/gdb/remote.c
|
||||
@@ -76,6 +76,9 @@
|
||||
#include "environ.h"
|
||||
#include "common/byte-vector.h"
|
||||
|
||||
+int remote_run_connect = 1;
|
||||
+int remote_run_load = 1;
|
||||
+
|
||||
/* Per-program-space data key. */
|
||||
static const struct program_space_data *remote_pspace_data;
|
||||
|
||||
@@ -9669,6 +9672,17 @@ Remote replied unexpectedly while setting startup-with-shell: %s"),
|
||||
|
||||
extended_remote_set_inferior_cwd (rs);
|
||||
|
||||
+ //akre
|
||||
+ if (remote_run_connect)
|
||||
+ {
|
||||
+ ops->to_open("localhost:3333", from_tty);
|
||||
+ if (remote_run_load)
|
||||
+ generic_load (exec_file, from_tty);
|
||||
+ init_thread_list ();
|
||||
+ run_worked = 0;
|
||||
+ }
|
||||
+ else
|
||||
+ {
|
||||
/* Now restart the remote server. */
|
||||
run_worked = extended_remote_run (args) != -1;
|
||||
if (!run_worked)
|
||||
@@ -9683,7 +9697,7 @@ Remote replied unexpectedly while setting startup-with-shell: %s"),
|
||||
/* Fall back to "R". */
|
||||
extended_remote_restart ();
|
||||
}
|
||||
-
|
||||
+ }
|
||||
if (!have_inferiors ())
|
||||
{
|
||||
/* Clean up from the last time we ran, before we mark the target
|
||||
@@ -13673,6 +13687,14 @@ Specify the serial device it is connected to\n\
|
||||
remote_thread_handle_to_thread_info;
|
||||
}
|
||||
|
||||
+//akre
|
||||
+//
|
||||
+static int
|
||||
+extended_remote_can_run (struct target_ops *self)
|
||||
+{
|
||||
+ return remote_run_connect;
|
||||
+}
|
||||
+
|
||||
/* Set up the extended remote vector by making a copy of the standard
|
||||
remote vector and adding to it. */
|
||||
|
||||
@@ -13694,6 +13716,9 @@ Specify the serial device it is connected to (e.g. /dev/ttya).";
|
||||
extended_remote_ops.to_post_attach = extended_remote_post_attach;
|
||||
extended_remote_ops.to_supports_disable_randomization
|
||||
= extended_remote_supports_disable_randomization;
|
||||
+
|
||||
+ extended_remote_ops.to_can_run
|
||||
+ = extended_remote_can_run;
|
||||
}
|
||||
|
||||
static int
|
||||
@@ -13707,7 +13732,11 @@ remote_can_async_p (struct target_ops *ops)
|
||||
return 0;
|
||||
|
||||
/* We're async whenever the serial device is. */
|
||||
- return serial_can_async_p (rs->remote_desc);
|
||||
+ //akre check if we have a remote connection
|
||||
+ if (rs->remote_desc)
|
||||
+ return serial_can_async_p (rs->remote_desc);
|
||||
+ else
|
||||
+ return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
@@ -13991,6 +14020,23 @@ the packets being used"),
|
||||
&remote_show_cmdlist, "show remote ",
|
||||
0 /* allow-unknown */, &showlist);
|
||||
|
||||
+//akre
|
||||
+ add_setshow_boolean_cmd ("run-connect", class_support,
|
||||
+ &remote_run_connect, _("\
|
||||
+Enable connecting to localhost:3333 with run command."), _(" \
|
||||
+Show remote-run-connect."), _(" \
|
||||
+If set remote target is connected automatically when program is run."),
|
||||
+ NULL, NULL,
|
||||
+ &remote_set_cmdlist, &remote_show_cmdlist);
|
||||
+
|
||||
+ add_setshow_boolean_cmd ("run-load", class_support,
|
||||
+ &remote_run_load, _("\
|
||||
+Enable loading with run command."), _(" \
|
||||
+Show remote-run-load."), _(" \
|
||||
+If set remote target is loaded automatically when program is run."),
|
||||
+ NULL, NULL,
|
||||
+ &remote_set_cmdlist, &remote_show_cmdlist);
|
||||
+
|
||||
add_cmd ("compare-sections", class_obscure, compare_sections_command, _("\
|
||||
Compare section data on target to the exec file.\n\
|
||||
Argument is a single section name (default: all loaded sections).\n\
|
||||
--
|
||||
2.12.2
|
||||
|
|
@ -0,0 +1,180 @@
|
|||
From 85f95b1d46d4ab7bff529f9f0de5cc3263a205bf Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?=C3=85ke=20Rehnman?= <ake_rehnman_at_gmail_com>
|
||||
Date: Sun, 23 Apr 2017 21:26:53 +0200
|
||||
Subject: [PATCH 4/6] Added --debug option to gas to enable debugging printout
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Signed-off-by: Åke Rehnman <ake_rehnman_at_gmail_com>
|
||||
---
|
||||
gas/config/tc-stm8.c | 58 +++++++++++++++++++++++++++++++++++++---------------
|
||||
1 file changed, 42 insertions(+), 16 deletions(-)
|
||||
|
||||
diff --git a/gas/config/tc-stm8.c b/gas/config/tc-stm8.c
|
||||
index 84e667278e..1fa4503ce2 100644
|
||||
--- a/gas/config/tc-stm8.c
|
||||
+++ b/gas/config/tc-stm8.c
|
||||
@@ -54,6 +54,7 @@ const char line_separator_chars[] = "{";
|
||||
|
||||
int md_short_jump_size = 3;
|
||||
int md_long_jump_size = 4;
|
||||
+int stm8_debug = 0;
|
||||
|
||||
/* The target specific pseudo-ops which we support. */
|
||||
/* example:
|
||||
@@ -95,17 +96,38 @@ md_show_usage (FILE *stream)
|
||||
fprintf (stream, _("\
|
||||
STM8 options:\n\
|
||||
"));
|
||||
+ fprintf (stream, _("\
|
||||
+ --debug turn on debug messages\n"));
|
||||
}
|
||||
|
||||
+enum options
|
||||
+{
|
||||
+ OPTION_DEBUG = OPTION_MD_BASE + 1,
|
||||
+};
|
||||
+
|
||||
const char *md_shortopts = "";
|
||||
|
||||
struct option md_longopts[] =
|
||||
{
|
||||
+ { "debug", no_argument, NULL, OPTION_DEBUG },
|
||||
{NULL, no_argument, NULL, 0}
|
||||
};
|
||||
|
||||
size_t md_longopts_size = sizeof (md_longopts);
|
||||
|
||||
+int
|
||||
+md_parse_option (int c, const char *arg __attribute__((unused)))
|
||||
+{
|
||||
+ switch (c)
|
||||
+ {
|
||||
+ case OPTION_DEBUG:
|
||||
+ stm8_debug = 1;
|
||||
+ return 1;
|
||||
+ }
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+
|
||||
void
|
||||
md_begin (void)
|
||||
{
|
||||
@@ -228,7 +250,8 @@ md_apply_fix (fixS *fixP, valueT *valP, segT segment ATTRIBUTE_UNUSED)
|
||||
long val = * (long *) valP;
|
||||
char *buf = fixP->fx_where + fixP->fx_frag->fr_literal;
|
||||
|
||||
- print_fixup(fixP);
|
||||
+ if (stm8_debug)
|
||||
+ print_fixup(fixP);
|
||||
|
||||
switch (fixP->fx_r_type)
|
||||
{
|
||||
@@ -329,7 +352,8 @@ tc_gen_reloc (asection *section ATTRIBUTE_UNUSED,
|
||||
{
|
||||
arelent *reloc;
|
||||
|
||||
- print_fixup(fixp);
|
||||
+ if (stm8_debug)
|
||||
+ print_fixup(fixp);
|
||||
|
||||
reloc = XNEW (arelent);
|
||||
reloc->sym_ptr_ptr = XNEW (asymbol *);
|
||||
@@ -359,12 +383,6 @@ md_section_align (segT seg, valueT size)
|
||||
return (size + mask) & ~mask;
|
||||
}
|
||||
|
||||
-int
|
||||
-md_parse_option (int c __attribute__((unused)), const char *arg __attribute__((unused)))
|
||||
-{
|
||||
- return 1;
|
||||
-}
|
||||
-
|
||||
symbolS *
|
||||
md_undefined_symbol (char *name)
|
||||
{
|
||||
@@ -529,7 +547,8 @@ int read_arg_ptr(char *str, expressionS *exps)
|
||||
}
|
||||
|
||||
expression(exps);
|
||||
- print_expr(exps);
|
||||
+ if (stm8_debug)
|
||||
+ print_expr(exps);
|
||||
|
||||
/* restore c */
|
||||
if (p)
|
||||
@@ -565,7 +584,8 @@ char* toupperstr(char *str);
|
||||
|
||||
char* toupperstr(char *str)
|
||||
{
|
||||
- for(int i = 0; str[i]; i++){
|
||||
+ int i;
|
||||
+ for(i = 0; str[i]; i++){
|
||||
str[i] = toupper(str[i]);
|
||||
}
|
||||
return str;
|
||||
@@ -591,7 +611,8 @@ int read_arg(char *str, expressionS *exps)
|
||||
exps->X_md = OP_IMM;
|
||||
input_line_pointer = str;
|
||||
expression(exps);
|
||||
- print_expr(exps);
|
||||
+ if (stm8_debug)
|
||||
+ print_expr(exps);
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -654,7 +675,8 @@ int read_arg(char *str, expressionS *exps)
|
||||
str=strtok(str,",");
|
||||
input_line_pointer=str;
|
||||
expression(exps);
|
||||
- print_expr(exps);
|
||||
+ if (stm8_debug)
|
||||
+ print_expr(exps);
|
||||
exps->X_md=OP_OFF_X;
|
||||
return 1;
|
||||
}
|
||||
@@ -680,7 +702,8 @@ int read_arg(char *str, expressionS *exps)
|
||||
str=strtok(str,",");
|
||||
input_line_pointer=str;
|
||||
expression(exps);
|
||||
- print_expr(exps);
|
||||
+ if (stm8_debug)
|
||||
+ print_expr(exps);
|
||||
exps->X_md=OP_OFF_X;
|
||||
return 1;
|
||||
}
|
||||
@@ -691,7 +714,8 @@ int read_arg(char *str, expressionS *exps)
|
||||
str=strtok(str,",");
|
||||
input_line_pointer=str;
|
||||
expression(exps);
|
||||
- print_expr(exps);
|
||||
+ if (stm8_debug)
|
||||
+ print_expr(exps);
|
||||
exps->X_md=OP_OFF_SP;
|
||||
return 1;
|
||||
}
|
||||
@@ -705,7 +729,8 @@ int read_arg(char *str, expressionS *exps)
|
||||
exps->X_md = OP_SHORTMEM;
|
||||
input_line_pointer = str;
|
||||
expression(exps);
|
||||
- print_expr(exps);
|
||||
+ if (stm8_debug)
|
||||
+ print_expr(exps);
|
||||
*p = c;
|
||||
input_line_pointer += 6;
|
||||
return 1;
|
||||
@@ -713,7 +738,8 @@ int read_arg(char *str, expressionS *exps)
|
||||
|
||||
input_line_pointer = str;
|
||||
expression(exps);
|
||||
- print_expr(exps);
|
||||
+ if (stm8_debug)
|
||||
+ print_expr(exps);
|
||||
|
||||
if (exps->X_op == O_register)
|
||||
{
|
||||
--
|
||||
2.12.2
|
||||
|
|
@ -0,0 +1,174 @@
|
|||
From c5d6641a345485cab823426a5b364a8126e7eda3 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?=C3=85ke=20Rehnman?= <ake_rehnman_at_gmail_com>
|
||||
Date: Sun, 23 Apr 2017 21:30:18 +0200
|
||||
Subject: [PATCH 5/6] Fixed printf formatting warnings Removed target
|
||||
description registers
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Signed-off-by: Åke Rehnman <ake_rehnman_at_gmail_com>
|
||||
---
|
||||
gdb/stm8-tdep.c | 38 ++++++++++++++++++++------------------
|
||||
1 file changed, 20 insertions(+), 18 deletions(-)
|
||||
|
||||
diff --git a/gdb/stm8-tdep.c b/gdb/stm8-tdep.c
|
||||
index 30b345cfd7..fd4b96c6c0 100644
|
||||
--- a/gdb/stm8-tdep.c
|
||||
+++ b/gdb/stm8-tdep.c
|
||||
@@ -34,7 +34,6 @@
|
||||
#include "dis-asm.h"
|
||||
#include "objfiles.h"
|
||||
#include "target-descriptions.h"
|
||||
-#include <algorithm>
|
||||
#include "dwarf2-frame.h"
|
||||
|
||||
enum stm8_regnum
|
||||
@@ -279,7 +278,7 @@ stm8_breakpoint_kind_from_pc (struct gdbarch *gdbarch, CORE_ADDR *pcptr)
|
||||
CORE_ADDR pc = *pcptr;
|
||||
|
||||
if (stm8_debug)
|
||||
- fprintf_unfiltered (gdb_stdlog, "stm8_breakpoint_kind_from_pc called %8.8lx\n",pc);
|
||||
+ fprintf_unfiltered (gdb_stdlog, "stm8_breakpoint_kind_from_pc called %8.8lx\n", (unsigned long)pc);
|
||||
|
||||
return 1;
|
||||
}
|
||||
@@ -336,19 +335,19 @@ stm8_unwind_pc (struct gdbarch *gdbarch, struct frame_info *next_frame)
|
||||
frame_unwind_register (next_frame, STM8_PC_REGNUM, buf);
|
||||
pc = extract_typed_address (buf, builtin_type (gdbarch)->builtin_func_ptr);
|
||||
if (stm8_debug)
|
||||
- fprintf_unfiltered (gdb_stdlog, "stm8_unwind_pc called: pc=%8.8lx\n",pc);
|
||||
+ fprintf_unfiltered (gdb_stdlog, "stm8_unwind_pc called: pc=%8.8lx\n", (unsigned long)pc);
|
||||
return pc;
|
||||
}
|
||||
|
||||
static CORE_ADDR
|
||||
stm8_unwind_sp (struct gdbarch *gdbarch, struct frame_info *next_frame)
|
||||
{
|
||||
- ULONGEST sp;
|
||||
+ CORE_ADDR sp;
|
||||
|
||||
sp = frame_unwind_register_unsigned (next_frame, STM8_SP_REGNUM);
|
||||
sp = gdbarch_addr_bits_remove (gdbarch, sp);
|
||||
if (stm8_debug)
|
||||
- fprintf_unfiltered (gdb_stdlog, "stm8_unwind_sp called: sp=%8.8llx\n",sp);
|
||||
+ fprintf_unfiltered (gdb_stdlog, "stm8_unwind_sp called: sp=%8.8lx\n", (unsigned long)sp);
|
||||
return sp;
|
||||
}
|
||||
|
||||
@@ -451,7 +450,7 @@ stm8_get_return_insn (CORE_ADDR pc)
|
||||
|
||||
//defaut to RET
|
||||
if (stm8_debug)
|
||||
- fprintf_unfiltered(gdb_stdlog, "WARNING: stm8_get_return_insn: No return instruction found in function %s start_addr = %8.8lx end_addr = %8.8lx\n", name, func_addr, func_end);
|
||||
+ fprintf_unfiltered(gdb_stdlog, "WARNING: stm8_get_return_insn: No return instruction found in function %s start_addr = %8.8lx end_addr = %8.8lx\n", name, (unsigned long)func_addr, (unsigned long)func_end);
|
||||
return RETURN_RET;
|
||||
}
|
||||
|
||||
@@ -468,7 +467,7 @@ stm8_analyze_prologue (struct gdbarch *gdbarch, CORE_ADDR pc,
|
||||
gdb_byte buf[4];
|
||||
|
||||
if (stm8_debug)
|
||||
- fprintf_unfiltered(gdb_stdlog, "stm8_analyze_prologue called (pc=%8.8lx current_pc=%8.8lx)\n",pc,current_pc);
|
||||
+ fprintf_unfiltered(gdb_stdlog, "stm8_analyze_prologue called (pc=%8.8lx current_pc=%8.8lx)\n", (unsigned long)pc, (unsigned long)current_pc);
|
||||
|
||||
/* Initialize info about frame. */
|
||||
cache->framesize = 0;
|
||||
@@ -582,7 +581,7 @@ static CORE_ADDR
|
||||
stm8_skip_prologue (struct gdbarch *gdbarch, CORE_ADDR start_pc)
|
||||
{
|
||||
if (stm8_debug)
|
||||
- fprintf_unfiltered (gdb_stdlog, "stm8_skip_prologue called: start_pc=%8.8lx\n", start_pc);
|
||||
+ fprintf_unfiltered (gdb_stdlog, "stm8_skip_prologue called: start_pc=%8.8lx\n", (unsigned long)start_pc);
|
||||
|
||||
struct symtab_and_line sal;
|
||||
CORE_ADDR func_start, func_end, ostart_pc;
|
||||
@@ -605,7 +604,7 @@ stm8_skip_prologue (struct gdbarch *gdbarch, CORE_ADDR start_pc)
|
||||
&cache);
|
||||
|
||||
if (stm8_debug)
|
||||
- fprintf_unfiltered (gdb_stdlog, "stm8_skip_prologue: start_pc=%8.8lx ostart_pc=%8.8lx\n",start_pc,ostart_pc);
|
||||
+ fprintf_unfiltered (gdb_stdlog, "stm8_skip_prologue: start_pc=%8.8lx ostart_pc=%8.8lx\n", (unsigned long)start_pc, (unsigned long)ostart_pc);
|
||||
|
||||
if (ostart_pc > start_pc)
|
||||
return ostart_pc;
|
||||
@@ -629,7 +628,7 @@ static struct stm8_frame_cache *
|
||||
stm8_frame_cache (struct frame_info *next_frame, void **this_cache)
|
||||
{
|
||||
if (stm8_debug)
|
||||
- fprintf_unfiltered (gdb_stdlog, "stm8_frame_cache called (next_frame=%p)\n",next_frame);
|
||||
+ fprintf_unfiltered (gdb_stdlog, "stm8_frame_cache called (next_frame=%p)\n", next_frame);
|
||||
|
||||
struct stm8_frame_cache *cache;
|
||||
struct gdbarch *gdbarch = get_frame_arch (next_frame);
|
||||
@@ -712,7 +711,7 @@ stm8_frame_cache (struct frame_info *next_frame, void **this_cache)
|
||||
if (stm8_debug)
|
||||
{
|
||||
fprintf_unfiltered (gdb_stdlog, "stm8_frame_cache: (next_frame=%p) base=%4.4lx curr_pc=%4.4lx curr_sp=%4.4lx fp_regnum=%d fp=%4.4lx framesize=%4.4x stackadj=%4.4x retsize=%d\n",
|
||||
- next_frame, cache->base, current_pc, current_sp, cache->fp_regnum, fp, cache->framesize, cache->stackadj, retsize);
|
||||
+ next_frame, (unsigned long)cache->base, (unsigned long)current_pc, (unsigned long)current_sp, cache->fp_regnum, (unsigned long)fp, cache->framesize, cache->stackadj, retsize);
|
||||
|
||||
CORE_ADDR frame_pc;
|
||||
CORE_ADDR frame_sp;
|
||||
@@ -729,9 +728,9 @@ stm8_frame_cache (struct frame_info *next_frame, void **this_cache)
|
||||
frame_fp = fp;
|
||||
|
||||
frame_pc = frame_pc >> 16;
|
||||
- fprintf_unfiltered (gdb_stdlog, "stm8_frame_cache: (next_frame=%p) pc=%8.8llx *pc=%8.8lx\n", next_frame, cache->saved_regs[STM8_PC_REGNUM].addr, frame_pc);
|
||||
- fprintf_unfiltered (gdb_stdlog, "stm8_frame_cache: (next_frame=%p) sp=%8.8llx *sp=%8.8lx\n", next_frame, cache->saved_regs[STM8_SP_REGNUM].addr, frame_sp);
|
||||
- fprintf_unfiltered (gdb_stdlog, "stm8_frame_cache: (next_frame=%p) fp=%8.8llx *fp=%8.8lx\n", next_frame, cache->saved_regs[STM8_FP_REGNUM].addr, frame_fp);
|
||||
+ fprintf_unfiltered (gdb_stdlog, "stm8_frame_cache: (next_frame=%p) pc=%8.8lx *pc=%8.8lx\n", next_frame, (unsigned long)cache->saved_regs[STM8_PC_REGNUM].addr, (unsigned long)frame_pc);
|
||||
+ fprintf_unfiltered (gdb_stdlog, "stm8_frame_cache: (next_frame=%p) sp=%8.8lx *sp=%8.8lx\n", next_frame, (unsigned long)cache->saved_regs[STM8_SP_REGNUM].addr, (unsigned long)frame_sp);
|
||||
+ fprintf_unfiltered (gdb_stdlog, "stm8_frame_cache: (next_frame=%p) fp=%8.8lx *fp=%8.8lx\n", next_frame, (unsigned long)cache->saved_regs[STM8_FP_REGNUM].addr, (unsigned long)frame_fp);
|
||||
}
|
||||
|
||||
return (struct stm8_frame_cache *) (*this_cache);
|
||||
@@ -759,7 +758,7 @@ stm8_frame_this_id (struct frame_info *next_frame, void **this_cache,
|
||||
(*this_id) = frame_id_build (base, func);
|
||||
|
||||
if (stm8_debug)
|
||||
- fprintf_unfiltered (gdb_stdlog, "stm8_frame_this_id: base=%8.8lx pc=%8.8lx\n",base, func);
|
||||
+ fprintf_unfiltered (gdb_stdlog, "stm8_frame_this_id: base=%8.8lx pc=%8.8lx\n", (unsigned long)base, (unsigned long)func);
|
||||
}
|
||||
|
||||
static struct value *
|
||||
@@ -789,7 +788,7 @@ stm8_frame_prev_register (struct frame_info *this_frame,
|
||||
}
|
||||
|
||||
if (stm8_debug)
|
||||
- fprintf_unfiltered (gdb_stdlog, "stm8_frame_prev_register: regnum(%d)=%8.8llx\n", regnum, value_as_long(value));
|
||||
+ fprintf_unfiltered (gdb_stdlog, "stm8_frame_prev_register: regnum(%d)=%8.8lx\n", regnum, (unsigned long)value_as_long(value));
|
||||
|
||||
return value;
|
||||
}
|
||||
@@ -885,7 +884,7 @@ stm8_frame_base_address (struct frame_info *next_frame,
|
||||
stm8_frame_cache (next_frame, this_cache);
|
||||
|
||||
if (stm8_debug)
|
||||
- fprintf_unfiltered (gdb_stdlog, "stm8_frame_base_address: fb=%8.8lx\n", cache->base);
|
||||
+ fprintf_unfiltered (gdb_stdlog, "stm8_frame_base_address: fb=%8.8lx\n", (unsigned long)cache->base);
|
||||
|
||||
return cache->base;
|
||||
}
|
||||
@@ -906,7 +905,7 @@ stm8_frame_args_address (struct frame_info *this_frame, void **this_cache)
|
||||
addr += 5; //2 bytes fp + 2 bytes pc + 1
|
||||
|
||||
if (stm8_debug)
|
||||
- fprintf_unfiltered (gdb_stdlog, "stm8_frame_args_address: addr = %8.8lx\n",addr);
|
||||
+ fprintf_unfiltered (gdb_stdlog, "stm8_frame_args_address: addr = %8.8lx\n", (unsigned long)addr);
|
||||
|
||||
return addr;
|
||||
}
|
||||
@@ -966,6 +965,9 @@ stm8_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
|
||||
if (tdesc == NULL)
|
||||
tdesc = tdesc_stm8;
|
||||
|
||||
+ //override target registers... /ARE
|
||||
+ tdesc = tdesc_stm8;
|
||||
+
|
||||
/* Check any target description for validity. */
|
||||
if (tdesc_has_registers (tdesc))
|
||||
{
|
||||
--
|
||||
2.12.2
|
||||
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,12 @@
|
|||
#!/bin/sh
|
||||
cd binutils-2.30
|
||||
if [ x$HOST=x"" ]; then
|
||||
_HOST=$(./config.guess)
|
||||
else
|
||||
_HOST=$HOST
|
||||
fi
|
||||
if [ x$PREFIX != x"" ]; then
|
||||
_PREFIX="-prefix=$PREFIX"
|
||||
fi
|
||||
|
||||
./configure --host=$_HOST --target=stm8-none-elf32 $_PREFIX --program-prefix=stm8-
|
|
@ -0,0 +1,10 @@
|
|||
#!/bin/sh
|
||||
wget -nc https://ftp.gnu.org/gnu/binutils/binutils-2.30.tar.xz
|
||||
wget -nc https://ftp.gnu.org/gnu/gdb/gdb-8.1.tar.xz
|
||||
mkdir -p binutils-2.30
|
||||
tar -xvf gdb-8.1.tar.xz --strip-components=1 --directory=binutils-2.30
|
||||
tar -xvf binutils-2.30.tar.xz
|
||||
for f in ./binutils_patches/*.patch
|
||||
do
|
||||
patch -N -p 1 -d binutils-2.30 <$f
|
||||
done
|
Loading…
Reference in New Issue