Перейти к содержанию

    

Помогите разобраться с PRINTF

Хоть тут мне и приписали что я обвиняю в чем - то авторов MBED TLS (вероятно тоже "по делу"), хочу отдать должное - ребята грамотные, постарались на славу. Благодаря debug информации, проверкам конфигурации такая сложная библиотека не так уж трудно отлаживается. Респект.

 

Что касается самого DBUG, то сколько тут местные "помощники" ни надрывались, ничего нового не придумали - не можешь ждать, делай буфер шире. Как промежуточное решение - задержка перед критическим во времени местом выполнения, чтобы войти в этот кусок кода с чистым буфером. Тогда буфер можно сделать меньше. Это вкратце.

Изменено пользователем Димон Безпарольный

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
то сколько тут местные "помощники" ни надрывались, ничего нового не придумали - не можешь ждать, делай буфер шире.

Ровно так же никто из профи не сможет ничего придумать, чтобы по вашему желанию "2х2=5".

Грамотное решение - попросить вторую сторону не присылать данные, к обработке которых вы не готовы.

TCP позволяет это делать, причем очень гибко и грамотно. Если вы не хотите разобраться как это сделать, то да - увеличивайте буфер,

но не надо в код вставлять задержки, даже если сейчас это работает. И точно не нужно хамить людям, которые считают такой подход

дурным тоном программирования.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Хоть тут мне и приписали что я обвиняю в чем - то авторов MBED TLS (вероятно тоже "по делу"), хочу отдать должное - ребята грамотные, постарались на славу.

Да ладно!

То-то чрез одно место оно работает…

Хотя, надо еще уточнить, по чьей вине: то ли вы, товарищ, неправильно документацию читаете, то ли авторы этой библиотеки...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Ровно так же никто из профи не сможет ничего придумать, чтобы по вашему желанию "2х2=5".

Грамотное решение - попросить вторую сторону не присылать данные, к обработке которых вы не готовы.

TCP позволяет это делать, причем очень гибко и грамотно. Если вы не хотите разобраться как это сделать, то да - увеличивайте буфер,

но не надо в код вставлять задержки, даже если сейчас это работает. И точно не нужно хамить людям, которые считают такой подход

дурным тоном программирования.

 

 

Никто и не собирался изначально хамить. Хамство и переход на личности начался с 29 поста. Я лишь вежливо просил не гадить в этой теме. Но "помошник" так и не понял о чем его просят.

 

Что касается 2х2 =5, люди предлагают иногда нестандартные решения. На это и надеялся. Но нарвался на хама . знал бы - не начинал бы сюда писать.

 

На стадии handshake сервер ждать не будет. Так обьяснили инженеры IBM. Связано с загрузкой серверов. Да и я не представляю сейчас как это сделать через M95 в котором TCP реализован внутри.

 

 

 

Да ладно!

То-то чрез одно место оно работает…

Хотя, надо еще уточнить, по чьей вине: то ли вы, товарищ, неправильно документацию читаете, то ли авторы этой библиотеки...

Ну Вам конечно виднее. Вы же код писали - не я. Работает нормально. Третий час - без сбоев.

Изменено пользователем Димон Безпарольный

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Это оно без сбоев работает, пока не понадобилось еще что-то добавить. А там опять та же песня пойдет?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
На стадии handshake сервер ждать не будет. Так обьяснили инженеры IBM. Связано с загрузкой серверов. Да и я не представляю сейчас как это сделать через M95 в котором TCP реализован внутри.

Завтра у них немного изменится размер hadshake, сертификатов, или задержка в одном месте появится, а в другом исчезнет и у вас внезапно всё перестанет работать. Или вдруг сервер сменится....

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Завтра у них немного изменится размер hadshake, сертификатов, или задержка в одном месте появится, а в другом исчезнет и у вас внезапно всё перестанет работать. Или вдруг сервер сменится....

Вы наверно стандарт не читали. Весь мир работает с серверами MQTT IBM. В России кучу железа понаделали. Откуда столько страхов?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Да и я не представляю сейчас как это сделать через M95 в котором TCP реализован внутри.

Почитать Инструкцию

When the data transfer should be suspended, the CTS line is set inactive until the transfer from the receiving buffer has

completed. When the receiving buffer is ok to receive more data, CTS goes active once again.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я уже писал, что аппаратная реализация не предусматривает пару RTS - CTS. К тому же в модулях ESP - 05 эти сигналы наружу не выведены. В изделии два радиомодуля.

 

 

Изменено пользователем Димон Безпарольный

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Я уже писал, что аппаратная реализация не предусматривает пару RTS - CTS. К тому же в модулях ESP - 05 эти сигналы наружу не выведены. В изделии два радиомодуля.

Вам же для отладки нужно. Киньте проводком. Когда все отладите - отключите debug-вывод портянок и уберете провод.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Вы наверно стандарт не читали. Весь мир работает с серверами MQTT IBM. В России кучу железа понаделали. Откуда столько страхов?

А мне и не надо читать. Если в программе требуется подбор задержек - значит программа неправильно построена. И эта неправильность внезапно вылезет в самый неподходящий момент. Вы же сами писали:

На стадии handshake сервер ждать не будет. Так обьяснили инженеры IBM. Связано с загрузкой серверов.

А завтра у инженеров IBM что-нибудь еще возникнет и они еще чего-нибудь поменяют....

Вот в этом и состоит разница между между профессиональным и дилетантским(читай начинающего) подходом, профессионал во-первых руководствуется правилами и стандартами при разработке, во-вторых он видит и понимает "подводные камни" которые могут возникнуть или точно проявятся и смотрит в перспективу. А дилетант говорит - у меня всё работает отлично, остальное меня не волнует.

У меня студенты на практику приходят, типичные дилетанты, я им это сразу говорю :) и они делятся на две группы - одних ничего не интересует, главное чтобы заработало, они начинают подбирать в программах задержки, в схемах резисторы и конденсаторы, а другие пытаются разобраться и потом осознанно применяют.

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Стандарт как раз такое допскает. Задержка нужна была на стадии отладки как временное решение. Ее уже нет, как и вывода массива DBUG информации. Стандарт на TLS допускает такую работу сервера. Дилетант как раз и говорит:

 

А мне и не надо читать.

 

и не разобравшись в сути делает вывод:

Если в программе требуется подбор задержек

 

Ничего подбирать не требовалось. Читайте выше. Не делайте глупых выводов раз Вы кого - то там учите.

 

Вам же для отладки нужно. Киньте проводком. Когда все отладите - отключите debug-вывод портянок и уберете провод.

Так уже. DEBUG отключен. Библиотека TLS работает AS - IS, без изменения кода библиотеки.

Изменено пользователем Димон Безпарольный

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Может кому пригодится - когда начал дорабатывать вывод в порт заметил что контроллер виснет на строке

 

while(PC_TxHead != PC_TxTail)

 

если переменные объявлять без volatile. Получается так:

 

Screenshot_2.png

 

Если объявлять:

 

volatile uint8_t  PC_TxHead=0;
volatile uint8_t  PC_TxTail=0;

 

То получается совсем другая картина:

 

 

Screenshot_1.png

 

 

Оптимизация Level 3.

Изменено пользователем Димон Безпарольный

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Это уже всем ёжикам известно.

Но за заботу огромное спасибо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Гость
Эта тема закрыта для публикации ответов.
Авторизация