|
|
  |
Скрипты в микроконтроллере |
|
|
|
Jan 14 2016, 18:18
|
Гуру
     
Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823

|
Цитата(Огурцов @ Jan 14 2016, 21:14)  реверс чего ? Реверс прошивки, выполняющей скрипты. Ну если Вы отдаете открытые скрипты юзеру, то он должен знать, как работают операторы скрипта. То есть прошивку он повторит исходя из этого знания.
--------------------
Уходя, оставьте свет...
|
|
|
|
|
Jan 14 2016, 19:44
|
Гуру
     
Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823

|
Цитата(Огурцов @ Jan 14 2016, 13:50)  выполнение на мк тоже ресурсов надо крохи Цитата(Огурцов @ Jan 14 2016, 22:02)  сделайте мне по ней реверс дотнетфреймворка ? Вы уж определитесь про что Вы говорите.
--------------------
Уходя, оставьте свет...
|
|
|
|
|
Feb 1 2016, 04:33
|

Местный
  
Группа: Свой
Сообщений: 327
Регистрация: 24-06-06
Из: Томск
Пользователь №: 18 328

|
Цитата(uriy @ Feb 1 2016, 00:07)  Решил использовать pawn. Может быть у кого-нибудь уже есть реализация для keil. У меня осталась одна ошибка при компиляции и я застрял на: Error: L6218E: Undefined symbol amx_Register (referred from amxfuncs.o). amx_Register определен в amx.c в хидере есть прототип, но до него столько ifdef что я теряюсь У меня работает этот набор файлов. Пробуйте.
Прикрепленные файлы
pawn.zip ( 28.18 килобайт )
Кол-во скачиваний: 35
|
|
|
|
|
Feb 2 2016, 03:19
|

Местный
  
Группа: Свой
Сообщений: 327
Регистрация: 24-06-06
Из: Томск
Пользователь №: 18 328

|
Цитата(uriy @ Feb 1 2016, 20:43)  Спасибо! А можно еще ваш файл amxexec_thumb2.s? Теперь другая функция дважды определена Error: L6200E: Symbol amx_exec_list multiply defined (by amxexec_thumb2.o and amx.o). Файл amx.c сдержит реализацию виртуальной машины на переносимом С. amxexec_thumb2.s содержит оптимизированную реализацию виртуальной машины на асме. Их не получится скомпилировать вместе в одном проекте. Выбирайте что-то одно. Цитата Можете мне еще пояснить можно ли каким то образом распаралелить выполнение скрипта и основной программы MCU? Я планировал собирать данные с АЦП по DMA и усреднять их, только потом использовать эти значения в скрипте. Распараллелить? Я использую ось. Соответственно есть набор потоков, в одном из которых крутится виртуальная машина. Если без оси, то прерывания + debug hook для виртуальной машины. Как то так, наверное. P.S. Не пренебрегайте документацией. Pawn_Implementer_Guide.pdf + Pawn_Language_Guide.pdf способны ответить на все ваши вопросы.
|
|
|
|
|
Feb 2 2016, 05:29
|

Гуру
     
Группа: Свой
Сообщений: 2 429
Регистрация: 30-11-05
Из: Ижевск
Пользователь №: 11 606

|
Я начал вот с этой статьи http://we.easyelectronics.ru/STM32/prikruc...ok-k-stm32.htmlТам часть функций на асме часть на си. Я уже на горячую голову переделал amxexec_thumb2.s чтобы компилился под keil. Мне даже в голову вот это не пришло: " Файл amx.c сдержит реализацию виртуальной машины на переносимом С. amxexec_thumb2.s содержит оптимизированную реализацию виртуальной машины на асме." Осями пользуюсь, но забыл уточнить что в этом проекте ось не планируется. Тут будет на автоматах. Цитата P.S. Не пренебрегайте документацией. Pawn_Implementer_Guide.pdf + Pawn_Language_Guide.pdf способны ответить на все ваши вопросы. Да читать надо, но как всегда некогда пилу точить надо лес валить.
|
|
|
|
|
Feb 15 2016, 10:13
|

Местный
  
Группа: Свой
Сообщений: 327
Регистрация: 24-06-06
Из: Томск
Пользователь №: 18 328

|
Цитата(uriy @ Feb 15 2016, 15:09)  Прочитал implementers guide и language guide так и не понял как обращаться к железу из скрипта. Похоже придется еще раз читать... Мне нужно принимать и отправлять данные через CAN, анализировать цифровые и аналоговые входы, управлять ШИМ. На прием данных идеально ложаться ивенты. Но как сделать чтобы основная программа в контроллере вызывала эти ивенты в скрипте? И как обратиться из скрипта к функциям в основной программе, чтобы например запустить ШИМ? Public functions это какраз те функции что доступны скрипту и основной программе или нет? Implementers guide, Extension modules, p.49: Цитата An extension module provides a pawn program with application-specific (“na- tive”) functions. An native function is a function that is implemented in the host application (as opposed to being implemented in the pawn script) and it is typi- cally implemented in a different programming language. Creating an extension module is a three-step process: 1 writing the native functions (in C); 2 making the functions known to the abstract machine; 3 writing an include file that declares the native functions for the pawn pro- grams. Ну и дальше углубляетесь. По event driven технике ничего подсказать не могу, т.к. не пользую.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|