Например TDA7294

Форум РадиоКот • Просмотр темы - AVR Assembler
Форум РадиоКот
Здесь можно немножко помяукать :)

Текущее время: Чт авг 07, 2025 02:22:45

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


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



Начать новую тему Ответить на тему  [ Сообщений: 47 ]    , 2,  
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: AVR Assembler
СообщениеДобавлено: Ср июл 19, 2023 11:19:08 
Друг Кота
Аватар пользователя

Карма: 96
Рейтинг сообщений: 1472
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 15125
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
У топикстартера
tavrasm,
а большинство местных мастеров ассемблера работают под AVRASM2
(АВР студио 4.19 или более поздняя 7/микрочип студия).
Оттого возможны весьма существенные разночтения - не изучать же детально описание tavrasm для разовой консультации...
8)
относительно GAS GCC это вообще "отдельно садомазохистская тема"
:tea:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: AVR Assembler
СообщениеДобавлено: Ср июл 19, 2023 11:51:45 
Первый раз сказал Мяу!

Зарегистрирован: Пт июл 14, 2023 19:07:53
Сообщений: 23
Рейтинг сообщения: 0
ТС. Повторяю. Array это адрес. PC это счётчик команд. Текущая строка. Чревато ошибкой. Я сразу понял про что вы. Но, это ненадежный способ. Но не понял ваших мотивов использовать такой костыльный способ.


У меня есть небольшой проект выходного дня, некий отладчик по USART. Практического смысла, возможно, не имеет, но мне просто интересно. Задумок по нему очень много, реализовано пока далеко не всё. Не буду вдаваться в подробности парсига, после обработки принятых по USART данных есть номер элемента в массиве адресов, после чтения которого выполняется косвенный переход.
Адресов в массиве в виде:
Table_Vectors_Registers_Array:

.dw R0_Array
.dw R1_Array
.dw R2_Array
.dw R3_Array
.dw R4_Array
.dw R5_Array
.dw R6_Array
...................
больше сотни. Считать их вручную - сдохнуть можно.
.equ Count_Register_Const = PC-Table_Vectors_Registers_Array - решает эту проблему. Данная константа нужна для парсинга данных. Этот способ придумал не я, подсмотрел на каком-то забугорном форуме, концов уже не найти.
Если у Вас есть способ, как это можно сделать по другому, поделитесь, пожалуйста, возьму на вооружение :kill:

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


Вложения:
Комментарий к файлу: Проверка состояния любого регистра
Reg_State_2.png [32.39 KiB]
Скачиваний: 34
Комментарий к файлу: Состояние РОН
Reg_State.png [53.12 KiB]
Скачиваний: 30
Комментарий к файлу: Состояние EEPROM
EEPROM_State.png [39.22 KiB]
Скачиваний: 32
Комментарий к файлу: Состояние RAM
Ram_State.png [40.85 KiB]
Скачиваний: 35

_________________
Окстись! Открой DataSheet и просветись!


Последний раз редактировалось Иван Михайлович Ср июл 19, 2023 12:22:05, всего редактировалось 1 раз.
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: AVR Assembler
СообщениеДобавлено: Ср июл 19, 2023 12:21:42 
Друг Кота
Аватар пользователя

Карма: 96
Рейтинг сообщений: 1472
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 15125
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
Всего-то обмен с терминалкой в ПК?
8)
Я чуток получше, но на MCS51, делал (включая командный режим)...
viewtopic.php?f=62&t=156720
На АВРках или МК с достаточным ОЗУ или меги с внешним ОЗУ-накопителем аналогом могут быть.
Смысл построчно каждый байт DW прописывать-то(вместо одной строки)?
Это ведь простая таблица векторов размером в слово (а не побайтовые таблицы смещения/скоростных перекодировщиков).
:roll:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: AVR Assembler
СообщениеДобавлено: Ср июл 19, 2023 12:25:08 
Первый раз сказал Мяу!

Зарегистрирован: Пт июл 14, 2023 19:07:53
Сообщений: 23
Рейтинг сообщения: 0
Смысл построчно каждый байт DW прописывать-то(вместо одной строки)?
Это ведь простая таблица векторов размером в слово (а не побайтовые таблицы смещения/скоростных перекодировщиков).
:roll:

Командный режим тоже есть)
Для удобства восприятия информации) памяти в обоих случаях расходуется одинаково)

_________________
Окстись! Открой DataSheet и просветись!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: AVR Assembler
СообщениеДобавлено: Ср июл 19, 2023 15:11:13 
Друг Кота
Аватар пользователя

Карма: 96
Рейтинг сообщений: 1472
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 15125
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
А не проще "база + смещение" (Z+N и IJMP/ICALL)?
При вычисляемом (принимаемом) смещении (или готовом 2-байтовым адресом в теле команды)?
8)
Да и целая тема по АВР ассемблеру уже есть:
viewtopic.php?f=57&t=5931
:wink:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: AVR Assembler
СообщениеДобавлено: Ср июл 19, 2023 15:19:41 
Первый раз сказал Мяу!

