Например TDA7294

Форум РадиоКот • Просмотр темы - Ассемблер (ASM) для AVR в вопросах и ответах
Форум РадиоКот
Здесь можно немножко помяукать :)

Текущее время: Вс июл 27, 2025 16:55:02

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


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 7956 ]     ... , , , 389, , , ...  
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Пт дек 06, 2024 22:39:49 
Собутыльник Кота
Аватар пользователя

Карма: 38
Рейтинг сообщений: 292
Зарегистрирован: Пт сен 07, 2018 20:20:02
Сообщений: 2594
Откуда: деревня в Тульской губернии
Рейтинг сообщения: -4
Медали: 1
Получил миской по аватаре (1)
Сегмент данных резервирует оперативную память, а не флеш.

AVR всегда для сегментов DATA и RODATA резервирует флеш. Содержимое сегмента DATA bootloader копирует в RAM, а RODATA - нет. Во флеш не попадает лишь BSS сегмент.

Добавлено after 4 minutes 49 seconds:
берём даташит на МК

Там не ни слова о сегментах кода и данных. Так что опять мимо.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Пт дек 06, 2024 22:43:03 
Друг Кота
Аватар пользователя

Карма: 139
Рейтинг сообщений: 2918
Зарегистрирован: Чт янв 10, 2008 22:01:02
Сообщений: 23932
Откуда: Московская область, Фрязино
Рейтинг сообщения: 0
DATA и RODATA

Откройте мануал на avrasm и процитируйте из него свое утверждение.

Добавлено after 2 minutes 38 seconds:
AVR всегда.

Что такое "AVR", которое что то там "всегда"?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Пт дек 06, 2024 22:43:54 
Собутыльник Кота
Аватар пользователя

Карма: 38
Рейтинг сообщений: 292
Зарегистрирован: Пт сен 07, 2018 20:20:02
Сообщений: 2594
Откуда: деревня в Тульской губернии
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Откройте мануал на avrasm и процитируйте из него свое утверждение.

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


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Пт дек 06, 2024 22:48:14 
Друг Кота
Аватар пользователя

Карма: 139
Рейтинг сообщений: 2918
Зарегистрирован: Чт янв 10, 2008 22:01:02
Сообщений: 23932
Откуда: Московская область, Фрязино
Рейтинг сообщения: 0
Но ложности Вашего утверждения это нисколько не меняет.

Пусть иные. Раз мои утверждения ложные, то эти "иные" это докажут.
Я жду цитаты.
:tea:


Последний раз редактировалось КРАМ Пт дек 06, 2024 22:52:32, всего редактировалось 1 раз.

Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Пт дек 06, 2024 22:51:58 
Собутыльник Кота
Аватар пользователя

Карма: 38
Рейтинг сообщений: 292
Зарегистрирован: Пт сен 07, 2018 20:20:02
Сообщений: 2594
Откуда: деревня в Тульской губернии
Рейтинг сообщения: -4
Медали: 1
Получил миской по аватаре (1)
Я не хочу уходит от темы обсуждения того, что, по Вашему утверждению, в сегменте данных содержится код.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Пт дек 06, 2024 22:56:03 
Мучитель микросхем
Аватар пользователя

Карма: 10
Рейтинг сообщений: 155
Зарегистрирован: Ср июн 29, 2022 16:25:45
Сообщений: 469
Рейтинг сообщения: 2
ПростоНуб писал(а):
Можете тогда считать, что эта таблица лежала на внешней SD-карте и была загружена в RAM.

Берем Тиньку13. Я с удовольствием посмотрю, как вы из СД-карты загрузите в ОЗУ табличку 256 байт. Или пожертвуете четверть доступного флеша на нее.

_________________
Белая и Пушистая


Вернуться наверх
 
Распродажа паяльного оборудования ATTEN!
Паяльные станции, паяльники и аксессуары по самой выгодной цене.

По промокоду radiokot скидка 10%
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Пт дек 06, 2024 22:56:27 
Друг Кота
Аватар пользователя

Карма: 139
Рейтинг сообщений: 2918
Зарегистрирован: Чт янв 10, 2008 22:01:02
Сообщений: 23932
Откуда: Московская область, Фрязино
Рейтинг сообщения: 1
Я не хочу уходит от темы обсуждения того, что

Вы нагло лжете. Я ни в каком месте не утверждал, что в сегменте данных находится код. Это принципиально невозможно. Это гарвардская архитектура.
Я утверждал, что ТАБЛИЦЫ находятся во флеше и потому описываются в сегменте кода. Так устроен avrasm.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Пт дек 06, 2024 23:44:03 
Собутыльник Кота
Аватар пользователя

Карма: 38
Рейтинг сообщений: 292
Зарегистрирован: Пт сен 07, 2018 20:20:02
Сообщений: 2594
Откуда: деревня в Тульской губернии
Рейтинг сообщения: 4
Медали: 1
Получил миской по аватаре (1)
Берем Тиньку13.

Это будет уже третье изменение постановки.

