Jump to content

    

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

Видимо автору не нужна реальная помощь, а просто хочется потрепаться... :wacko:

Для меня автор выглядит школьником, который прочитал книгу как программировать STM32, да в школе недавно программирование изучали - нафантазировал перспективы, а тут и задачка подвернулась крутая - но нам всё по плечу, вот и взялся делать.

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

Но у автора есть интернет и там множество форумов по всем темам, и специалистов хватает - помогут же, вот и заваливает он всех дилетантскими вопросами по различным темам.

Share this post


Link to post
Share on other sites
Да, обнаружилась таки еще проблема уже с железом не связанная. При больших потоках байты таки теряются уже в интерфейсе USB. Приходится таки выдавать с задержками. Тогда работает.

О! Ещё и USB всплыл... Угадайка продолжается? :rolleyes:

Где в Вашей архитектуре он фигурирует и в каком качестве?

И опять магические костылизадержки на которых всё только и держится :rolleyes:

Share this post


Link to post
Share on other sites

FT232. Странное дело. Вроде компов - то с комом не осталось... Слушай, хочешь потрепаться - иди в другую тему. Толку от тебя все равно нет. А на задержках - да, держится. Через сутки я разберусь в чем проблема и сотру этот код вместе с задержками.

Edited by Димон Безпарольный

Share this post


Link to post
Share on other sites
FT232. Странное дело. Вроде компов - то с комом не осталось...

Действительно странное. На домашнем компе - 2x COM на MB, на работе - COM на MB + мультипортовка-PCI, на старой работе - мультипортовка-PCI.

Видимо это глюки это у меня. Видимо их всё-таки нет :laughing:

Если у Вас чего-то нет, то не нужно думать, что все такие бедные.

 

Слушай, хочешь потрепаться - иди в другую тему.

Слушайте - не нужно меня посылать. И мы с вами на брудершафт не пили.

 

Через сутки я разберусь в чем проблема и сотру этот код вместе с задержками.

ну-ну. ...и слепите новые костыли. B)

 

PS: Не нужны советы - нафига тогда вообще сюда писать? Не умеете прочитать и понять советы - это ваша проблема, а не тех кто советует.

Share this post


Link to post
Share on other sites

Зачем столько букв писать? Я получил информацию от людей, за что им большое спасибо. А ты загаживаешь мою тему хламом, расходуя на это самое дорогое что у человека есть - время. Еще раз, для непонятливых - мне не нужны ТВОИ советы. Они не содержат информации.

Share this post


Link to post
Share on other sites
А ты загаживаешь мою тему хламом, расходуя на это самое дорогое что у человека есть - время. Еще раз, для непонятливых - мне не нужны ТВОИ советы. Они не содержат информации.

Еще в посте #9 уважаемый jcxz посоветовал проверить консерваторию. Я полностью поддерживаю его совет, а от себя посоветовал бы не переходить на необоснованное хамство в отношении людей. Подход, который вы используете не годится для решения коммерческих задач, а поскольку у вас есть руководство, то осмелюсь предположить, что ваша задачка не поделка выходного для. Если вы для себя или для начальства хотите получить подтверждение "эта задача не может быть решена", то вы ошибаетесь - задача элементарная, но вы решаете ее не с того края, отсюда и сложности. Попробуйте успокоиться и понять, что вам советуют. Я сам в том месяце работал с ESP8266 и МК уровня STM32F0. От сервера приходят UDP-пакеты и я на каждый должен ответить. Но пока я отвечаю на предыдущий, ко мне может прилетесь еще несколько новых. Памяти на всех нет в принципе. Поэтому, получив и обработав пакет, я помечаю, что нужно отправить ответ (один флаг). Получив другие пакеты - обрабатываю их и устанавливаю соответствующие флаги. Когда есть возможность отправить ответ, смотрю первый попавшийся флаг и отправляю соответствующий ответ сбросив флаг. Расход памяти минимальный, все пакеты обрабатываются, никто не теряется, никаких задержек нет. Предыдущий код требовал, чтобы сервер не отправлял UDP-пакет, не получив ответ на предыдущий, т.к. буфера перетерались.

Все решает грамотная архитектура, а необходимость задержек, зависимость от размера буферов и т.п. являются свидетельством неграмотной архитектуры или ее отсутствия. Кто-то называет это консерваторией. Подход "через сутки разберусь, а дальше меня не волнует" тоже не признак профессионализма. Завтра начальство захочет новую фичу, и вы с большой вероятностью не сможете ее добавить, т.к. ваш подход обладает плохой масштабируемостью. Пару раз по банальным фичам ответите начальству отказом - на вашем месте будет работать другой программист. Оно вам надо?

Share this post


Link to post
Share on other sites

Мне этот подход знаком - самое главное не замечать что хамство и переход на личность начался с 29 поста и обвинять в этом только меня. Терпел до последнего, но господин принял вежливость за слабость и не унялся.

 

Здесь вполне уважаемые люди, но без гнильцы не обходится ни один форум. У товарища гонору как у Циолковского, а желания разбираться нет. Видимо и знаний тоже нет.

 

Здесь только один человек придрался к задержкам не пожелав разобраться в сути. Даже когда я написал, что проблема УЖЕ не в контроллере, пакеты теряются за ним - он не унялся. Число байт ушедших в DR больше чем выплюнул терминал на 1-3байта на 8Кб информации. Поскольку данные не искажаются, я склонен полагать что частоты не смещены. И только ЗАДЕРЖКА в некритичных во времени местах решила эту проблему, я думаю что Вы уже догадались почему.

 

