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

 
 
2 страниц V  < 1 2  
Reply to this topicStart new topic
> отладка кода в AVRStudio
Непомнящий Евген...
сообщение Nov 10 2008, 07:42
Сообщение #16


Знающий
****

Группа: Свой
Сообщений: 771
Регистрация: 16-07-07
Из: Волгодонск
Пользователь №: 29 153



Цитата(Foris @ Nov 10 2008, 09:08) *
Ну и совет ! Это будет ДРУГОЙ код и его тоже нужно отлаживать.


Ключевое слово тут - ПРАВИЛЬНО НАПИСАННОГО. Если код написан правильно - он корректен при любой оптимизации (и после компиляции на любом корректном компиляторе wink.gif )

Не так это может быть в ситуациях:
1. Код без оптимизации не укладывается в размер флэша
2. Код без оптимизации не проходит по времени
3. Программные задержки
4. Железно-специфичные вещи типа вачдога

В случаях 1 и 2 ничего сделать наверное нельзя (кроме отладки по кускам). Программные задержки - это обычно зло, там где критична их точность часто имеет смысл перейти на таймеры. Случаи 4 выносятся в отдельные модули или пишутся на асме.

Цитата(TechMike @ Nov 10 2008, 11:29) *
Просьба ткнуть в доку/статью по правильному написанию кода для под AVRStudio+WinAVR(GCC).


Попробуйте поискать в этом форуме по слову volatile. Была масса обсуждений. Часто грабли связаны именно с отсутствием этого квалификатора.
Go to the top of the page
 
+Quote Post
Aleksandr Barano...
сообщение Nov 10 2008, 15:33
Сообщение #17


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

Группа: Участник
Сообщений: 169
Регистрация: 31-08-05
Из: New York
Пользователь №: 8 118



ИМХО: Если "Код без оптимизации не укладывается в размер флэша", значит неверно выбран микроконтроллер.


--------------------
ASB
Go to the top of the page
 
+Quote Post
Qwertty
сообщение Nov 10 2008, 15:41
Сообщение #18


Местный
***

Группа: Свой
Сообщений: 408
Регистрация: 21-10-06
Из: Санкт-Петербург
Пользователь №: 21 527



Цитата(Aleksandr Baranov @ Nov 10 2008, 18:33) *
ИМХО: Если "Код без оптимизации не укладывается в размер флэша", значит неверно выбран микроконтроллер.

Скорее верно обратное. На небольших проектах оптимизатор способен сократить размер в два-три раза.
Go to the top of the page
 
+Quote Post
SasaVitebsk
сообщение Nov 11 2008, 09:46
Сообщение #19


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



Цитата(Aleksandr Baranov @ Nov 10 2008, 19:33) *
ИМХО: Если "Код без оптимизации не укладывается в размер флэша", значит неверно выбран микроконтроллер.

Ну не всегда. Вот живой пример.
Недавно отлаживал бутлоадер для кристаллов 8к. Размер должен был уложится в 1к. Где-то на финише хотел проверить правильность расчёта константы (макро+формулы). А соотнести оператор с асмом было сложновато за счёт максимальной оптимизации. Выключил оптимизацию (на константу - явно не влияет). Толку нет, так как код не влазит и результирующего файла нет. sad.gif

Плюнул - поискал прямо по листингу - нашёл практически сразу.

Вообще знание ассемблера однозначно помогает. Это справедливо для любого кристалла. Будь то AVR либо ARM. Да и вообще, любые дополнительные знания приносят только пользу. Вот только человек ограничен. Физически, умственно, по-времени, по-желаниям... smile.gif
Go to the top of the page
 
+Quote Post
TechMike
сообщение Nov 11 2008, 13:09
Сообщение #20


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

Группа: Свой
Сообщений: 130
Регистрация: 30-07-08
Из: Moscow
Пользователь №: 39 302



Цитата(Непомнящий Евгений @ Nov 10 2008, 10:42) *
В случаях 1 и 2 ничего сделать наверное нельзя (кроме отладки по кускам). Программные задержки - это обычно зло, там где критична их точность часто имеет смысл перейти на таймеры. Случаи 4 выносятся в отдельные модули или пишутся на асме.
Попробуйте поискать в этом форуме по слову volatile. Была масса обсуждений. Часто грабли связаны именно с отсутствием этого квалификатора.


Результат курения сайта по теме правильной оптимизации с GCC: внимательно читать в avr-libc FAQ.html
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 20th June 2025 - 18:29
Рейтинг@Mail.ru


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