Комментарии 11
Дороговат TI, к сожалению. Много чего интересного есть, но кусается ценой. Те же простые msp430g2553 по 3$.
А софт них действительно богат и документирован. Много примеров, разобраться не трудно.
А софт них действительно богат и документирован. Много примеров, разобраться не трудно.
0
Есть аналогичный проект под PIC, с компилятором из C- подобного языка, для виртуальной машины заточенной для работы с битовыми операциями, виртуалка реализована посредством стековой машины, из обвязки, для виртуалки присутствуют даже таймера:) Проект сейчас хоститься на assembla.com, но думаю чnо надо перезалить на Github.
+2
В виртуалке главное ядро процессора, а обвязку вы сами можете описать. Скажем, просто переназначив адресное пространство виртуалки на регистры хардварного таймера. Разные задачи — разная периферия.
К примеру я использую драйвера дисплея и i2c на хост машине, а пользуюсь ими на виртуалке. При том i2c сугубо софтовый.
И это, в целом, касается любого проекта. Скажем именно так в smart.js (esp8266) выполнены модули того же i2c или gpio.
К примеру я использую драйвера дисплея и i2c на хост машине, а пользуюсь ими на виртуалке. При том i2c сугубо софтовый.
И это, в целом, касается любого проекта. Скажем именно так в smart.js (esp8266) выполнены модули того же i2c или gpio.
0
Все верно, но есть еще плюшки — например инициализация таймеров из кода виртуалки, плюс — биндить реальный хардварный таймер к виртуалке — чистое расточительство — она в десятки раз медленнее процессора, и времена с которыми она может оперировать тоже несколько отличаются от порядка времен в хост процессоре, так для моих задач нужны были таймера которые отсчитывают секунды, тут одного хардварного таймера достаточно для эмуляции 4х-8и таймеров виртуальных.
0
А интерпретатор какого-нибудь скриптового языка на такой архитектуре вообще невозможно было использовать?
0
Да можно все, если вы можете это себе представить.
А по делу, это «все» влазит в 5кб на AVR. Скриптовый интерпретатор, имхо, будет больше.
К примеру Cesanta V7 JS, ест значительно больше.
Micropython думаю тоже значительно больше 5кб, так как для его запуска используют stm32f4
Задача стояла унифицировать куски кода на разных платформах. В данный момент один и тот же код отлично работает как на stm32f030 так и на atmega8 и stm8s003. Разница лишь в скорости.
А по делу, это «все» влазит в 5кб на AVR. Скриптовый интерпретатор, имхо, будет больше.
К примеру Cesanta V7 JS, ест значительно больше.
Micropython думаю тоже значительно больше 5кб, так как для его запуска используют stm32f4
Задача стояла унифицировать куски кода на разных платформах. В данный момент один и тот же код отлично работает как на stm32f030 так и на atmega8 и stm8s003. Разница лишь в скорости.
0
И все-таки, каков порядок падения скорости?
в 2 раза? в 10? в 100?
Хотя бы примерно…
в 2 раза? в 10? в 100?
Хотя бы примерно…
0
Ответ хз, не устроит? верно?
Пример с миганием простого светодиода с задержкой из цикла (i=10000; while(--i)) дает частоту мигания:
Все это «очень» на глаз. Так что ближе всего ответ «хз».
Очень много зависит от архитектуры хост-проца, килограмма оптимизаций, итд.
В целом медленно, но если требуется описать алгоритм «работы с пользователем» этого оказалось достаточно.
Пример с миганием простого светодиода с задержкой из цикла (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 гц
Все это «очень» на глаз. Так что ближе всего ответ «хз».
Очень много зависит от архитектуры хост-проца, килограмма оптимизаций, итд.
В целом медленно, но если требуется описать алгоритм «работы с пользователем» этого оказалось достаточно.
+1
Ну да, всё правильно. классика. Каждый программист в своей жизни изобретает как минимум один новый язык программирования.
+1
А не могли бы вы описать реальные примеры применения такой виртуалки? Что это за алгоритмический код который легче запускать на вируталке ( для которой еще нужно эмулировать переферию извне) чем оформить его в виде библиотеки и использовать в разных проектах? Вообще мне кажется у такой виртуалки может быть другая сфера применения — отлаживать программы под msp430 на виртуальном микроконтроллере используя свой собственный эмулятор переферийных устройств.
0
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Виртуальные машины и микроконтроллеры