У Вас желания тоже не нашлось. У меня другая ситуация чем то, что Вы написали. Замечательно что Вы обошлись без памяти и у Вас просто все это работает. Рад за Вас. Вы просто герой.

 

Я НЕ могу ничего отложить. В меня последовательно выплевывают тремя пакетами - таков алгоритм HANDSHAKE. Я должен их обработать в реальном времени. Задержка между пакетами - милисекунды. Поэтому если я занимаюсь выводом DEBUG информации с ОЖИДАНИЕМ появления в буфере свободного места - я ПРОСТО ТЕРЯЮ ПАКЕТЫ.

 

ЗДЕРЖКА в некритичных во времени местах помогает снизить размер кольцевого буфера PC порта с 8 до 2кБ. Предложите другой способ - обсудим.

 

Ну как до "светочей" разума и всяких свидомитов донести эту простую мысль? Третий раз пишу. А мне намекают на консерваторию. Зачем тартить жизнь на написание глупостей особенно если считаешь себя Циолковским?

Edited by Димон Безпарольный

Share this post


Link to post
Share on other sites
Я должен их обработать в реальном времени.

Дык, вы же их обрабатываете без проблем. Просто вы хотите параллельно зачем-то сгенерить гораздо большую по объему отладочную информацию и успеть ее выплюнуть. Старайтесь в отладку выкидывать только ошибки и результат обработчика HardFault. Что вам мешает подключиться к uart от модема и записывать весь обмен, а затем его обрабатывать (в том числе и с помощью спецутилит)?

 

Ну как до "светочей" разума и всяких свидомитов донести эту простую мысль? Третий раз пишу.

Дык, попытайтесь писать суть, а не "много букв". Не всегда, чем длиннее текст, тем там больше информации.

Как называется ваша тема? И при чем тут printf, когда причина у вас в совершенно другом месте?

Боюсь, если вы не поменяете манеру общения, то заработаете на этом форуме себе такую репутацию, что большинство профи откажутся вам помогать.

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

Share this post


Link to post
Share on other sites
Предложите другой способ - обсудим.
Неа. Тут уже правильно писали: проблема в консерватории. Прислушайтесь к этому совету:
Боюсь, если вы не поменяете манеру общения, то заработаете на этом форуме себе такую репутацию, что большинство профи откажутся вам помогать.

 

Share this post


Link to post
Share on other sites
Дык, вы же их обрабатываете без проблем. Просто вы хотите параллельно зачем-то сгенерить гораздо большую по объему отладочную информацию и успеть ее выплюнуть. Старайтесь в отладку выкидывать только ошибки и результат обработчика HardFault. Что вам мешает подключиться к uart от модема и записывать весь обмен, а затем его обрабатывать (в том числе и с помощью спецутилит)?

 

 

Дык, попытайтесь писать суть, а не "много букв". Не всегда, чем длиннее текст, тем там больше информации.

Как называется ваша тема? И при чем тут printf, когда причина у вас в совершенно другом месте?

Боюсь, если вы не поменяете манеру общения, то заработаете на этом форуме себе такую репутацию, что большинство профи откажутся вам помогать.

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

Если такие "профи" перестанут тут "помогать", я скажу им спасибо. Пролистайте страницу выше. Первый пост. Зачем этот кирпич тут? Если Вы отвечаете для других, должны понимать что тему с этим говном будет сложно читать. Сюда заходят разные люди за советом. И профи и новички. Я себя поофи никогда не считал. Но здесь за ошибки некоторые считают себя обязанным наказать человека изрядно ему нахамив. И очень обижаются на ответное хамство. Зачем нужно не разобравшись в сути писать кирпичи про консерваторию?

 

Тема о правильной организации вывода debug информации. Она выводится через printf. Эта информация генерится библиотекой mbedtls. Вывод раскидан в три файла по 5-7 тысяч строк каждый. В общей сложности 150 точек вывода примерно. Ей Богу, править и раскидывать по уровням debuglevel - не лучший выход.

 

Не я что - то там выкидываю отладочное в порт, а автор библиотеки. Ну и я потом печатаю принятый дамп уже в некритичном по времени месте.

 

Сейчас это работает и очень помогает мне разобраться в сути.

Edited by Димон Безпарольный

Share this post


Link to post
Share on other sites
Сейчас это работает и очень помогает мне разобраться в сути.

Что ж остается лишь пожелать вам удачи.

Share this post


Link to post
Share on other sites
Боюсь, если вы не поменяете манеру общения, то заработаете на этом форуме себе такую репутацию, что большинство профи откажутся вам помогать.

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

Не утруждайте себя, коллега. Товарищ уже показал тут во всей красе кем он является - тут уже ничего не исправимо. :smile3046:

У него все вокруг виноваты: и не правильно советуют, и автор некоей "библиотеки" неправильно что-то там делает.

И сплошной поток хамства в ответ на попытки помочь ему...

Товарищ уже в игнор-листе.

Share this post


Link to post
Share on other sites
Попытки "помочь" как раз и начались у этого "помошника" с хамства в 29-м посту. Остальное - чистая ложь. Ное ему не привыкать.

Перечитал пост #29. Кроме

Видимо автору не нужна реальная помощь, а просто хочется потрепаться

все остальное по делу и справедливо. Хотя, и процитированное предположение имеет право на жизнь.

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.
Sign in to follow this