Skocz do zawartości

Eclipse photon - upierdliwy syntax error


_LM_

Pomocna odpowiedź

Taki prosty kod:

#include <avr/io.h>
#include <avr/pgmspace.h>

const __flash char tab[] = "test";

int main(void)
{
	for(;;);
}

Kompiluje się ekstra, ale w edytorze mam wciąż błąd składni który nawet nie jest opisany:

eclipse_veC96joaj3.thumb.png.2ad8785b4cefa3a899dcf2c3e0105161.png

Zaś konsolka jest czysta

22:01:15 **** Incremental Build of configuration Release for project constFlasz ****
make all 
'Building file: ../main.c'
'Invoking: AVR Compiler'
avr-gcc -Wall -Os -fpack-struct -fshort-enums -ffunction-sections -fdata-sections -std=gnu99 -funsigned-char -funsigned-bitfields -mmcu=atmega16 -DF_CPU=1000000UL -MMD -MP -MF"main.d" -MT"main.o" -c -o "main.o" "../main.c"
'Finished building: ../main.c'
' '
'Building target: constFlasz.elf'
'Invoking: AVR C Linker'
avr-gcc -Wl,-Map,constFlasz.map -mmcu=atmega16 -o "constFlasz.elf"  ./main.o   
'Finished building target: constFlasz.elf'
' '
'Invoking: AVR Create Extended Listing'
avr-objdump -h -S constFlasz.elf  >"constFlasz.lss"
'Finished building: constFlasz.lss'
' '
'Create Flash image (ihex format)'
avr-objcopy -R .eeprom -R .fuse -R .lock -R .signature -O ihex constFlasz.elf  "constFlasz.hex"
'Finished building: constFlasz.hex'
' '
'Create eeprom image (ihex format)'
avr-objcopy -j .eeprom --no-change-warnings --change-section-lma .eeprom=0 -O ihex constFlasz.elf  "constFlasz.eep"
'Finished building: constFlasz.eep'
' '
'Invoking: Print Size'
avr-size --format=avr --mcu=atmega16 constFlasz.elf
AVR Memory Usage
----------------
Device: atmega16

Program:     114 bytes (0.7% Full)
(.text + .data + .bootloader)

Data:          0 bytes (0.0% Full)
(.data + .bss + .noinit)


'Finished building: sizedummy'
' '

22:01:16 Build Finished. 0 errors, 0 warnings. (took 1s.344ms)

Ma ktoś pomysł jak wyłączyć tego syntaxa?

 

 

Link do komentarza
Share on other sites

(edytowany)

Nie mam Eclipse, ale może zadziała sztuczka z wirutalnymi makrami?

Robisz makro, które rozwija się do czegoś, co w danym miejscu jest dozwolone, ale nie wpływa na kod. Umieszczasz je w specjalnym pliku nagłówkowym, co by móc je wyłączyć w kompilacji (oczywiście w IntelliSense musi działać).

Wtedy IntelliSense powinien podłapać, że jest to makro i je rozwinąć, a kompilator zignorować i przetworzyć właściwy atrybut.

Edytowano przez H1M4W4R1
Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

No 🙂 to był ten moment że wiedziałem że gdzieś jest rozwiązanie ale nie mogłem skojarzyć gdzie. Niestety to wygenerowało mi inne problemy związane ze wskaźnikami we flash. Ale to jak już wyczerpią się wszystkie możliwości będę pytał. 

Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.