Зарегистрирован: Пт июл 14, 2023 19:07:53
Сообщений: 23
Рейтинг сообщения: 0
Именно так и реализованно.
Чтение 2 байт "адрес массива+номер адреса необходимой подпрограммы" и icall)

_________________
Окстись! Открой DataSheet и просветись!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: AVR Assembler
СообщениеДобавлено: Ср июл 19, 2023 15:27:28 
Друг Кота
Аватар пользователя

Карма: 96
Рейтинг сообщений: 1472
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 15125
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
Но в таком случае размер массива векторов не требуется.
Достаточно указания имен точек входа...
8)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: AVR Assembler
СообщениеДобавлено: Ср июл 19, 2023 15:29:04 
Первый раз сказал Мяу!

Зарегистрирован: Пт июл 14, 2023 19:07:53
Сообщений: 23
Рейтинг сообщения: 0
А как тогда парсеру понять, что мы прочли последний адрес массива?
Там ведь какой принцип работы:

на каждый адрес массива
.dw R0_Array
.dw R1_Array
.dw R2_Array
.dw R3_Array

идёт массив данных и адреса
R0_Array:
.db "R0 ",0x00
R1_Array:
.db "R1 ",0x01
R2_Array:
.db "R2 ",0x02
R3_Array:
.db "R3 ",0x03

этот массив сравнивается побайтно с буфером в RAM (куда складывались данные из USART) и если он совпал, то номер элемента из массива адресов сохраняется куда-то для последующей работы. По этому алгоритму нужно знать, сколько адресов в массиве, чтобы не улететь чёрт знает куда)

_________________
Окстись! Открой DataSheet и просветись!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: AVR Assembler
СообщениеДобавлено: Ср июл 19, 2023 15:53:10 
Это не хвост, это антенна

Карма: 4
Рейтинг сообщений: 139
Зарегистрирован: Ср июн 25, 2008 15:19:44
Сообщений: 1478
Рейтинг сообщения: 0
Иван Михайлович, вы забыли главный закон инженера. Обьект. Свойства объекта. А это определенный склад ума. Так что фора есть.

Я давно уже на асме толком не писал. Лет 10. Так. Баловство. Я тогда на си перешёл. Окончательно и бесповоротно.

Мой способ тоже костыльный. Но. Ошибок не будет.


Вложения:
size_2.jpg [170.01 KiB]
Скачиваний: 46
size_1.jpg [190.18 KiB]
Скачиваний: 47


Последний раз редактировалось Demiurg Ср июл 19, 2023 16:30:45, всего редактировалось 1 раз.
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: AVR Assembler
СообщениеДобавлено: Ср июл 19, 2023 15:57:26 
Первый раз сказал Мяу!

Зарегистрирован: Пт июл 14, 2023 19:07:53
Сообщений: 23
Рейтинг сообщения: 0
Способ очень похож, но более понятен, спасибо!

_________________
Окстись! Открой DataSheet и просветись!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: AVR Assembler
СообщениеДобавлено: Ср июл 19, 2023 15:59:13 
Друг Кота
Аватар пользователя

Карма: 96
Рейтинг сообщений: 1472
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 15125
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
А зачем все эти навороты?
Строку файла intel hex8 даже 51я на 1МГц успевает и развернуть и проверить и разместить во внешнем ОЗУ накопителе (при скорости обмена 9600). При том, что еще и эхо возвращает в окно терминала...
:roll:


Последний раз редактировалось BOB51 Ср июл 19, 2023 16:00:24, всего редактировалось 1 раз.

Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: AVR Assembler
СообщениеДобавлено: Ср июл 19, 2023 16:00:06 
Это не хвост, это антенна

Карма: 4
Рейтинг сообщений: 139
Зарегистрирован: Ср июн 25, 2008 15:19:44
Сообщений: 1478
Рейтинг сообщения: 1
Рад был помочь. От PC в вашем случае уходите. Чревато.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: AVR Assembler
СообщениеДобавлено: Ср июл 19, 2023 16:04:27 
Первый раз сказал Мяу!

Зарегистрирован: Пт июл 14, 2023 19:07:53
Сообщений: 23
Рейтинг сообщения: 0
А зачем все эти навороты?


Разве это навороты? :))
Просто алгоритм, который мне в голову пришёл

_________________
Окстись! Открой DataSheet и просветись!


Последний раз редактировалось Иван Михайлович Ср июл 19, 2023 16:07:23, всего редактировалось 1 раз.

Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: AVR Assembler
СообщениеДобавлено: Ср июл 19, 2023 16:06:15 
Это не хвост, это антенна

