Espruino:Справочник по API/Класс E/nativeCall(): различия между версиями

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
(Новая страница: «{{Espruino/Панель перехода}} {{Перевод от Сubewriter}} {{Myagkij-редактор}} =<ref>[ www.espruino.com - ]</ref>= ==Синтакс...»)
 
Нет описания правки
Строка 3: Строка 3:
{{Myagkij-редактор}}
{{Myagkij-редактор}}


=<ref>[ www.espruino.com - ]</ref>=
=Функция E.nativeCall()<ref>[ www.espruino.com - ]</ref>=


==Синтаксис==
==Синтаксис==


<syntaxhighlight lang="javascript" enclose="div">
<syntaxhighlight lang="javascript" enclose="div">
 
E.nativeCall(addr, sig, data)
</syntaxhighlight>
</syntaxhighlight>


==Параметры==
==Параметры==


* '''addr''' – адрес функции в памяти (или смещение в ''data'' при наличии этого аргумента).
* '''sig''' – сигнатура функции, '''returnType (arg1,arg2,...)'''. Допустимые типы: void, bool, int, double, Pin, JsVar.
* '''data''' – строка, содержащая саму функцию. В отсутствие этого аргумента в качестве абсолютного адреса будет использован ''addr''. Это опциональный аргумент.


==Возвращаемое значение==


==Возвращаемое значение==
Нативную функцию.
 
==Описание==
 
'''ВНИМАНИЕ:''' Если вы плохо понимаете, то делаете, эта функция – отличный способ спровоцировать сбой [[Espruino]].
 
Создает нативную функцию, выполняющую код, который находится по заданному адресу. Например, '''E.nativeCall(0x08012345,'double (double,double)')(1.1, 2.2)'''.
 
При выполнении Thumb-функции вам почти наверняка надо будет задать ''«1»'' в самом младшем бите адреса.


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


Если задать в аргументе ''data'' несегментированную строку (flat string), она будет использована напрямую. В противном случае данные в ''data'' будут преобразованы в несегментированную строку и лишь потом использованы.


==Описание==
'''Примечание:''' Эта функция не доступна для устройств с маленькой [[flash-память]]ю.


== Примеры ==


Эта функция используется в следующих статьях документации [[Espruino]]:
* [https://www.espruino.com/Assembler#line=142,143 Ассемблерная вставка]


=См.также=
=См.также=

Версия от 19:12, 6 декабря 2020

Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.


Функция E.nativeCall()[1]

Синтаксис

E.nativeCall(addr, sig, data)

Параметры

  • addr – адрес функции в памяти (или смещение в data при наличии этого аргумента).
  • sig – сигнатура функции, returnType (arg1,arg2,...). Допустимые типы: void, bool, int, double, Pin, JsVar.
  • data – строка, содержащая саму функцию. В отсутствие этого аргумента в качестве абсолютного адреса будет использован addr. Это опциональный аргумент.

Возвращаемое значение

Нативную функцию.

Описание

ВНИМАНИЕ: Если вы плохо понимаете, то делаете, эта функция – отличный способ спровоцировать сбой Espruino.

Создает нативную функцию, выполняющую код, который находится по заданному адресу. Например, E.nativeCall(0x08012345,'double (double,double)')(1.1, 2.2).

При выполнении Thumb-функции вам почти наверняка надо будет задать «1» в самом младшем бите адреса.

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

Если задать в аргументе data несегментированную строку (flat string), она будет использована напрямую. В противном случае данные в data будут преобразованы в несегментированную строку и лишь потом использованы.

Примечание: Эта функция не доступна для устройств с маленькой flash-памятью.

Примеры

Эта функция используется в следующих статьях документации Espruino:

См.также

Внешние ссылки

  1. [ www.espruino.com - ]