Я сознательно пишу этот ответ на старый вопрос с этим в виду, потому что другие ответы мне не помогли.
Я получил Illegal Instruction: 4
, пока запустив двоичный файл в той же системе, на которой я его скомпилировал, поэтому -mmacosx-version-min
не помогло.
Я использовал gcc в Code Blocks 16 в Mac OS X 10.11.
Тем не менее, отключить все флаги компилятора Code Blocks для оптимизации. Поэтому посмотрите на все флаги, установленные в блоке Code Block (щелкните правой кнопкой мыши на Project -> «Build Properties») и отключите все флаги, которые вам не нужны, особенно -s
и флаги -O
для оптимизации , Это сделало это для меня.
Если предположить, что уведомления / индикации инициируются записью с надлежащей характеристикой, то выглядит, что поток информации корректен. т.е.
D/BluetoothGatt: setCharacteristicNotification() - uuid: e3ba1526-2785-005b-6676-d476eabca48e enable: true
D/RxBle#ConnectionOperationQueue: STARTED DescriptorWriteOperation(82308959)
D/RxBle#BluetoothGatt$1: onDescriptorWrite descriptor=00002902-0000-1000-8000-00805f9b34fb status=0
D/RxBle#ConnectionOperationQueue: FINISHED DescriptorWriteOperation(82308959) in 91 ms
D/RxBle#ConnectionOperationQueue: STARTED CharacteristicWriteOperation(85617269)
D/RxBle#BluetoothGatt$1: onCharacteristicWrite characteristic=e3ba1527-2785-005b-6676-d476eabca48e status=0
E/Interval_start_timestamp: write 1548979200
D/RxBle#ConnectionOperationQueue: FINISHED CharacteristicWriteOperation(85617269) in 92 ms
Сначала установите уведомление, затем записывайте характеристику и не сообщайте о каких-либо ошибках. В этой ситуации я думаю, что проблема связана с допущениями и будет дважды проверяться, если:
ByteUtils.toByteArray(timestamp)
, т.е. порядком байтов)