CPU
cpu.model()
Получить название процессора и номер ревизии, установленные на вашей плате.
Аргументы: нет
Возвращает: строку с названием процессора, установленного на вашей плате.
-- Get the CPU model
cpu = cpu.model();
-- Print to screen
print("CPU: "..cpu)
cpu.memfree()
Получить размер свободной памяти кучи (heap).
Аргументы: нет
Возвращает: число - размер свободной памяти в байтах.
-- Get free memory
free = cpu.memfree()
-- Print to screen
print("Free memory: "..free.." bytes")
cpu.board()
Получить информацию об устройстве.
Аргументы: нет
Возвращает: тип платы, подтип платы и бренд платы. Подтип платы и бренд платы могут быть пустыми.
-- Get board information
type, subtype, brand = cpu.board();
-- Print to screen
print("Type: "..type)
print("Subtype: "..subtype)
print("Brand: "..brand)
cpu.speed([speed [, dynamic]])
Получить и при необходимости установить текущую скорость процессора в МГц.
Аргументы:
- speed: одно из значений cpu.SPEED_DEFAULT, cpu.SPEED_FAST, cpu.SPEED_MEDIUM, cpu.SPEED_SLOW или любое фактическое значение в МГц, поддерживаемое системой.
- dynamic: (по умолчанию false). Устанавливает новую скорость процессора как фиксированное значение. Установите dynamic в true, чтобы использовать новую скорость процессора как максимальную скорость, позволяя системе динамически переключать фактическую скорость по требованию.
Возвращает: скорость процессора в МГц.
Получение скорости доступно во всех сборках. Установка требует сборки с
CONFIG_PM_ENABLE; если power management отключён, вызов с аргументом speed
завершается исключением can't set CPU speed, а не игнорируется.
-- Get CPU speed
speed = cpu.speed();
-- Print to screen
print("Speed: "..speed.." MHz")
cpu.temperature()
Получить текущую температуру процессора в градусах Цельсия.
Аргументы: нет
Возвращает: температуру процессора в градусах Цельсия. Доступно не во всех процессорах.
-- Get CPU temperature
temp = cpu.temperature();
-- Print to screen
print("Temp: "..temp.." ºC")
cpu.getmac([num], [format])
Получить MAC-адрес процессора.
Аргументы:
num - тип запрашиваемого MAC. Может быть один из:
- 0 - MAC_WIFI_STA
- 1 - MAC_WIFI_SOFTAP
- 2 - MAC_BT
- 3 - MAC_ETH
format - тип отображения MAC. Может быть один из:
- 0 - бинарная строка 6 байт
- 1 - hex строка 12 байт
- 2 - hex строка с разделителем “:” - 17 байт
Значения по умолчанию: num = 0, format = 0.
Возвращает:
- При успехе: строку согласно параметру format.
- При ошибке: nil и строку с описанием ошибки.
/ > cpu.getmac(0, 2)
EC:64:C9:91:C0:94
-- Проверка на ошибку
/ > mac, err = cpu.getmac(0, 2)
/ > if not mac then print("Error: "..err) end
cpu.resetreason()
Возвращает причину перезагрузки.
Аргументы: нет
Возвращает: одну из причин:
cpu.RESET_POWERON
cpu.RESET_SW
cpu.RESET_DEEPSLEEP
cpu.RESET_SDIO
cpu.RESET_TG0WDT_SYS
cpu.RESET_TG1WDT_SYS
cpu.RESET_RTCWDT_SYS
cpu.RESET_INTRUSION
cpu.RESET_TGWDT_CPU
cpu.RESET_SW_CPU
cpu.RESET_RTCWDT_CPU
cpu.RESET_EXT_CPU
cpu.RESET_RTCWDT_BROWN_OUT
cpu.RESET_RTCWDT_RTC
cpu.wakeupreason()
Возвращает причину пробуждения.
Аргументы: нет
Возвращает: одну из причин:
cpu.WAKEUP_NONE
cpu.WAKEUP_EXT0
cpu.WAKEUP_EXT1
cpu.WAKEUP_TIMER
cpu.WAKEUP_TOUCHPAD
cpu.WAKEUP_ULP
cpu.wakeupon()
Устанавливает разрешенные причины для пробуждения. Может быть вызвано несколько раз для установки нескольких вариантов.
Первый аргумент — один из:
cpu.WAKEUP_EXT0
cpu.WAKEUP_EXT1
cpu.WAKEUP_TIMER
cpu.WAKEUP_TOUCHPAD
cpu.WAKEUP_ULP
Возвращает: ничего
Дополнительные аргументы зависят от выбранной причины пробуждения:
cpu.WAKEUP_EXT0
- gpio
- level
cpu.WAKEUP_EXT1
- mask — неотрицательная маска GPIO. Можно передать Lua integer либо строку с
64-битным десятичным или шестнадцатеричным значением (
"0x100000000"). Строка нужна для GPIO32–39 в стандартных сборках с 32-битным Lua integer. - wakeup_mode —
0(ALL_LOW) или1(ANY_HIGH).
cpu.WAKEUP_TIMER
- time_in_us — неотрицательное число микросекунд в виде Lua integer либо 64-битной десятичной/шестнадцатеричной строки.
cpu.WAKEUP_TOUCHPAD
WAKEUP_ULP
-- allow wakeup by ULP
cpu.wakeupon(cpu.WAKEUP_ULP)
-- allow wakeup by EXT0
cpu.wakeupon(cpu.WAKEUP_EXT0, pio.GPIO26, 1)
-- allow wakeup by GPIO32; the string preserves bit 32 in a 32-bit Lua build
cpu.wakeupon(cpu.WAKEUP_EXT1, "0x0000000100000000", 1)
cpu.sleep(seconds)
Перевести процессор в режим глубокого сна на время, указанное в аргументе seconds. По истечении времени сна процессор перезагружается.
Аргументы:
- seconds: количество секунд сна.
Возвращает: ничего.
-- Sleep for 10 seconds
cpu.sleep(10)
cpu.deepsleep()
Перевести процессор в режим глубокого сна. Процессор перезагружается, как только происходит одно из событий, настроенных с помощью функции cpu.wakeupon.
Аргументы: нет
Возвращает: ничего
-- Sleep now
cpu.deepsleep()
cpu.wakeupext1pin()
Если причина пробуждения процессора (cpu.wakeupreason) равна cpu.WAKEUP_EXT1, то эта функция может использоваться для определения GPIO, на котором произошло событие.
-- Read the GPIO that woke the CPU
pin = cpu.wakeupext1pin()
-- Print to screen
print("Pin that woke the CPU: "..pin)
cpu.wakeupext1mask()
Если причина пробуждения процессора (cpu.wakeupreason) равна cpu.WAKEUP_EXT1, то эта функция может использоваться для запроса маски всех GPIO EXT1, чтобы выяснить, на каком GPIO произошло событие.
Возвращает Lua integer, если маска помещается в текущий тип lua_Integer.
Более широкая маска возвращается строкой вида 0x0000000100000000, чтобы не
потерять старшие биты.
-- Read the GPIO mask
mask = cpu.wakeupext1mask()
-- Print to screen
print("EXT1 wake GPIO mask: "..mask)
cpu.watchpoint(addr [, size [, flags]])
Позволяет установить точку наблюдения на определенный адрес, на операции ЗАГРУЗКИ (LOAD), ЗАПИСИ (STORE) или ДОСТУПА (ACCESS).
Аргументы:
- addr: адрес для наблюдения.
- size: размер адреса, по умолчанию 4, должен быть одним из значений 2^n, где n находится в диапазоне [0..6].
- flags: одно из значений cpu.WATCHPOINT_LOAD, cpu.ESP_WATCHPOINT_STORE, cpu.ESP_WATCHPOINT_ACCESS.
Возвращает: ничего.
cpu.backtrace([as_string])
Если система была перезапущена после сбоя/паники/аварийного завершения работы, стек вызовов сбоя будет сохранен в специальной области памяти. Используйте эту функцию, чтобы получить этот стек вызовов.
Аргументы:
- as_string (необязательно), строка: вывести стек в виде строки (иначе вывод в виде таблицы)
Возвращает: ничего, строку или таблицу Lua, содержащую обратный трассировочный стек (backtrace).
cpu.watchdog.init([timeout_s])
Инициализирует Task Watchdog с таймаутом timeout_s (по умолчанию 10 секунд) и
добавляет текущую задачу. При срабатывании ISR только уведомляет отдельную
задачу восстановления; остановка UART/power bus и переход в глубокий сон
выполняются уже вне ISR.
cpu.watchdog.add()
Добавляет текущую задачу в Task Watchdog.
cpu.watchdog.reset()
Сбрасывает Task Watchdog для текущей задачи.
cpu.watchdog.remove()
Удаляет текущую задачу из Task Watchdog.