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

 
 
3 страниц V  < 1 2 3  
Reply to this topicStart new topic
> WinAVR - проблема с секциями в ld, warning: allocated section `.data' not in segment
singlskv
сообщение Mar 15 2008, 17:07
Сообщение #31


дятел
*****

Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065



Цитата(amw @ Mar 15 2008, 11:59) *
А вот это не то что Вам надо?
Да, так у меня тоже все получилось, спасибо, теперь ясно как делать кошерно...

только ИМХО нужно чуть поменять в MEMORY:
MEMORY
{
text (rx) : ORIGIN = 0, LENGTH = 0x17F4
data (rw!x) : ORIGIN = 0x800071, LENGTH = 1024-17
eeprom (rw!x) : ORIGIN = 0x810000, LENGTH = 512
}

для того чтобы при перерасходе секции data линкер нам об этом сообщал.
Go to the top of the page
 
+Quote Post
ReAl
сообщение Mar 16 2008, 20:26
Сообщение #32


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

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



Цитата(Сергей Борщ @ Mar 14 2008, 14:00) *
А вот родилась мысль - может они хотели сделать быстрое копирование, копируя по два байта за каждый проход цикла? Или может так оно и было когда-то, но потом отказались, а это выравнивание - рудимент?
Хм... Как раз на днях макет один начал делать, для серии - зашивает тестовую програму в изделие, дёргает за разные ноги, то-сё, потом зашивает рабочую программу. Это всё без компа работать будет (точнее, прошивки от него получать, на тему серийных номеров общаться оно будет, но там свой контроллер в стенде и он будет шить).
Ну так вот забыл уже, что avreal-то давно уже при неполном слове в .hex для флеша от себя добавляет недостающий байт 0xFF.
А для стенда писал из головы, там не надо сильно много всего, проще было заново. Нарвался на то, что в доп. секции во флеше с серийным номером и калибровочными константами, имеющей нечётное число байт - последний байт не записывается во флеш. Тут-то и вспомнил, что в avreal-е сделано дописывание от себя до полного слова. Ну, для данной задачи было проще в линкерном скрипте для секции .cfg добавить .=ALIGN(2); чем усложнять программу макета wink.gif

А секция .data летит в .hex и при её нечётной длине в хексе какой-то программатор может и обломиться (у AVR по программирования флеша сделано с временным байтовым регистром и если не записать старший байт, то всё слово в буфер страницы не пойдёт, если не писать младший, только старший - то в данном слове продублируется младший из предыдущего слова).


--------------------
Ну, я пошёл… Если что – звоните…
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Mar 17 2008, 16:11
Сообщение #33


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Цитата(Сергей Борщ @ Mar 12 2008, 18:36) *
Массив определяю в программе в отдельную секцию:
Код
uint8_t Buffer[5] __attribute__((section("buffer"),used));


Хоть проблема уже вроде бы решена smile.gif

Читал мануал, наткнулся на такое:

Цитата
Use the section attribute with an initialized definition of a global variable, as shown in the example. GCC issues a warning and otherwise ignores the section attribute in uninitialized variable declarations.


Это интересно?


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Mar 17 2008, 20:03
Сообщение #34


Гуру
******

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



Цитата(AHTOXA @ Mar 17 2008, 18:11) *
Это интересно?
Да, это действительно интересно. Только не стыкуется пока с наблюдаемым поведением avr-gcc.
Цитата
билет на трамвае к А стоит дешевле чем на автобусе к В....
обдумать
smile.gif


--------------------
На любой вопрос даю любой ответ
"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

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

 


RSS Текстовая версия Сейчас: 30th August 2025 - 16:07
Рейтинг@Mail.ru


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