В настоящее время я пишу приложение для Android, которое будет взаимодействовать с MCU, которое будет использовать чип FTDI для связи I2C. В настоящее время у меня есть FTDI ft311 Dev Board, и я пытаюсь протестировать образцы приложений, предоставленные FTDI. Я работаю с Приложение I2CDemo. У меня есть плата, подключенная к плате оценки TI MSP-EXP430FR2433, на которой запущена простая программа, генерирующая значения ASCII, хранящиеся в буфере.
Моя проблема сейчас в том, что когда я запускаю приложение I2CDemo, я могу прочитать из буфера только один раз, и любой последующий запрос вызывает в приложении ошибку ANR. То же самое и для записи в MCU. Я не могу понять, почему это происходит, даже после изучения предоставленного кода.
Я вытащил журнал из файла трассировки adb, и вот его часть:
DALVIK THREADS (12):
"Thread-2" prio=5 tid=12 Runnable
| group = "main" sCount=0 dsCount=0 obj=0x12d46280 self=0x7fb1a05600
| sysTid=30669 nice=0 cgrp=default sched=0/0 handle=0x7fa6a42450
| state=R schedstat=( 0 0 0 ) utm=5410 stm=0 core=4 HZ=100
| stack=0x7fa6940000-0x7fa6942000 stackSize=1037KB
| held mutexes= "mutator lock"(shared held)
at
com.I2CDemo.FT311I2CInterface$handler_thread.run(FT311I2CInterface.java:458)
Любая помощь приветствуется.
Спасибо за ваш ответ. Я обновил вопрос, а также получил ответ от FTDI: Проект FT311 разработан в период выхода Android OS 4.x. Я думаю, проблема в том, что действие доступа (чтение / запись) размещено в основном потоке, и у него возникнут некоторые проблемы в более новой версии ОС. Заказчик может изменить I2CDemoActivity.java и поместить действие доступа (чтение / запись) в новые потоки.




Пожалуйста, попробуйте выяснить, где в вашем коде, вероятно, заключается проблема, или предоставьте какие-либо журналы / ошибки, которые предоставляет сбой приложения. Вы должны предоставить минимальный воспроизводимый пример, чтобы было легче воспроизвести вопрос и ответить на него.