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

 
 
2 страниц V  < 1 2  
Reply to this topicStart new topic
> Запись в EEPROM, пишу структуру, а попадает содержимое flash'a
Сергей Борщ
сообщение Mar 4 2010, 11:44
Сообщение #16


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(GoodNews @ Mar 4 2010, 13:20) *
А вот по поводу массива в структуре - потом просто взять определить массив отдельно как и в моём случае, только работать уже с полем? Т.е settings_t chan.Channel[] EEMEM = {...};
и соответственно settings_t nchan.Next_free_channel = {...};
Нет, определяете сразу всю структуру:
Код
settings_t EEMEM chan =
{   // структура
    {  // массив
        0,  // Channel[0]
        0,  // Channel[1]
        0,  // Channel[2]
        ...
        0,  // Channel[49]
    },
    
    12345;  // Free channel
};

Кстати, если можно не указывать явно последние нулевые элементы массива:
Код
settings_t EEMEM chan =
{   // структура
    {  // массив
        123,  // Channel[0]
        // все остальные элементы - нули
    },
    12345;  // Free channel
};

Цитата(GoodNews @ Mar 4 2010, 13:20) *
Кстати, *_t разве не зарезервировано под формат данных?
Нет. Просто один из многих стилей кодирования предполагает, что на _t оканчиваются названия новых (невстроенных) типов.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
GoodNews
сообщение Mar 4 2010, 13:09
Сообщение #17


Частый гость
**

Группа: Участник
Сообщений: 88
Регистрация: 12-01-09
Из: Minsk (BY)
Пользователь №: 43 259



В общем что-то получилось (всмысле компилятор пока не ругался на ошибки). Попробую вечером залить прошивку - посмотрю что творится в памяти. Спасибо за терпение!

P.S. - а где посмотреть по поводу новой версии avr-gcc?

Сообщение отредактировал GoodNews - Mar 4 2010, 13:34
Прикрепленные файлы
Прикрепленный файл  mem.rar ( 1.16 килобайт ) Кол-во скачиваний: 20
 
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Mar 4 2010, 13:37
Сообщение #18


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(GoodNews @ Mar 4 2010, 15:09) *
P.S. - а где посмотреть по поводу новой версии avr-gcc?
Про avr-gcc - нигде. Про 5 версию самого gcc где-то то ли на avrfreaks, то ли в списке рассылки avr-libc пробегала ссылка на обрывки переписки разработчиков, если память не изменяет. Сейчас и не найду уже.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение May 19 2010, 14:53
Сообщение #19


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(Сергей Борщ @ Mar 4 2010, 16:37) *
Про 5 версию самого gcc где-то то ли на avrfreaks, то ли в списке рассылки avr-libc пробегала ссылка на обрывки переписки разработчиков, если память не изменяет. Сейчас и не найду уже.
Случайно наткнулся. Оказывается, уже можно добавлять поддержку разных адресных пространств в gcc: 17.30 Adding support for named address spaces
Остается надеяться, что скоро pgm_read_byte и подобное останется только для совместимости со старыми исходниками.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post

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

 


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


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