Yahoo Groups archive

AVR-Chat

Index last updated: 2026-04-28 22:41 UTC

Message

How To: declare an array of pointers in flash pointing to character arrays in flash

2006-03-07 by Chuck Hackett

I'm attempting to convert the AVR Butterfly demo program to WinAVR from Atmel's
CodeVision version.  The program currently contains something like:

__flash char foo_1[] =   { 0, 1 };
__flash char foo_2[] =   { 2, 3 };

__flash char __flash *foobar[] = { foo_1, foo_2 };


I'm trying to create the gcc equivalent.  Studying avr-libc documentation: a
start is:

#include <avr/pgmspace.h>

prog_char foo_1[] =   { 0, 1 };
prog_char foo_2[] =   { 2, 3 };

<the puzzle> foobar[] = { foo_1, foo_2 };

But I haven't figured out <the puzzle>


While I'm at it:  Is there a good web resource for (finally) learning about the
details of more complex array and pointer declarations (arrays of pointers to
functions, arrays of pointers to arrays of yada, yada ....).  I have never
gotten this stuff "clear" in my head so that I can deal with these things
without researching it. ... the bulb has just never come on full brightness on
this subject :-) 

Thanks in advance for your help ...

Cheers,

Chuck Hackett
"Good judgment comes from experience, experience comes from bad judgment"
7.5" gauge Union Pacific Northern (4-8-4) 844
http://www.whitetrout.net/Chuck

Attachments

Move to quarantaine

This moves the raw source file on disk only. The archive index is not changed automatically, so you still need to run a manual refresh afterward.