Перейти к содержанию

Рекомендуемые сообщения

Возник вопрос теории интерпретатора кода микропроцессора микроконтроллером

Возьмём к примеру, всеми любимый КР580ИК80, (опустим сейчас споры зачем, не хватит скорости и т.д.), интересна теория построения такой «Виртуальной машины».

В моём понимании алгоритм такой:

1-      В памяти микроконтроллера создаётся массив с адресами подпрограмм кодов процессора (в нашем случае КР580ИК80);

2-      Ячейки массива имеют названия идентичные соответствующим командам процессора

3-      Микроконтроллер выставляет на определённых портах (допустим порт А и В) адрес извлекаемой из внешней памяти команды программы;

4-      Считывает данные с порта (допустим С);

5-      Выбирает ячейку массива с именем идентичным считанному значению из порта С;

6-      Переходит к подпрограмме по адресу записанному в соответствующей ячейке массива;

7-      В процессе выполнения подпрограммы происходят соответствующие действия и увеличение (или иное изменение) счетчика команд;

8-      Процесс повторяется с шага 3.

Так вот если и вправду алгоритм построения данного решения соответствует описанному выше, то у меня возникает вопрос, неужели микроконтроллеру на каждую команду процессора приходится перечёсывать массив ища соответствие, или есть иной путь прямого перехода к соответствующей подпрограмме?

Возможно я неправильно понимаю реализацию интерпретатора кода микропроцессора микроконтроллером?

Ссылка на комментарий
Поделиться на другие сайты

Реклама: ООО ТД Промэлектроника, ИНН: 6659197470, Тел: 8 (800) 1000-321

Цитата

неужели микроконтроллеру на каждую команду процессора приходится перечёсывать массив ища соответствие, или есть иной путь прямого перехода к соответствующей подпрограмме?

конечно есть

правда в процессе работы с вызовом подпрограмм   прерываний МК может возникнуть рекурсия, что не есть хорошо из-за размера стека АЛУ МК

Ссылка на комментарий
Поделиться на другие сайты

20% скидка на весь каталог электронных компонентов в ТМ Электроникс!

Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!

Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!

Перейти на страницу акции

Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849

56 минут назад, IMXO сказал:

правда в процессе работы с вызовом подпрограмм   прерываний МК может возникнуть рекурсия, что не есть хорошо из-за размера стека АЛУ МК

Ну прерывания тоже можно реализовать программно не используя физических прерываний микроконтроллера, у рассматриваемого пациента (КР580ИК80) их вроде бы всего 8. (или предусмотреть программную изоляцию, не позволяющую микроконтроллеру зациклиться).

58 минут назад, IMXO сказал:

конечно есть

И какой? Или Вы и предлагаете всё повесить на прерывания?

Ссылка на комментарий
Поделиться на другие сайты

Выбираем схему BMS для корректной работы литий-железофосфатных (LiFePO4) аккумуляторов

 Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ, также как и для других, очень важен контроль процесса заряда и разряда, а специализированных микросхем для этого вида аккумуляторов не так много. Инженеры КОМПЭЛ подготовили список имеющихся микросхем и возможных решений от разных производителей. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

называется вычисляемый переход,
тот же массив констант, только вместо константы оператор безусловного перехода на подпрограмму

2 минуты назад, sdkdenis сказал:

предлагаете всё повесить на прерывания?

как раз на оборот, вызов такой подпрограммы из прерывания может создать рекурсию

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...