Добавлено after 42 minutes 40 seconds:
Поэкспериментировал. Что касается извращений - я явно был не прав. AVR ассемблер не позволяет создать объектный файл с сегментом данных RODATA. Для того, чтобы создать объектный файл с сегментом данных RODATA пришлось извращаться через avr-gcc. Только после этого прошивка всё же собралась линкером.
Так же я был не прав с копированием сегмента DATA из флеша bootloader. В случае ассемблера такого не происходит, только в startup коде GCC.
В итоге, разместить таблицу в сегменте данных RODATA мне удалось, но это оказалось далеко от общепринятого и не средствами avrasm.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Сб дек 07, 2024 07:32:36 
Модератор
Аватар пользователя

Карма: 153
Рейтинг сообщений: 2917
Зарегистрирован: Сб авг 14, 2010 15:05:51
Сообщений: 18741
Откуда: г. Озерск, Челябинская обл.
Рейтинг сообщения: 0
Медали: 1
Лучший человек Форума 2017 (1)
ПростоНуб, сегмент DATA - это ОЗУ. а когда ты подаешь питание на МК, в ОЗУ находится хаос, и никакие нужные для работы данные в ОЗУ не появятся.
а чтобы в ОЗУ поместить нужные данные (твою таблицу) нужен кусок кода в программной памяти. так что, любые данные в сегменте данных - это код из программной памяти.
у меня, например, все данные, нужные для работы, находятся в еепром. и при включении эти данные читаются из еепром и копируются в ОЗУ.
и только когда данные (например таблица) лежит во флеши, дополнительный кусок кода для их копирования в ОЗУ не нужен. но при расположении данных во флеши сразу видно, что это часть кода.

_________________
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Сб дек 07, 2024 08:05:52 
Друг Кота

Карма: 64
Рейтинг сообщений: 1013
Зарегистрирован: Пт мар 07, 2008 06:54:43
Сообщений: 4332
Откуда: Ижевск
Рейтинг сообщения: 0
Starichok51 писал(а):
...данные, нужные для работы, находятся в еепром. и при включении эти данные читаются из еепром и копируются в ОЗУ..
Для AVR, с возможностью
Цитата:
Self-Programming
этого можно не делать. У меня довольно много данных и переписывать их никакого ОЗУ не хватит.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Сб дек 07, 2024 08:55:24 
Друг Кота
Аватар пользователя

Карма: 67
Рейтинг сообщений: 1060
Зарегистрирован: Чт сен 18, 2008 12:27:21
Сообщений: 19733
Откуда: Столица Мира Санкт-Петербург
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Развели канитель.
Я привёл код - несколько XORов. Кто-то сможет короче и быстрее?

_________________
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Измерить нннада?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Сб дек 07, 2024 11:26:09 
Мучитель микросхем

Зарегистрирован: Вт окт 01, 2024 15:22:33
Сообщений: 428
Рейтинг сообщения: 0
Я привёл код - несколько XORов.

Речь про вот эти несколько XORов?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Сб дек 07, 2024 11:50:30 
Мучитель микросхем
Аватар пользователя

Карма: 10
Рейтинг сообщений: 155
Зарегистрирован: Ср июн 29, 2022 16:25:45
Сообщений: 469
Рейтинг сообщения: 2
Gudd-Head, вы привели картинку с текстом. Но не код на avr asm.

Вариант цикла (Starichok51, ваш вариант, я так понимаю +/- такой же)

R1:R0 - исходное значение
Код:
LDI R16,16
Label:
ROR R1
ROR R0
ROL R3
ROL R2
DEC R16
BRNE Label

R3:R2 - результат.
Длина кода 14 байт.

ПростоНуб писал(а):
Это будет уже третье изменение постановки.
Кто хочет спорить - тому будет третье. Кто хочет решить задачу - предлагает решения, даже в виде картинок.
В постановке задачи было -
Just_Fluffy писал(а):
минимальный код на асме AVR
- т.е. без привязки к конкретному МК. Значит код должен корректно работать на любой старой доброй 8битной AVRке.

Adrift писал(а):
Речь про вот эти несколько XORов?
Именно про эти.
Но тут есть маленькое но. Компилятор с ЯВУ зачастую сгенерит не самый оптимальный по размеру код.
Поэтому то я и прошу Gudd-Head показать код на асме, а не скан книжки.
Ибо его код, возможно и быстрее будет выполняться, но никак не короче.
А в постановке задачи было
Just_Fluffy писал(а):
минимальный код на асме AVR


Но почему то под минимальным все считают самый быстрый, а не самый маленький. Самый быстрый - табличный, но он не маленький )))))

Добавлено after 9 minutes 32 seconds:
Adrift, Кстати, если тупо в лоб циклом, то он компилируется в более короткий код.

_________________
Белая и Пушистая


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Сб дек 07, 2024 12:02:16 
Потрогал лапой паяльник
Аватар пользователя

Карма: 4
Рейтинг сообщений: 96
Зарегистрирован: Вс окт 25, 2020 22:13:25
Сообщений: 307
Откуда: Смоленск
Рейтинг сообщения: 0
Just_Fluffy писал(а):
R3:R2 - результат.

