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

 
 
> WinAVR криво собирает код...
Spider
сообщение Apr 4 2009, 16:03
Сообщение #1


В поисках истины
***

Группа: Свой
Сообщений: 431
Регистрация: 7-01-06
Из: Россия
Пользователь №: 12 923



Писал себе и писал прошивку и вдруг в один прекрасный момент она начала собираться "криво" и откатить назад не получается. Всё пропало. Помогите, что я натворил то?
А именно кривость проявляется в следующем. если после сборки открыть и посмотреть листинг вокруг строки sei(); перед циклом майна. То там какие-то хаотические куски кода, на которых проц то делает переполнение то ребутится. В общем ведёт себя неадекватно, а в main.c этого кода нет. Точнее есть но не в этом месте.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Сергей Борщ
сообщение Apr 7 2009, 06:52
Сообщение #2


Гуру
******

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



Цитата(ARV @ Apr 7 2009, 08:25) *
Было бы просто замечательно, если бы кто-то из глубоко вникших в AVR-GCC, посоветовал, как отключить (избежать, обойти) эту фичу с переходами "вне пространства адресов".
Цитата(ReAl @ Apr 6 2009, 18:46) *
2) -mno-wrap


--------------------
На любой вопрос даю любой ответ
"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
ARV
сообщение Apr 7 2009, 15:55
Сообщение #3


Профессионал
*****

Группа: Свой
Сообщений: 1 143
Регистрация: 30-09-08
Из: Новочеркасск
Пользователь №: 40 581



Уважаемый Сергей Борщ!
Я прочитал в документации про опцию -mno-wrap - это, как я надеялся, и есть решение проблемы. НО! я так и не смог ею воспользоваться! не смотря на то, что вызов avr-gcc.exe --target-help подтверждает поддержку этой опции, компиляция всегда завершается ошибкой:
Цитата
make all
Building file: ../bground.c
Invoking: AVR Compiler
avr-gcc -Wall -g3 -Os -fpack-struct -fshort-enums -std=gnu99 -funsigned-char -funsigned-bitfields -mno-wrap -mmcu=atmega8 -DF_CPU=8000000UL -MMD -MP -MF"bground.d" -MT"bground.d" -c -o"bground.o" "../bground.c"
cc1.exe: error: unrecognized command line option "-mno-wrap"
make: *** [bground.o] Error 1
не будете ли вы так любезны пояснить, в чем мое заблуждение?

P.S. работаю с WinAVR 20091303


--------------------
Я бы взял частями... но мне надо сразу.
Go to the top of the page
 
+Quote Post
ReAl
сообщение Apr 7 2009, 16:58
Сообщение #4


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

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



Цитата(ARV @ Apr 7 2009, 18:55) *
Я прочитал в документации про опцию -mno-wrap - это, как я надеялся, и есть решение проблемы. НО! я так и не смог ею воспользоваться! не смотря на то, что вызов avr-gcc.exe --target-help подтверждает поддержку этой опции, компиляция всегда завершается ошибкой:
Вообще-то это ключ ассемблера, в мануалах он описан в binutils/as

-mmcu= пробрасывается из gcc всем вызываемым проходам, видать и этот тоже, хотя он нужен только ассемблеру, так что надо явно указать -Wa,-mno-wrap

Возможно, без этого ключа ассемблер форимрует такую запись в объектнике, что линкер после вычисления разности текущего адреса и адреса перехода игнорирует не влазящие в поле смещения в команде биты, если они все единички, т.е. если "сворачивание" проходит. А с этим ключом такого не делает и линкер ругается на превышение диапазона.
Я не разбирался, так как для меня эта тема не актуальна.


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

