Stu Bell wrote: > On the other hand, the original "program space data" commands (from > pgmspace.h) do have a limitation on 64K bytes, _but_ with the newer > processors they support the ELPM commands that can address all of flash. > Of course, you then have the problem of generating a pointer to it. For > that, I use the GET_FAR_ADDRESS(var) function from the morepgmspace.h > file by Carlos Lamas -- It may be in avr-libc (he was supposed to > contribute it), but if not, email me directly and I'll send you a copy. > It's got the same license as avr-libc.
This brings up an interesting point. I did see that the *_P functions require strings in the lower 64K, since they do not use ELPM. However, I note the pgm_read_*_far functions are available. Though it looks like GET_FAR_ADDRESS would be required to get the address. My previous projects (work related) used the ImageCraft compiler, and they have a host of functions, such a cmemcpy, cstrcpy, etc, that are similar to the *_P functions. But they also have cmemcpyx, cstrcpyx, etc, that use ELPM instead. Is there similar work considered for the *_P functions? Pete _______________________________________________ AVR-GCC-list mailing list [email protected] http://lists.nongnu.org/mailman/listinfo/avr-gcc-list
