Easyelectronics.ru

Электроника для всех
Текущее время: 15 окт 2019, 06:55

Часовой пояс: UTC + 5 часов



JLCPCB – Прототипы печатных плат за $2/10pcs (Любой цвет!)
Крупнейший производитель печатных плат и прототипов. Более 600000 клиентов и свыше 10000 заказов в день!
Получите скидку на почтовую отправку при первом заказе в JLCPCB!

Начать новую тему Ответить на тему  [ Сообщений: 70 ]  На страницу 1, 2, 3  След.
Автор Сообщение
 Заголовок сообщения: WinAvr
СообщениеДобавлено: 05 июн 2010, 21:17 
Старожил
Аватара пользователя

Зарегистрирован: 29 янв 2010, 16:17
Сообщения: 716
Откуда: Смоленск
Народ, кто пользуется winavr подскажите, как заставить её генерировать и не удалять ассемблерный листинг? Заранее спасибо.

_________________
Enter or Escape? выбор есть всегда.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: WinAvr
СообщениеДобавлено: 06 июн 2010, 04:21 
Старожил
Аватара пользователя

Зарегистрирован: 29 янв 2010, 15:41
Сообщения: 1127
Откуда: Германия
hexFF писал(а):
Народ, кто пользуется winavr подскажите, как заставить её генерировать и не удалять ассемблерный листинг? Заранее спасибо.

для каждого компилируемого файла вот этот ключик
-save-temps
сохранит все временные файлы, а вот этот -
-Wa,-ahlms=file.lst
еще сгенерит именно лист файл file.lst с подробным описанием всего, чего он там нагенерил
Естественно, для каждого файла надо именно свое имя файла писать, что делает make.exe если команду саписать вот так:
-Wa,-ahlms=$(<:.c=.lst)

_________________
Мои поделки
http://www.fun-electronic.net/


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: WinAvr
СообщениеДобавлено: 06 июн 2010, 11:31 
Старожил
Аватара пользователя

Зарегистрирован: 29 янв 2010, 16:17
Сообщения: 716
Откуда: Смоленск
Не знаю, то ли я тупой, то ли лыжи не едут. Всё, что вышло- он собирает в один файл что в инклюдниках прописано, результату ноль

_________________
Enter or Escape? выбор есть всегда.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: WinAvr
СообщениеДобавлено: 06 июн 2010, 14:06 
Старожил
Аватара пользователя

Зарегистрирован: 29 янв 2010, 15:41
Сообщения: 1127
Откуда: Германия
hexFF писал(а):
Не знаю, то ли я тупой, то ли лыжи не едут. Всё, что вышло- он собирает в один файл что в инклюдниках прописано, результату ноль

А вы именно makefile пользуетесь? Или чем другим?
А то так сложно чего говорить.

Если makefiles, то попробуйте использовать один из моих makefile, из моих (пары последних) проектов.
Правда там есть один нюанс - надо иметь установленный cygwin и перл, так как там используется скрипт по автоматическому определению зависимостей от включаемых файлов. Но зато эти файлы уже не раз проверены и работают хорошо.

_________________
Мои поделки
http://www.fun-electronic.net/


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: WinAvr
СообщениеДобавлено: 06 июн 2010, 16:26 
Старожил
Аватара пользователя

Зарегистрирован: 29 янв 2010, 16:17
Сообщения: 716
Откуда: Смоленск
Спасибо, заработало!

_________________
Enter or Escape? выбор есть всегда.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: WinAvr
СообщениеДобавлено: 01 ноя 2010, 21:17 
Старожил
Аватара пользователя

Зарегистрирован: 10 апр 2010, 18:47
Сообщения: 2490
Откуда: Харьков
Пытаюсь разобраться с WinAVR.Толкового описания не нашел, поэтому куча вопросов. Вот выдал он мне после компиляции такое ... А где здесь размер кода?
Изображение
И что-то мне помнится, как-то раньше (с год назад уже пробовал) это окно имело другой вид и заполнение. Может в настойках что изменить надо??


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: WinAvr
СообщениеДобавлено: 01 ноя 2010, 21:27 
Супермодератор
Аватара пользователя

Зарегистрирован: 23 апр 2010, 12:58
Сообщения: 5893
Откуда: Москва/Саратов
А в последней строчке разве не оно?

_________________
http://d.64h.me/


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: WinAvr
СообщениеДобавлено: 01 ноя 2010, 21:32 
Старожил
Аватара пользователя

