реклама на сайте
подробности

 
 
> ошибка в avr-gcc
ReAl
сообщение Feb 3 2009, 18:50
Сообщение #1


Нечётный пользователь.
******

Группа: Свой
Сообщений: 2 033
Регистрация: 26-05-05
Из: Бровари, Україна
Пользователь №: 5 417



как это ни странно, в верхних двух десятках тем не нашёл подходящей ;-)

Странная ошибка в avr-gcc при занесении переменных в program memory в режиме компиляции C++
Сборки WinAVR-20081205 (4.3.2) и kgp-20081223/1227 (4.4.0) помещают переменные prog_uint8_t в .data

Код
#include <avr/pgmspace.h>

extern const prog_uint8_t runa1 = 0x04;

prog_uint8_t runa2 = 0x0A;


Код
  85                   .global    runa1
  86                       .section    .rodata.runa1,"a",@progbits
  89                   runa1:
  90 0000 04                .byte    4
  98                   .global    runa2
  99                       .section    .data.runa2,"aw",@progbits
101                   runa2:
102 0000 0A                .byte    10


В режиме компиляции С - всё нормально.
В режиме С++ никакие extern "C" не помогают.
Если же объявить так

Код
const uint8_t runa1 PROGMEM = 0x04;
const uint8_t runa2 PROGMEM = 0x0A;

то и в режиме С++ всё нормально.

В WinAVR-20071221 (4.2.2) этой ошибки нет


--------------------
Ну, я пошёл… Если что – звоните…
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 22:37
Рейтинг@Mail.ru


Страница сгенерированна за 0.02075 секунд с 7
ELECTRONIX ©2004-2016