On Friday 29 February 2008 15:40, Rick Altherr wrote: [...] > > Project 2. > > Use a set of high quality asm functions. This is not only > > space effective, also it is fast. Now the set of funtions is > > ready for test. Some efforts are needed to include into > > Avr-libc: I am not happy to do this manualy. > > I'm not certain which functions you would replace with asm. All of > the functions (both inline and in avr-libc) seem simple enough that > the compiler will do a reasonable job with them. The only > optimization I can see would be to eliminate the overhead of pushing > stack frames. Ultimately it would remove 2 stack setup/teardown pairs.
The original "eeprom.h" and the project 1 are not fast with block reading: test of ready and call/ret for each byte. In project 2 the core of all eeprom_read functions is only one function - asm read of block - speed as possible. To save space the other functions (word, dword) is used a mapping of common register to SRAM: only a few words per each extra function. The "eeprom.h" redefines names of functions in this variant: no any inlines for eeprom_read_word/dword/block. Note the project 2 differs only for reading, the burning is not needed in acceleration :-). Dmitry. _______________________________________________ AVR-libc-dev mailing list [email protected] http://lists.nongnu.org/mailman/listinfo/avr-libc-dev
