Pull to refresh

Comments 11

Дороговат TI, к сожалению. Много чего интересного есть, но кусается ценой. Те же простые msp430g2553 по 3$.

А софт них действительно богат и документирован. Много примеров, разобраться не трудно.

Есть аналогичный проект под PIC, с компилятором из C- подобного языка, для виртуальной машины заточенной для работы с битовыми операциями, виртуалка реализована посредством стековой машины, из обвязки, для виртуалки присутствуют даже таймера:) Проект сейчас хоститься на assembla.com, но думаю чnо надо перезалить на Github.
В виртуалке главное ядро процессора, а обвязку вы сами можете описать. Скажем, просто переназначив адресное пространство виртуалки на регистры хардварного таймера. Разные задачи — разная периферия.

К примеру я использую драйвера дисплея и i2c на хост машине, а пользуюсь ими на виртуалке. При том i2c сугубо софтовый.
И это, в целом, касается любого проекта. Скажем именно так в smart.js (esp8266) выполнены модули того же i2c или gpio.
Все верно, но есть еще плюшки — например инициализация таймеров из кода виртуалки, плюс — биндить реальный хардварный таймер к виртуалке — чистое расточительство — она в десятки раз медленнее процессора, и времена с которыми она может оперировать тоже несколько отличаются от порядка времен в хост процессоре, так для моих задач нужны были таймера которые отсчитывают секунды, тут одного хардварного таймера достаточно для эмуляции 4х-8и таймеров виртуальных.
А интерпретатор какого-нибудь скриптового языка на такой архитектуре вообще невозможно было использовать?
Да можно все, если вы можете это себе представить.

А по делу, это «все» влазит в 5кб на AVR. Скриптовый интерпретатор, имхо, будет больше.
К примеру Cesanta V7 JS, ест значительно больше.
Micropython думаю тоже значительно больше 5кб, так как для его запуска используют stm32f4

Задача стояла унифицировать куски кода на разных платформах. В данный момент один и тот же код отлично работает как на stm32f030 так и на atmega8 и stm8s003. Разница лишь в скорости.
И все-таки, каков порядок падения скорости?
в 2 раза? в 10? в 100?
Хотя бы примерно…
Ответ хз, не устроит? верно?

Пример с миганием простого светодиода с задержкой из цикла (i=10000; while(--i)) дает частоту мигания:
  • AVR gcc -o2 16 Mhz ~ 0.4~0.5 гц
  • STM8S0 — iar -os 16 Mhz ~ 0.3~0.4 гц
  • STM32F0 keil -o3 96 Mhz ~ 10 гц


Все это «очень» на глаз. Так что ближе всего ответ «хз».

Очень много зависит от архитектуры хост-проца, килограмма оптимизаций, итд.
В целом медленно, но если требуется описать алгоритм «работы с пользователем» этого оказалось достаточно.
Да, спасибо, именно это и хотел услышать.
Ну да, всё правильно. классика. Каждый программист в своей жизни изобретает как минимум один новый язык программирования.
А не могли бы вы описать реальные примеры применения такой виртуалки? Что это за алгоритмический код который легче запускать на вируталке ( для которой еще нужно эмулировать переферию извне) чем оформить его в виде библиотеки и использовать в разных проектах? Вообще мне кажется у такой виртуалки может быть другая сфера применения — отлаживать программы под msp430 на виртуальном микроконтроллере используя свой собственный эмулятор переферийных устройств.
Sign up to leave a comment.

Articles