Moin zusammen, Pointer, __flash und co sind noch recht neu für mich und ich bin schon eine ganze Zeit am lesen. Manches klappt schon ganz gut, aber hier weiß ich nicht mehr weiter. Angefangen habe ich mal hiermit: https://www.mikrocontroller.net/articles/AVR-GCC-Tutorial#Flash_mit_flash_und_Embedded-C Mein Code sind in etwa so aus:
1 | void writestr_F(const __flash char *data_F) { |
2 | uint8_t r, i=0; |
3 | while ((r = data_F[i])) { |
4 | do_something(r); |
5 | i++; |
6 | } |
7 | } |
8 | |
9 | #define FSTR(X) ((const __flash char *) { X }) |
10 | |
11 | main() { |
12 | writestr_F(FSTR("print a string")); |
13 | } |
Ich bekomme jetzt aber diese Warnung:
1 | warning: conversion from address space 'generic' to address space '__flash' [-Waddr-space-convert] |
Grüße Nico