EmbDev.net

Forum: ARM programming with GCC/GNU tools WinARM Example for AT91SAM7S256 on AT91SAM7S-EK?


von Bob P. (gracei)


Rate this post
useful
not useful
I am looking for simple working example code for the AT91SAM7S-EK
board that has the AT91SAM7S256 part mounted.

I have tried to update the example files (Makefile, board.h, linker
script etc.)  in the WinARM distribution, that where written for the
S64 part.  Alas they do not run, so I don't know where I am going
wrong.  I could figure that out if I had a working example that simply
blinked a LED for the S256 on the EK board.

Does anyone have such code?

von Martin Thomas (Guest)


Rate this post
useful
not useful
Bob Paddock wrote:
> I am looking for simple working example code for the AT91SAM7S-EK
> board that has the AT91SAM7S256 part mounted.
>
> I have tried to update the example files (Makefile, board.h, linker
> script etc.)  in the WinARM distribution, that where written for the
> S64 part.  Alas they do not run, so I don't know where I am going
> wrong.  I could figure that out if I had a working example that simply
> blinked a LED for the S256 on the EK board.
>
> Does anyone have such code?

Please see
http://www.siwawi.arubi.uni-kl.de/avr_projects/arm_projects/index_at91.html#at91sam7s256_ld

On my board there is still an AT91SAM7S64 and I do not own a "new" one.
But Ewout Boks provided modified version of the linker-scripts which he
has tested with his board.

Martin Thomas

von Bob P. (gracei)


Rate this post
useful
not useful
> Please see
> 
http://www.siwawi.arubi.uni-kl.de/avr_projects/arm_projects/index_at91.html#at91sam7s256_ld

Thank you.  I had already loaded those, but I did not notice
the note about the Keil vs Atmel samples.

I switched to trying the

\WinARM\examples\at91sam7s64_Atmel_example

that is based on the Atmel examples (Split C/ASM startup).

After I added the 'volatile' key word to the wait() function,
the example worked just fine.  With out 'volatile' the busy
loop was optimized away, and all of the LEDs are lit
no mater what you do to the buttons.

static void wait ( void )
{//* Begin
  volatile unsigned int waiting_time ; /* Added 'volatile' */

  change_speed () ;

  for(waiting_time = 0; waiting_time < LedSpeed; waiting_time++)
    ;
}//* End

BTW this example still has the Makefile bug that creates
main.hex when making binary output files.

Thank you for WinARM.

Please log in before posting. Registration is free and takes only a minute.
Existing account
Do you have a Google/GoogleMail account? No registration required!
Log in with Google account
No account? Register here.