This is the mail archive of the
ecos-discuss@sourceware.org
mailing list for the eCos project.
Re: Changing flash wait state on SAM7
- From: Andrew Lunn <andrew at lunn dot ch>
- To: "Davies, Greg" <Greg dot Davies at Ultra-UEMS dot com>
- Cc: ecos-discuss at ecos dot sourceware dot org
- Date: Mon, 7 Apr 2008 19:10:19 +0200
- Subject: Re: [ECOS] Changing flash wait state on SAM7
- References: <A25DBA3B0717824BAFD61F81242D5DBD011B906D@exchange.Ultra-UEMS.ca>
On Mon, Apr 07, 2008 at 01:34:58PM -0300, Davies, Greg wrote:
> I've been having some strange memory issues that I've been talking about
> in the "eCos causing something.. Maybe?" thread. Basically I was seeing
> random values when I did a dump of any section of memory. The BDI folks
> suggested I change the flash wait state. I did this and the problem went
> away.
>
> I now have an issue similar to this while trying to debug. I can see
> that the first 3 instructions set the flash wait state to 1 (by writing
> 0x100 to 0xffffff60), but I need it to be 3. This seems to be in a
> function called reset_vector (or at least that's what gdb calls it). I
> tried changing what looked like the same code (but called
> __flash_init__) in
> packages\hal\arm\at91\at91sam7s\current\include\hal_platform_setup.h,
> and I rebuilt everything, but when I loaded on the new code, it still
> wrote the same value. Am I changing the flash wait state in the right
> spot?
Yes, but the dependencies don't always work for this. Delete
install/lib/vectors.o and recompile.
What how fast are you clocking your device?
// Macro to initialise the Memory Controller
.macro _flash_init
__flash_init__:
#if CYGNUM_HAL_ARM_AT91_CLOCK_SPEED > 30000000
// When the clock is running faster than 30MHz we need a wait state
ldr r0,=AT91_MC
ldr r1,=(AT91_MC_FMR_1FWS)
str r1,[r0,#AT91_MC_FMR]
#endif
#if CYGNUM_HAL_ARM_AT91_CLOCK_SPEED > 60000000
ldr r1,=(AT91_MC_FMR_2FWS)
str r1,[r0,#AT91_MC_FMR]
#endif
.endm
Andrew
--
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss