[PATCH 03/23] sim/erc32: Perform pseudo-init of system if binary starts from non-zero address.
Mike Frysinger
vapier@gentoo.org
Tue Feb 17 08:59:00 GMT 2015
On 17 Feb 2015 08:44, Jiri Gaisler wrote:
> +extern struct pstate sregs;
> +
> +void
> +boot_init ()
in C, you need to do (void) to avoid ugliness.
also looks like this is missing an update to a header to add the prototype ?
> +{
> + mec_write(MEC_WCR, 0); /* zero waitstates */
> + mec_write(MEC_TRAPD, 0); /* turn off watch-dog */
> + mec_write(MEC_RTC_SCALER, sregs.freq-1); /* generate 1 MHz RTC tick */
> + mec_write(MEC_MEMCFG, (3 << 18) | (4 << 10)); /* 1 MB ROM, 4 MB RAM */
> + sregs.wim = 2;
> + sregs.psr = 0x110010e0;
> + sregs.r[30] = RAM_END;
> + sregs.r[14] = sregs.r[30] - 96*4;
> + mec_mcr |= 1; /* power-down enabled */
> +}
why isn't sregs passed in as an arg ? looks like both callers have a pointer to
it already.
> --- a/sim/erc32/func.c
> +++ b/sim/erc32/func.c
> @@ -468,6 +468,7 @@ exec_cmd(sregs, cmd)
> }
> sregs->pc = len & ~3;
> sregs->npc = sregs->pc + 4;
> + if ((sregs->pc != 0) && (ebase.simtime == 0)) boot_init();
i know the code base doesn't follow GNU style already, but lets at least start
moving in that direction. i.e. uncuddle this:
if (...)
boot_init();
> --- a/sim/erc32/interf.c
> +++ b/sim/erc32/interf.c
> @@ -78,6 +78,7 @@ run_sim(sregs, icount, dis)
> init_stdio();
> sregs->starttime = time(NULL);
> irq = 0;
> + if ((sregs->pc != 0) && (ebase.simtime == 0)) boot_init();
same here
-mike
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: Digital signature
URL: <http://sourceware.org/pipermail/gdb-patches/attachments/20150217/e6a8aa35/attachment.sig>
More information about the Gdb-patches
mailing list