Зарегистрирован: 10 апр 2010, 18:47
Сообщения: 2490
Откуда: Харьков
dcoder писал(а):
А в последней строчке разве не оно?

Да там программа выводит всего одно-два слова на ЖКИ. Откуда там 7 килобайт может взяться??


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: WinAvr
СообщениеДобавлено: 01 ноя 2010, 22:06 
Супермодератор
Аватара пользователя

Зарегистрирован: 28 янв 2010, 05:47
Сообщения: 1031
Откуда: Винница
Надо где-то в настройках прописать чтобы оно выдавало размер через avr-size. Тогда оно будет выглядеть примерно так
Код:
Device: atmega168

Program:    3778 bytes (23.1% Full)
(.text + .data + .bootloader)

Data:         44 bytes (4.3% Full)
(.data + .bss + .noinit)

Где Program - размер прошивки, Data - размер срама, без учета стека.

_________________
Show


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: WinAvr
СообщениеДобавлено: 01 ноя 2010, 22:12 
Супермодератор
Аватара пользователя

Зарегистрирован: 23 апр 2010, 12:58
Сообщения: 5893
Откуда: Москва/Саратов
Цитата:
Да там программа выводит всего одно-два слова на ЖКИ. Откуда там 7 килобайт может взяться??


Как-то читал у Хальта, что программа выводящая на дисплей его ник заняла 6кБ (ЕМНИП). Там использовались стандартные библиотечные функции, отсюда и такой вес.

_________________
http://d.64h.me/


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: WinAvr
СообщениеДобавлено: 01 ноя 2010, 22:30 
Старожил
Аватара пользователя

Зарегистрирован: 10 апр 2010, 18:47
Сообщения: 2490
Откуда: Харьков
dcoder писал(а):


Как-то читал у Хальта, что программа выводящая на дисплей его ник заняла 6кБ (ЕМНИП). Там использовались стандартные библиотечные функции, отсюда и такой вес.

Вряд ли. Вон Xrayman выше дал правильное направление, но не могу найти, где эта фишка включается..


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: WinAvr
СообщениеДобавлено: 01 ноя 2010, 22:35 
Супермодератор
Аватара пользователя

Зарегистрирован: 23 апр 2010, 12:58
Сообщения: 5893
Откуда: Москва/Саратов
А сколько хекс весит?

_________________
http://d.64h.me/


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: WinAvr
СообщениеДобавлено: 01 ноя 2010, 22:40 
Старожил
Аватара пользователя

Зарегистрирован: 10 апр 2010, 18:47
Сообщения: 2490
Откуда: Харьков
dcoder писал(а):
А сколько хекс весит?

7,23 кБ..


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: WinAvr
СообщениеДобавлено: 01 ноя 2010, 22:41 
Супермодератор
Аватара пользователя

Зарегистрирован: 28 янв 2010, 05:47
Сообщения: 1031
Откуда: Винница
Ну, если размер хекса поделить на 2, то получится очень приблизительный размер программы.

_________________
Show


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: WinAvr
СообщениеДобавлено: 01 ноя 2010, 22:51 
Старожил
Аватара пользователя

Зарегистрирован: 10 апр 2010, 18:47
Сообщения: 2490
Откуда: Харьков
xrayman писал(а):
Ну, если размер хекса поделить на 2, то получится очень приблизительный размер программы.

Ни хх.. себе. Там и программы-то нет никакой..
Вложение:
Speedmtr.c [2.67 Кб]
Скачиваний: 390


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: WinAvr
СообщениеДобавлено: 04 ноя 2010, 03:33 
Заглядывает иногда
Аватара пользователя

Зарегистрирован: 27 янв 2010, 14:23
Сообщения: 127
Откуда: Нижний Новгород
R_ura писал(а):
Ни хх.. себе. Там и программы-то нет никакой..
_delay_loop_2() заюзал - получил библиотечную либу прицепом.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: WinAvr
СообщениеДобавлено: 04 ноя 2010, 09:36 
Старожил
Аватара пользователя

Зарегистрирован: 10 апр 2010, 18:47
Сообщения: 2490
Откуда: Харьков
Fill писал(а):
R_ura писал(а):
Ни хх.. себе. Там и программы-то нет никакой..
_delay_loop_2() заюзал - получил библиотечную либу прицепом.

