X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=mware%2Fpgm.h;h=eebe87fe1107a8a716f5ce63632a5303759d82e5;hb=f5207bd1f7e86dccc484802550cb1e53bb403c50;hp=8f5b878d954e1286a4fa5d94a69671ab9d5845fe;hpb=304ab6d368e046801f9c6bab326bbb27f78cb875;p=bertos.git diff --git a/mware/pgm.h b/mware/pgm.h old mode 100755 new mode 100644 index 8f5b878d..eebe87fe --- a/mware/pgm.h +++ b/mware/pgm.h @@ -1,8 +1,33 @@ -/*! +/** * \file * * * \brief Support for reading program memory on Harvard architectures. @@ -22,9 +47,10 @@ #ifndef MWARE_PGM_H #define MWARE_PGM_H -#include #include /* For intXX_t */ -#include /* For CPU_HARVARD */ +#include +#include /* For CPU_HARVARD */ +#include /* For SIZEOF_INT */ #if CPU_AVR @@ -41,26 +67,6 @@ ); \ __result; \ }) - #if 0 // 128/103 - #define pgm_read_uint16_t(addr) \ - ({ \ - uint32_t __addr32 = (uint32_t)(addr); \ - uint16_t __result; \ - __asm__ \ - ( \ - "out %2, %C1" "\n\t" \ - "movw r30, %1" "\n\t" \ - "elpm %A0, Z+" "\n\t" \ - "elpm %B0, Z" "\n\t" \ - : "=r" (__result) \ - : "r" (__addr32), \ - "I" (_SFR_IO_ADDR(RAMPZ)) \ - : "r30", "r31" \ - ); \ - __result; \ - }) - #endif - #define pgm_read_uint16_t(addr) \ ({ \ uint16_t __addr16 = (uint16_t)(addr); \ @@ -92,32 +98,6 @@ ); \ __result; \ }) - #if 0 // 128/103 - #define pgm_read_uint16_t(addr) \ - ({ \ - uint32_t __addr32 = (uint32_t)(addr); \ - uint16_t __result; \ - __asm__ \ - ( \ - "out %2, %C1" "\n\t" \ - "mov r31, %B1" "\n\t" \ - "mov r30, %A1" "\n\t" \ - "elpm" "\n\t" \ - "mov %A0, r0" "\n\t" \ - "in r0, %2" "\n\t" \ - "adiw r30, 1" "\n\t" \ - "adc r0, __zero_reg__" "\n\t" \ - "out %2, r0" "\n\t" \ - "elpm" "\n\t" \ - "mov %B0, r0" "\n\t" \ - : "=r" (__result) \ - : "r" (__addr32), \ - "I" (_SFR_IO_ADDR(RAMPZ)) \ - : "r0", "r30", "r31" \ - ); \ - __result; \ - }) - #endif #define pgm_read_uint16_t(addr) \ ({ \ uint16_t __addr16 = (uint16_t)(addr); \ @@ -170,7 +150,7 @@ #define PROGMEM /* nothing */ #endif -/*! +/** * \name Types for variables stored in program memory (harvard processors). * \{ */ @@ -183,7 +163,7 @@ typedef PROGMEM int32_t pgm_int32_t; typedef PROGMEM uint32_t pgm_uint32_t; /*\}*/ -/*! +/** * \name PGM support macros. * * These macros enable dual compilation of code for both program