This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH 03/23] sim/erc32: Perform pseudo-init of system if binary starts from non-zero address.


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

Attachment: signature.asc
Description: Digital signature


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]