sim: msp430: set initial PC to ELF entry if available
If we want to run a simple ELF, the reset vector isn't set up, so starting at address 0 doesn't make sense. Use the ELF's entry point instead.
This commit is contained in:
parent
a3271a3e6c
commit
7b0278dcad
2 changed files with 11 additions and 1 deletions
|
@ -1,3 +1,8 @@
|
|||
2014-03-10 Mike Frysinger <vapier@gentoo.org>
|
||||
|
||||
* msp430-sim.c (sim_create_inferior): Set new_pc to the result of
|
||||
bfd_get_start_address when abfd is not NULL and new_pc is zero.
|
||||
|
||||
2014-03-10 Mike Frysinger <vapier@gentoo.org>
|
||||
|
||||
* msp430-sim (maybe_perform_syscall): Change %d to %ld.
|
||||
|
|
|
@ -249,9 +249,14 @@ sim_create_inferior (SIM_DESC sd,
|
|||
int c;
|
||||
int new_pc;
|
||||
|
||||
/* Set the PC to the default reset vector if available. */
|
||||
c = sim_core_read_buffer (sd, MSP430_CPU (sd), read_map, resetv, 0xfffe, 2);
|
||||
|
||||
new_pc = resetv[0] + 256 * resetv[1];
|
||||
|
||||
/* If the reset vector isn't initialized, then use the ELF entry. */
|
||||
if (abfd != NULL && !new_pc)
|
||||
new_pc = bfd_get_start_address (abfd);
|
||||
|
||||
sim_pc_set (MSP430_CPU (sd), new_pc);
|
||||
msp430_pc_store (MSP430_CPU (sd), new_pc);
|
||||
|
||||
|
|
Loading…
Reference in a new issue