Сообщений в этой теме
- Alexey Belyaev   WinAVR криво собирает код...   Apr 4 2009, 16:03
- - SysRq   Да вроде бы в этом куске кода GCC как обычно распи...   Apr 4 2009, 20:03
- - Alexey Belyaev   А можете дать результат сборки вашей? lss и hex...   Apr 4 2009, 20:15
|- - SysRq   Цитата(Alexey Belyaev @ Apr 5 2009, 00:15...   Apr 4 2009, 20:30
- - Alexey Belyaev   Но всё же какой-то косяк... К примеру вот такой ls...   Apr 6 2009, 04:06
|- - _Pasha   Цитата(Alexey Belyaev @ Apr 6 2009, 07:06...   Apr 6 2009, 05:44
||- - Alexey Belyaev   Цитата(_Pasha @ Apr 6 2009, 12:44) Вероят...   Apr 6 2009, 05:56
||- - _Pasha   Цитата(Alexey Belyaev @ Apr 6 2009, 08:56...   Apr 6 2009, 06:10
||- - Alexey Belyaev   Цитата(_Pasha @ Apr 6 2009, 13:10) Дык по...   Apr 6 2009, 08:42
|- - Сергей Борщ   Цитата(Alexey Belyaev @ Apr 6 2009, 07:06...   Apr 6 2009, 08:04
- - _Pasha   Скачал. Собрал. Посмотрел. Описанного глюка не был...   Apr 6 2009, 15:21
|- - ReAl   Цитата(_Pasha @ Apr 6 2009, 18:21) Неполе...   Apr 6 2009, 15:46
|- - Сергей Борщ   Цитата(_Pasha @ Apr 6 2009, 18:21) Неполе...   Apr 6 2009, 15:46
- - Alexey Belyaev   Спасибо за разъяснения. Будем продолжать учиться.   Apr 7 2009, 04:17
- - ARV   Было бы просто замечательно, если бы кто-то из глу...   Apr 7 2009, 05:25
- - _Pasha   Я б выбрал для симуляции другой камень типа м168, ...   Apr 7 2009, 06:06
|- - ARV   Цитата(ReAl @ Apr 7 2009, 20:58) Вообще-т...   Apr 7 2009, 17:48
|- - ReAl   Цитата(ARV @ Apr 7 2009, 20:48) если его ...   Apr 7 2009, 19:35
|- - _Pasha   Цитата(ReAl @ Apr 7 2009, 22:35) *) при т...   Apr 7 2009, 20:14
- - SysRq   ARV, а Proteus версии у вас какой? Пробегавший мим...   Apr 7 2009, 22:20
|- - _Pasha   Цитата(SysRq @ Apr 8 2009, 01:20) Т.е. ...   Apr 8 2009, 04:34
|- - SysRq   Цитата(_Pasha @ Apr 8 2009, 08:34) О чем ...   Apr 9 2009, 22:48
- - ARV   протеус у меня точно такой же. я активно применяю...   Apr 8 2009, 04:23
- - ARV   с -mno-wrap вообще странность какая-то... вот сейч...   Apr 8 2009, 05:14
|- - ReAl   Цитата(ARV @ Apr 8 2009, 08:14) -relax ус...   Apr 8 2009, 18:29
- - manul78   ... Народ !!! У меня еще прикольнее.....   Apr 8 2009, 18:43
|- - zltigo   Цитата(manul78 @ Apr 8 2009, 21:43) Атмег...   Apr 8 2009, 19:22
|- - Petka   Цитата(manul78 @ Apr 8 2009, 22:43) ... Н...   Apr 8 2009, 19:23
- - Rst7   Цитатаабстрактному среднему писателю GCC лишь-бы н...   Apr 8 2009, 20:12
- - manul78   Блин, у меня теперь еще интересней проблема ! ...   Apr 8 2009, 22:06
|- - Сергей Борщ   Цитата(manul78 @ Apr 9 2009, 01:06) C:...   Apr 9 2009, 07:41
|- - manul78   Цитата(Сергей Борщ @ Apr 9 2009, 11:41) П...   Apr 9 2009, 16:56
- - ARV   по поводу увеличения размера кода "свежими...   Apr 9 2009, 05:57
|- - _Pasha   Цитата(ARV @ Apr 9 2009, 08:57) и вот в п...   Apr 9 2009, 06:17
|- - ReAl   Цитата(ARV @ Apr 9 2009, 08:57) раньше, н...   Apr 9 2009, 07:29
- - ARV   "старый" - это какой-то старый я всегда...   Apr 9 2009, 07:42
- - ARV   и все-таки, почему никто из гуру не ответит на воп...   Apr 9 2009, 09:57
- - Nick_Shl   А я столкнулся с таким глюком: есть бутлоадер с эм...   Apr 9 2009, 18:45
- - aesok   Цитата(Nick_Shl @ Apr 9 2009, 22:45) А я ...   Apr 9 2009, 19:32
|- - Nick_Shl   Цитата(aesok @ Apr 9 2009, 21:32) Вот ЭТО...   Apr 9 2009, 20:06
|- - aesok   Цитата(aesok @ Apr 9 2009, 23:32) Вот ЭТО...   Apr 9 2009, 20:38
|- - Nick_Shl   Цитата(aesok @ Apr 9 2009, 22:38) Если re...   Apr 9 2009, 21:17
- - _Pasha   Цитата(Nick_Shl @ Apr 9 2009, 21:45) А я ...   Apr 10 2009, 00:03
- - Nick_Shl   Цитата(_Pasha @ Apr 10 2009, 02:03) Заинт...   Apr 10 2009, 04:23


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

 


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


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