Closed Bentancy closed 6 years ago
It seems that __flash
specifier is not supported by g++; https://www.avrfreaks.net/forum/avr-g-lacks-flash and needs a workaround.
The rest will also be fixed soon.
Thanks for the quick response. For the "__flash" issue would this help?https://www.microchip.com/webdoc/AVRLibcReferenceManual/porting_1iar_porting_flash.html
Waiting eagerly for the update ... ...
Actually __flash pointers are supported by gcc (C compiler) and it generates less bloat than pgm_read* functions. Since it is used internally it can be just hidden from c++ compiler.
Might need to be reopened, in case that arduino passes c files to g++ compiler
The "__flash" issue is resolved but hit new error.
Arduino: 1.8.5 (Windows 7), Board: "Arduino/Genuino Uno"
C:\Users\TeleRadio\Documents\Arduino\libraries\RFM7x-lib-master\rfm7x_hardware.c: In function 'rfm7x_io_init':
C:\Users\TeleRadio\Documents\Arduino\libraries\RFM7x-lib-master\rfm7x_hardware.c:14:2: warning: implicit declaration of function 'digitalWrite' [-Wimplicit-function-declaration]
RFM7x_CSN_HI;
^
In file included from C:\Users\TeleRadio\Documents\Arduino\libraries\RFM7x-lib-master\rfm7x_hardware.c:10:0:
C:\Users\TeleRadio\Documents\Arduino\libraries\RFM7x-lib-master\rfm7x_hardware.h:12:40: error: 'HIGH' undeclared (first use in this function)
^
C:\Users\TeleRadio\Documents\Arduino\libraries\RFM7x-lib-master\rfm7x_hardware.c:14:2: note: in expansion of macro 'RFM7x_CSN_HI'
RFM7x_CSN_HI;
^
C:\Users\TeleRadio\Documents\Arduino\libraries\RFM7x-lib-master\rfm7x_hardware.h:12:40: note: each undeclared identifier is reported only once for each function it appears in
^
C:\Users\TeleRadio\Documents\Arduino\libraries\RFM7x-lib-master\rfm7x_hardware.c:14:2: note: in expansion of macro 'RFM7x_CSN_HI'
RFM7x_CSN_HI;
^
C:\Users\TeleRadio\Documents\Arduino\libraries\RFM7x-lib-master\rfm7x_hardware.h:14:39: error: 'LOW' undeclared (first use in this function)
^
C:\Users\TeleRadio\Documents\Arduino\libraries\RFM7x-lib-master\rfm7x_hardware.c:15:2: note: in expansion of macro 'RFM7x_CE_LOW'
RFM7x_CE_LOW;
^
C:\Users\TeleRadio\Documents\Arduino\libraries\RFM7x-lib-master\rfm7x_hardware.c:30:2: warning: implicit declaration of function 'pinMode' [-Wimplicit-function-declaration]
pinMode(9,OUTPUT); // ce
^
C:\Users\TeleRadio\Documents\Arduino\libraries\RFM7x-lib-master\rfm7x_hardware.c:30:12: error: 'OUTPUT' undeclared (first use in this function)
pinMode(9,OUTPUT); // ce
^
C:\Users\TeleRadio\Documents\Arduino\libraries\RFM7x-lib-master\rfm7x_hardware.c:17:0: error: unterminated #else
^
C:\Users\TeleRadio\Documents\Arduino\libraries\RFM7x-lib-master\rfm7x_hardware.c:31:2: error: expected declaration or statement at end of input
pinMode(10,OUTPUT); //csn
^
exit status 1 Error compiling for board Arduino/Genuino Uno.
This report would have more information with "Show verbose output during compilation" option enabled in File -> Preferences.
should be fixed now
Hi:
There is an error in the name rfm_io_init(); // hardcoded in rfm7x_hardware.h
I check the rfm7x_hardware.h and found that the name should be rfm7x_io_init().
I hit the following list of error when compiling the RF24.ino from your example.
Arduino: 1.8.5 (Windows 7), Board: "Arduino/Genuino Uno"
In file included from C:\Users\TeleRadio\Documents\Arduino\libraries\RFM7x-lib-master\examples\Arduino workaround\RF24\RF24.ino:15:0:
C:\Users\TeleRadio\Documents\Arduino\libraries\RFM7x-lib-master/rfm7x.h:537:49: error: '__flash' does not name a type
void rfm7x_cmd_buff_write_P(uint8_t reg, const __flash uint8_t* buff, uint8_t len);
C:\Users\TeleRadio\Documents\Arduino\libraries\RFM7x-lib-master/rfm7x.h:537:64: error: expected ',' or '...' before '*' token
void rfm7x_cmd_buff_write_P(uint8_t reg, const __flash uint8_t* buff, uint8_t len);
In file included from C:\Users\TeleRadio\Documents\Arduino\libraries\RFM7x-lib-master/rfm7x.h:11:0,
C:\Users\TeleRadio\Documents\Arduino\libraries\RFM7x-lib-master/rfm7x.h: In function 'void rfm7x_mode_standby()':
C:\Users\TeleRadio\Documents\Arduino\libraries\RFM7x-lib-master/rfm7x_hardware.h:14:42: error: 'DigitalWrite' was not declared in this scope
define RFM7x_CE_LOW DigitalWrite(9, LOW)
C:\Users\TeleRadio\Documents\Arduino\libraries\RFM7x-lib-master/rfm7x.h:548:40: note: in expansion of macro 'RFM7x_CE_LOW'
inline void rfm7x_mode_standby(void) { RFM7x_CE_LOW; }
C:\Users\TeleRadio\Documents\Arduino\libraries\RFM7x-lib-master\examples\Arduino workaround\RF24\RF24.ino: In function 'void setup()':
RF24:23: error: 'rfm_io_init' was not declared in this scope
rfm_io_init(); // hardcoded in rfm7x_hardware.h
C:\Users\TeleRadio\Documents\Arduino\libraries\RFM7x-lib-master\examples\Arduino workaround\RF24\RF24.ino: In function 'void loop()':
C:\Users\TeleRadio\Documents\Arduino\libraries\RFM7x-lib-master\examples\Arduino workaround\RF24\RF24.ino:46:50: warning: invalid conversion from 'int' to 'const void*' [-fpermissive]
bool ok = radio.write(message_count, sizeof(int));
In file included from C:\Users\TeleRadio\Documents\Arduino\libraries\RFM7x-lib-master\examples\Arduino workaround\RF24\RF24.ino:12:0:
C:\Users\TeleRadio\Documents\Arduino\libraries\RF24-master/RF24.h:281:8: note: initializing argument 1 of 'bool RF24::write(const void*, uint8_t)'
bool write( const void* buf, uint8_t len );
C:\Users\TeleRadio\Documents\Arduino\libraries\RFM7x-lib-master\examples\Arduino workaround\RF24\RF24.ino:51:53: warning: invalid conversion from 'int' to 'const void*' [-fpermissive]
radio.writeAckPayload(1, message_count, sizeof(int));
In file included from C:\Users\TeleRadio\Documents\Arduino\libraries\RFM7x-lib-master\examples\Arduino workaround\RF24\RF24.ino:12:0:
C:\Users\TeleRadio\Documents\Arduino\libraries\RF24-master/RF24.h:589:8: note: initializing argument 2 of 'void RF24::writeAckPayload(uint8_t, const void*, uint8_t)'
void writeAckPayload(uint8_t pipe, const void* buf, uint8_t len);
exit status 1 'rfm_io_init' was not declared in this scope
This report would have more information with "Show verbose output during compilation" option enabled in File -> Preferences.