Карма: 4
Рейтинг сообщений: 139
Зарегистрирован: Ср июн 25, 2008 15:19:44
Сообщений: 1478
Рейтинг сообщения: 0
Считаю тему закрытой. На асме определения размера массива способов больше нет. Одна из причин ухода на си.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: AVR Assembler
СообщениеДобавлено: Ср июл 19, 2023 16:09:17 
Друг Кота
Аватар пользователя

Карма: 96
Рейтинг сообщений: 1472
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 15125
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
Если бы одна из таблиц (смещение) была в ОЗУ, а уж вектора в ПЗУ тогда еще оправдано.
Но обе в ПЗУ запихивать - это излишне.
8)
Но то уже "отклонение от темы".
потопаю дрематки.
:sleep:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: AVR Assembler
СообщениеДобавлено: Ср июл 19, 2023 16:24:20 
Первый раз сказал Мяу!

Зарегистрирован: Пт июл 14, 2023 19:07:53
Сообщений: 23
Рейтинг сообщения: 0
Если бы одна из таблиц (смещение) была в ОЗУ, а уж вектора в ПЗУ тогда еще оправдано.
Но обе в ПЗУ запихивать - это излишне.
8)

Я не очень понял, это как?

_________________
Окстись! Открой DataSheet и просветись!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: AVR Assembler
СообщениеДобавлено: Ср июл 19, 2023 16:28:41 
Это не хвост, это антенна

Карма: 4
Рейтинг сообщений: 139
Зарегистрирован: Ср июн 25, 2008 15:19:44
Сообщений: 1478
Рейтинг сообщения: 0
Иван Михайлович, Что то ваши способы мне не нравятся. Если будут в дальнейшем вопросы, затруднения. Пишите в личку. Либо подробнейше поясняйте ваши мотивы.

И я вас не сразу понял. Почему. Зачем. А главное, на куа так через (_._).

Я делал нечто подобное. Вынос состояния регистров, ячеек памяти МК. Периферии МК. Состояние регистров периферийных модулей. Ртк, АЦП и так далее. И делал это по другому.

Добавлено after 3 minutes 4 seconds:
1. В дефайнах компилятора все регистры МК уже как то обозначены и пронумерованы.
2. Отсюда. Вы делаете лишнюю работу по нумерации регистров и это чревато ошибками при переходе на другие МК. Задача инженера ИСКЛЮЧИТЬ челоческий фактор и ошибки ещё даже на этапе помыслов.

Понимаете?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: AVR Assembler
СообщениеДобавлено: Ср июл 19, 2023 16:37:07 
Первый раз сказал Мяу!

Зарегистрирован: Пт июл 14, 2023 19:07:53
Сообщений: 23
Рейтинг сообщения: 0
1. В дефайнах компилятора все регистры МК уже как то обозначены и пронумерованы.
2. Отсюда. Вы делаете лишнюю работу по нумерации регистров и это чревато ошибками при переходе на другие МК. Задача инженера ИСКЛЮЧИТЬ челоческий фактор и ошибки ещё даже на этапе помыслов.

Понимаете?

Понимаю, пронумерованы они не просто так. Я привёл лишь примеры массивов первых регистров (хотя в программе они расписаны вплоть до UDR0), но далеко не все регистры пронумерованы последовательно, некоторые адреса в принципе могут быть зарезервированы.
Переход на другие мк и чреватость ошибок осознаю, я уже писал, что это тема выходного дня. Я художник, я видел так :))

_________________
Окстись! Открой DataSheet и просветись!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: AVR Assembler
СообщениеДобавлено: Ср июл 19, 2023 17:06:03 
Это не хвост, это антенна

Карма: 4
Рейтинг сообщений: 139
Зарегистрирован: Ср июн 25, 2008 15:19:44
Сообщений: 1478
Рейтинг сообщения: 1
Модераторы. Просьба оторвать уши Мартину. За то что влез со своими сапогами из навоза в мой рейтинг. Я вас давно просил. Отключите к едреней фене у меня функцию кармы и рейтинга. Мне это не интересно. Зато любая сволочь рада при своей неправоте нагадить мне в рейтинг и в карму.

Добавлено after 27 minutes 46 seconds:
Про художника не нужно. Если у вас нетрадиционные взгляды (не глумление! я сказал как есть) на вещи и они приносят результат, это только приветствуется. Но привносение хаоса в инженерные вещи не приветствуется.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: AVR Assembler
СообщениеДобавлено: Чт июл 20, 2023 15:37:47 
Первый раз сказал Мяу!

Зарегистрирован: Пт июл 14, 2023 19:07:53
Сообщений: 23
Рейтинг сообщения: 0
нетрадиционные взгляды

Я бы назвал их не стандартными

_________________
Окстись! Открой DataSheet и просветись!


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

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


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

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


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

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


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