Accessing to program memmory pgmstate / lpm

  1. I get a warning : only initialized variables can be placed into program memory area (Of course, the table is initialized!)

I think the warning is bogus. If I enable warnings for code that uses program memory I get it too.

Look in pgmspace.h for macros for accessing program memory. Although I don't think, as a general rule, that using assembler gains you anything. The code generated from C is usually just as good.

Well, when read_far should be used?

It looks like, if you have more than 64 Kb of flash.