[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RE: [avr-gcc-list] Strings and structures in program memory
From: |
Eric Weddington |
Subject: |
RE: [avr-gcc-list] Strings and structures in program memory |
Date: |
Fri, 01 Dec 2006 12:02:07 -0700 |
Unfortunately, no. That's why it is a FAQ. ;-)
Eric Weddington
> -----Original Message-----
> From:
> address@hidden
> [mailto:address@hidden
> org] On Behalf Of Trampas
> Sent: Friday, December 01, 2006 11:59 AM
> To: 'AVR GCC List'
> Subject: RE: [avr-gcc-list] Strings and structures in program memory
>
> Thanks for the information. Is there anyway to do this
> without declaring
> each string external from the array?
>
> Trampas
>
> -----Original Message-----
> From: Eric Weddington [mailto:address@hidden
> Sent: Friday, December 01, 2006 11:55 AM
> To: 'Trampas'; 'AVR GCC List'
> Subject: RE: [avr-gcc-list] Strings and structures in program memory
>
>
> Avr-libc FAQ #14:
> <http://www.nongnu.org/avr-libc/user-manual/FAQ.html#faq_rom_array>
>
>
> > -----Original Message-----
> > From:
> > address@hidden
> > [mailto:address@hidden
> > org] On Behalf Of Trampas
> > Sent: Friday, December 01, 2006 9:43 AM
> > To: 'AVR GCC List'
> > Subject: [avr-gcc-list] Strings and structures in program memory
> >
> > I am trying to create a simple command processor and was
> > trying to figure out how to get strings and even the commands
> > structure to live and operate from program memory. Can anyone
> > show me how to do this?
> >
> >
> >
> > #define COMMAND(NAME, help) { PSTR( #NAME ), NAME ## _cmd,
> > PSTR( help ) }
> >
> >
> >
> > //Command structure
> >
> > struct Command
> >
> > {
> >
> > PSTR name;
> >
> > int (*function) (int, char **);
> >
> > PSTR help;
> >
> > };
> >
> >
> >
> > //Prototypes
> >
> > int help_cmd(int, char **);
> >
> > int exit_cmd(int, char **);
> >
> >
> >
> > //List of supported commands
> >
> > struct Command commands[] =
> >
> > {
> >
> > {PSTR("help"), help_cmd, PSTR("help")}, //COMMAND
> > (help, "Prints this message"),
> >
> > {PSTR("exit"), exit_cmd, PSTR("exit")},//COMMAND
> > (exit, "Exits command mode"),
> >
> > {PSTR(""),0,PSTR("")}, //End of list signal
> >
> > };
> >
> >
> >
> > Then to parse commands I was trying:
> >
> >
> >
> > //now let's parse the command
> >
> > i=0;
> >
> > while(strlen_P(commands[i].name)!=0)
> >
> > {
> >
> > if (strcmp_P(buff,commands[i].name)==0)
> >
> > return
> > (*commands[i].function)(numArgs,ptrArgv);
> >
> > i=i+1;
> >
> > }
> >
> >
> >
> > However this does not seem to work.
> >
> >
> >
> > Thanks
> >
> > Trampas
> >
> >
> >
> >
> >
> >
>
>
>
> _______________________________________________
> AVR-GCC-list mailing list
> address@hidden
> http://lists.nongnu.org/mailman/listinfo/avr-gcc-list
>