Я пытался запустить SDK на плате более недели. Я кросс-скомпилировал AWS IoT C ++ SDK и попытался запустить двоичный файл pub-sub-sample на моем устройстве. Все, что я получаю, это ошибка сегментации
Я следовал за DevGuide.md, который шел вместе с SDK. Изменен файл ToolchainFile.cmake и выполнен в соответствии с инструкциями. Пожалуйста, найдите ниже параметров платы ниже
Модель платы: Freescale i.MX6 ULL 14×14 Доска EVK
Процессор платы: Процессор ARMv7 версии 5 (ARMv7), cr = 10c53c7d
Дистрибутив ОС для ОС: Debian Jessie
Параметры платы uname-a: Linux MYS-IMX6UL 4.1.15+ # 1 SMP ПРЕДИСЛОВИЕ Пт 28 сентября 05:44:29 PDT 2018 armv7l GNU / Linux
Кросс-компилятор, используемый в родной системе: arm-linux-gnueabihf-g ++
AWS Embedded C SDK работал нормально, без каких-либо сбоев. Но кросс-скомпилированный исполняемый файл pub-sub-sample из C ++ SDK при запуске не дает никакого другого выхода, кроме «Ошибка сегментации». Любая другая команда, введенная после этого, приводила только к «Сегментации», и плату необходимо перезапустить. Мы не можем попробовать какую-либо команду ‘dmesg’ или ‘gdb’, чтобы получить основную причину сбоя.
Я попробовал кросс-компиляцию и запуск простых программ на C ++ с использованием shared_ptr на плате и не столкнулся с какими-либо проблемами. В то время как простые программы, которые я пишу, кросс-компилируются как «общий объект», кросс-компиляция SDK привела к выполнению исполняемого файла, который динамически связывается. Я не знаю, может ли это быть причиной «Сегментарного сбоя». Я использую Filezilla FTP для передачи своих скомпилированных файлов на плату с типом передачи «двоичный».
Я поместил операторы cout в PubSub.cpp сразу после int main (), чтобы определить, до какого момента программа работает без проблем. Даже эти простые операторы печати выдают ошибку «Ошибка сегментации».
Подскажите, пожалуйста, возможные причины такого сбоя?
Задача ещё не решена.
Других решений пока нет …