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

 
 
> ошибка в 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
 
Start new topic
Ответов
demiurg_spb
сообщение Feb 3 2009, 20:50
Сообщение #2


неотягощённый злом
******

Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643



К сожалению, подсказать Вам мне нечего, но примерно пол-года назад проскакивала проблема с prog_char в С++ и её вроде как решили.
Может это на что-то вас наведёт...


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 31st July 2025 - 20:10
Рейтинг@Mail.ru


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