Espruino:Справочник по API/Класс E/nativeCall()
Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.
Функция 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:
См.также
Внешние ссылки