Espruino:Справочник по API/Класс E/nativeCall(): различия между версиями
Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
Myagkij (обсуждение | вклад) (Новая страница: «{{Espruino/Панель перехода}} {{Перевод от Сubewriter}} {{Myagkij-редактор}} =<ref>[ www.espruino.com - ]</ref>= ==Синтакс...») |
Myagkij (обсуждение | вклад) |
||
(не показаны 4 промежуточные версии 2 участников) | |||
Строка 3: | Строка 3: | ||
{{Myagkij-редактор}} | {{Myagkij-редактор}} | ||
=<ref>[ www.espruino.com - ]</ref>= | =Функция E.nativeCall()<ref>[https://www.espruino.com/Reference#t_l_E_nativeCall www.espruino.com - E.nativeCall]</ref>= | ||
==Синтаксис== | ==Синтаксис== | ||
<syntaxhighlight lang="javascript | <syntaxhighlight lang="javascript"> | ||
E.nativeCall(addr, sig, data) | |||
</syntaxhighlight> | </syntaxhighlight> | ||
==Параметры== | ==Параметры== | ||
* '''addr''' – адрес функции в памяти (или смещение в ''data'' при наличии этого аргумента). | |||
* '''sig''' – сигнатура функции, '''returnType (arg1,arg2,...)'''. Допустимые типы: void, bool, int, double, Pin, JsVar. | |||
* '''data''' – строка, содержащая саму функцию. В отсутствие этого аргумента в качестве абсолютного адреса будет использован ''addr''. Это опциональный аргумент. | |||
==Возвращаемое значение== | |||
Нативную функцию. | |||
==Описание== | |||
{{Внимание1|Если вы плохо понимаете, то делаете, эта функция – отличный способ спровоцировать сбой [[Espruino]].}} | |||
Создает нативную функцию, выполняющую код, который находится по заданному адресу. Например, '''E.nativeCall(0x08012345,'double (double,double)')(1.1, 2.2)'''. | |||
При выполнении Thumb-функции вам почти наверняка надо будет задать ''«1»'' в самом младшем бите адреса. | |||
Нет никакой гарантии, что будет использована именно заданная вами сигнатура, потому что есть некоторые ограничения на количество аргументов. | |||
Если задать в аргументе ''data'' несегментированную строку (flat string), она будет использована напрямую. В противном случае данные в ''data'' будут преобразованы в несегментированную строку и лишь потом использованы. | |||
{{Примечание1|Эта функция не доступна для устройств с маленькой [[flash-память]]ю.}} | |||
== Примеры == | |||
Эта функция используется в следующих статьях документации [[Espruino]]: | |||
* [https://www.espruino.com/Assembler#line=142,143 Ассемблерная вставка] | |||
=См.также= | =См.также= | ||
=Внешние ссылки= | =Внешние ссылки= | ||
Строка 31: | Строка 48: | ||
<references /> | <references /> | ||
{{Навигационная таблица/Espruino | {{Навигационная таблица/Портал/Espruino}} | ||
Текущая версия от 18:58, 24 июня 2023
Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.
Функция E.nativeCall()[1]
Синтаксис
E.nativeCall(addr, sig, data)
Параметры
- addr – адрес функции в памяти (или смещение в data при наличии этого аргумента).
- sig – сигнатура функции, returnType (arg1,arg2,...). Допустимые типы: void, bool, int, double, Pin, JsVar.
- data – строка, содержащая саму функцию. В отсутствие этого аргумента в качестве абсолютного адреса будет использован addr. Это опциональный аргумент.
Возвращаемое значение
Нативную функцию.
Описание
Создает нативную функцию, выполняющую код, который находится по заданному адресу. Например, E.nativeCall(0x08012345,'double (double,double)')(1.1, 2.2).
При выполнении Thumb-функции вам почти наверняка надо будет задать «1» в самом младшем бите адреса.
Нет никакой гарантии, что будет использована именно заданная вами сигнатура, потому что есть некоторые ограничения на количество аргументов.
Если задать в аргументе data несегментированную строку (flat string), она будет использована напрямую. В противном случае данные в data будут преобразованы в несегментированную строку и лишь потом использованы.
Примеры
Эта функция используется в следующих статьях документации Espruino:
См.также
Внешние ссылки