Установил более новую версию WinAVR, в ней показывается размер кода. Программка другая, но не больше предыдущей.
Изображение
А _delay_loop_2(10000) добавила в код всего 8 байт, как видно..


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: WinAvr
СообщениеДобавлено: 06 ноя 2010, 19:37 
Старожил
Аватара пользователя

Зарегистрирован: 10 апр 2010, 18:47
Сообщения: 2490
Откуда: Харьков
Ув. коллеги, помогите с выводом на ЖКИ одно-двухбайтной переменной ( счетчика) .
Функцию sprintf просьба не предлагать ввиду немыслимого размера (около 1500 байт), itoa тоже не совсем правильная функция - десятки, сотни выводятся справа от единиц.
Может у кого есть готовая, для преобразования одно-двухбайтной переменной в строку? Или подскажите, как правильно написать..


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: WinAvr
СообщениеДобавлено: 06 ноя 2010, 20:14 
Супермодератор
Аватара пользователя

Зарегистрирован: 28 янв 2010, 05:47
Сообщения: 1031
Откуда: Винница
А выводить надо только положительные числа?

p.s. А чем плохо, что оно выводит десятки и т.д. справа? Надо дописать функцию, которая бы выводила на экран в обратной последовательности.

_________________
Show


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: WinAvr
СообщениеДобавлено: 06 ноя 2010, 20:20 
Старожил
Аватара пользователя

Зарегистрирован: 10 апр 2010, 18:47
Сообщения: 2490
Откуда: Харьков
xrayman писал(а):
А выводить надо только положительные числа?

Нет, знаковые тоже..
Я нашел из своей асмовской программы кусок кода, который все это делает, но х.з. как его прикрутить к Си, там же через Z, Y все делается, а здесь чистая абстракция..


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: WinAvr
СообщениеДобавлено: 06 ноя 2010, 20:22 
Супермодератор
Аватара пользователя

Зарегистрирован: 28 янв 2010, 05:47
Сообщения: 1031
Откуда: Винница
unsigned char len=strlen(str);

char *p=str+len-1;
for(unsigned char i=len;i;i--)WriteChar(*p--);

примерно так

_________________
Show


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: WinAvr
СообщениеДобавлено: 06 ноя 2010, 20:32 
Старожил
Аватара пользователя

Зарегистрирован: 10 апр 2010, 18:47
Сообщения: 2490
Откуда: Харьков
xrayman писал(а):
unsigned char len=strlen(str);

char *p=str+len-1;
for(unsigned char i=len;i;i--)WriteChar(*p--);

примерно так

Прошу прощения за тупость, но где здесь преобразование шестнадцатеричного числа, хранящегося в int в строку из десятичных цифр? Или я что-то неправильно понимаю??


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: WinAvr
СообщениеДобавлено: 06 ноя 2010, 20:33 
Супермодератор
Аватара пользователя

Зарегистрирован: 28 янв 2010, 05:47
Сообщения: 1031
Откуда: Винница
R_ura писал(а):
Прошу прощения за тупость, но где здесь преобразование шестнадцатеричного числа, хранящегося в int в строку из десятичных цифр? Или я что-то неправильно понимаю??

это примерный вид функции, которая выводит на экран то, что получено от itoa, т.е. в обратной последовательности

_________________
Show


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: WinAvr
СообщениеДобавлено: 06 ноя 2010, 20:36 
Старожил
Аватара пользователя

Зарегистрирован: 10 апр 2010, 18:47
Сообщения: 2490
Откуда: Харьков
xrayman писал(а):
R_ura писал(а):
Прошу прощения за тупость, но где здесь преобразование шестнадцатеричного числа, хранящегося в int в строку из десятичных цифр? Или я что-то неправильно понимаю??

это примерный вид функции, которая выводит на экран то, что получено от itoa, т.е. в обратной последовательности



))) Спасибо, не понял. Разбираюсь пока - далеко не все ясно..


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: WinAvr
СообщениеДобавлено: 07 ноя 2010, 07:34 
Старожил

Зарегистрирован: 22 мар 2010, 22:54
Сообщения: 3995
че-то я или туплю, или вы тупите:)
число можно бить на разряды делением на 10 и нахождением остатка от дел.

buf[2]=val % 10; val/=10;
buf[1]=val % 10;
buf[0]=val / 10;

или что-то еще надо?


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 70 ]  На страницу 1, 2, 3  След.

Часовой пояс: UTC + 5 часов


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB