Я пытаюсь зарегистрировать обратный вызов Python, который будет вызываться из моего кода C с использованием Ctypes.На моем компьютере все работает нормально, но python падает, когда код запускается на устройстве ARM.На моем компьютере я использую python 3.6.6, а это устройство ARM использует python 3.6.3.Я использую buildroot для генерации изображений.
Что ж, после некоторых тестов кажется, что проблема связана с CFUNCTYPE.Следующий код только проверяет CFUNCTYPE, и он работает на моем компьютере, но дает сбой (ошибка сегментации) на устройстве ARM:
from ctypes import *
def func():
print("func called")
CALLBACK = CFUNCTYPE(None)
callback = CALLBACK(func)
print("Calling callback")
callback()
print("Done!")
Результат на моем компьютере:
Calling callback
func called
Done!
Результат в устройстве ARM:
Calling callback
Segmentation fault
Это ошибка в CFUNCTYPE?Или мне нужно сделать что-то другое?Я использую много кода Python на этом устройстве, и все работает нормально, кроме этого CFUNCTYPE.
Спасибо