А не поменять-ли rol r2 и r3 местами?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Сб дек 07, 2024 12:07:42 
Мучитель микросхем

Зарегистрирован: Вт окт 01, 2024 15:22:33
Сообщений: 428
Рейтинг сообщения: 0
Кстати, если тупо в лоб циклом, то он компилируется в более короткий код.

Так не честно, в "Алгоритмических трюках для программистов" такого варианта не было )


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Сб дек 07, 2024 12:45:31 
Мучитель микросхем
Аватар пользователя

Карма: 10
Рейтинг сообщений: 155
Зарегистрирован: Ср июн 29, 2022 16:25:45
Сообщений: 469
Рейтинг сообщения: 0
ДядяВован, да, поменять.
(но размер кода не меняется)

Adrift, вот беда... Шож теперь делать?.....

Кстати, шифты на более чем 1 бит ( >> 2, >> 4...) на AVRках одной командой (в общем случае) не делаются. Нет такой команды....

_________________
Белая и Пушистая


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Сб дек 07, 2024 12:51:41 
Встал на лапы

Зарегистрирован: Сб июл 30, 2011 21:00:24
Сообщений: 111
Рейтинг сообщения: 0
Первая задача решается «в лоб», поэтому решение появилось.
Вторая задача не совсем в лоб. Вот мой вариант из 5 команд.
Yes – метка перехода, когда в байте один единичный бит.
r0 - исходный байт.

LDI r20, 1
L0:
CP r0, r20
BREQ Yes
LSL r20
BRNE L0

Я на обычном ассемблере, практически, не работал, но как-то так.
Just_Fluffy писал(а):
R3:R2 - результат.

А не поменять-ли rol r2 и r3 местами?

Поменять, конечно.
Чтобы не думать о порядке следования байтов, на «хорошем» ассемблере есть команда Shift_R V, которая сдвигает переменную V на один шаг вправо.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Сб дек 07, 2024 13:10:09 
Собутыльник Кота
Аватар пользователя

Карма: 38
Рейтинг сообщений: 292
Зарегистрирован: Пт сен 07, 2018 20:20:02
Сообщений: 2594
Откуда: деревня в Тульской губернии
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
ПростоНуб, сегмент DATA

Естественно, подразумевался сегмент RODATA, который мне успешно удалось создать и слинковать, хоть и avrasm для этого не хватило.

когда ты подаешь питание на МК, в ОЗУ находится хаос, и никакие нужные для работы данные в ОЗУ не появятся

Это само собой. Просто, так как я пользовался ассемблером исключительно из С, то упустил, что именно его загрузчик перемещает сегмент данных из флеша в оперативку.

но при расположении данных во флеши сразу видно, что это часть кода.

Как это видно? Видно, что на них управление передается?
Может здесь принято иначе, но когда я употребляю по отношению к программированию слово "код", это я просто не уточняю, он "машинный", "исходный" или промежуточный (как у LLVM).
То есть, код - это инструкции CPU или то, что привело к их формированию бекэндом-кодогенератором или компилятором.
И если данные были конвертированы из бинарного файла в объектный при помощи objcopy, то когда и как они вдруг превратились в код?
А если я на STM8 загружу код в RAM и выполню его оттуда, это будут данные или код? )))

Добавлено after 2 minutes 49 seconds:
Первая задача решается «в лоб», поэтому решение появилось.

Я пока так и не понял постановку задачи. Требуется оптимизировать размер кода или его производительность? В зависимости от этого задача решается по разному.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Сб дек 07, 2024 13:20:51 
Мучитель микросхем

Зарегистрирован: Вт окт 01, 2024 15:22:33
Сообщений: 428
Рейтинг сообщения: 0
То есть, код - это инструкции CPU или то, что привело к их формированию бекэндом-кодогенератором или компилятором.
И если данные были конвертированы из бинарного файла в объектный при помощи objcopy, то когда и как они вдруг превратились в код?
А если я на STM8 загружу код в RAM и выполню его оттуда, это будут данные или код? )))

Представьте, что у нас один из тех конкурсов где нужно писать программы ограниченные по размеру до 1/4/64...КB. Слышали же про такие? Простые и понятные абсолютному большинству условия и я сомневаюсь что был хоть один случай когда вместо программы размером 1КB приносили программу на 1GB и доказывали, что сама программа то 1KB, а все остальное - данные загружаемые с внешнего носителя )


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Сб дек 07, 2024 14:00:29 
Потрогал лапой паяльник
Аватар пользователя

Карма: 4
Рейтинг сообщений: 96
Зарегистрирован: Вс окт 25, 2020 22:13:25
Сообщений: 307
Откуда: Смоленск
Рейтинг сообщения: 0
Just_Fluffy писал(а):
(но размер кода не меняется)

к размеру кода вопросов нет

AQ29 писал(а):
вариант из 5 команд

Коротко конечно. Но с допущением, что входящее значение имеет только один единичный бит. Если больше или ноль, то зависли.


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 7956 ]     ... , , , 389, , , ...  

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


Кто сейчас на форуме

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


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

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


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y