jcxz 241 19 июня Опубликовано 19 июня · Жалоба 36 минут назад, Turgenev сказал: Но я совсем не понял зачем это. Нет, ваши доводы и доводы в статье мне понятны, но... вот, например, экономия ресурса флеш. С ее ресурсом в тысячи циклов записи/стирания мне хватит за глаза. Всего каких-то 10тыс. циклов. При 100 стираниях в день хватит на ~100 дней. А 100 стираний в день при активной отладке и программных брекпоинтах во флешь - вполне реально. Или больше (с программными бряками - может значительно больше). 36 минут назад, Turgenev сказал: По быстроте и сейчас доли секунд, секунды все интересующие меня операции и функции. Что-то не верится... Разве что у вас совсем маленький код. Обычно даже загрузка в ОЗУ занимает несколько секунд. Всё вместе. 36 минут назад, Turgenev сказал: сколько у вас занимает инициализация RAW LwIP, чтобы понять нормально ли, что она грузится 2 секунды при 400 МГц тактовой ядра. Кто "она"? И почему "грузится"? Что и куда грузится? LwIP - это часть программы. Грузится эта часть в память МК отладчиком при загрузке вместе с остальным кодом. Но выше вы писали что у вас всё ПО грузится миллисекунды. А тут оказывается только одна часть ПО - уже 2 секунды. Что-то путаетесь совсем.... PS: LwIP-ом не пользуюсь. У меня свой стек. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Turgenev 1 19 июня Опубликовано 19 июня (изменено) · Жалоба 39 минут назад, jcxz сказал: Кто "она"? И почему "грузится"? Что и куда грузится? LwIP - это часть программы. Грузится эта часть в память МК отладчиком при загрузке вместе с остальным кодом. Но выше вы писали что у вас всё ПО грузится миллисекунды. А тут оказывается только одна часть ПО - уже 2 секунды. Что-то путаетесь совсем.... Не верно выразился, не "грузится", а инициализируется, библиотека LwIP. Под временем загрузки контроллера я понимаю время инициализации всей периферии, в моем случае, все что до бесконечного цикла. Загрузка прошивки программатором в МК секунда-две. Все функции, с которыми работаю, т.е. которые пишу я- секунда, доли секунды и да, скорее всего они оч просты. Приведете пример (не кода, а в общем) в каких случаях/почему для вас актуально грузить прошивку в ОЗУ? Да, LWIP_INIT(), как выяснилось, выполняется 2 секунды, но это библиотечная функция, в которую вообще я не лезу, потому что мне хватает возможностей, которые она дает "из коробки". Обратил внимание только на время ее выполнения: удивило что так долго, стало интересно и только. Но скорее всего, на этом мое внимание и закончится, цели другие, у меня требований к стеку TCP/IP нет, просто он должен быть для связи с ПК по Ethernet. Да и смысл отлаживать стороннюю библиотеку, я же ее для этого и взял, чтобы не писать свою. Изменено 19 июня пользователем Turgenev Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Arlleex 183 20 июня Опубликовано 20 июня · Жалоба 8 часов назад, Turgenev сказал: Но я совсем не понял зачем это. Нет, ваши доводы и доводы в статье мне понятны, но... вот, например, экономия ресурса флеш. С ее ресурсом в тысячи циклов записи/стирания мне хватит за глаза. Вот и не забивайте голову. Цитата Вот есть у меня интерес узнать сколько загружается контроллер, не нравится что LWIP_INIT() в RAW конфигурации выполняется около 2 секунд Очевидно, что-то не то меряете. Цитата нормально ли, что она грузится 2 секунды при 400 МГц Не нормально, даже если 4 кГц. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 50 20 июня Опубликовано 20 июня · Жалоба 11 часов назад, jcxz сказал: Всего каких-то 10тыс. циклов. При 100 стираниях в день хватит на ~100 дней. А 100 стираний в день при активной отладке и программных брекпоинтах во флешь - вполне реально. Даже не представляю, это видать совсем не думать головой, и каждое изменение битов проверять новой компиляцией и перепрошивкой? УжОс! И да, сам отлаживаю во флешке, ибо удобнее, и потом не нужен мозго@#$ с переназначением адресов программы в ОЗУ, адресов старта линкера и пр, что я очень не люблю. За все годы ни одного МК, от пиков, аврок и стм не затер "до дыр")))))))) Один раз только аврку залочил, и то не фатально, просто при использовании говнопрограмматора, что было уроком потом... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 241 20 июня Опубликовано 20 июня · Жалоба 1 час назад, mantech сказал: Даже не представляю, эт видать совсем не думать головой, и каждое изменение битов проверять новой компиляцией и перепрошивкой? Почему "не думать"? Может наоборот "думать" и поэтому лучше каждое минимальное изменение тестировать. Чтобы потом когда написали 100500 строк кода, вдруг не оказалось что где-то глючит, а где - не понятно в той куче изменений. И потом несколько дней отматывать назад - где именно накосячено. Вот именно, что для вас каждое изменение - "перепрошивка". А если отлаживать в ОЗУ её просто нет. И нет проблемы. Сделали простое изменение - сразу протестили. Особенно если что-то непонятно с периферией и приходится исследовать, то бывает и десятки раз перепишешь и перезагрузишь. И что такое "программные брекпоинты" вы видимо тоже в первый раз слышите? 1 час назад, mantech сказал: УжОс! И да, сам отлаживаю во флешке, ибо удобнее, и потом не нужен мозготрах с переназначением адресов программы в ОЗУ, адресов старта линкера и пр, что я очень не люблю. Изменение пары строчек в командном файле линкёра для - вас "мозготрах"??? Тогда всё печально. Не представляю как вы вообще что-то программируете. Если такое примитивное действие для вас так сложно. 1 час назад, mantech сказал: За все годы ни одного МК, от пиков, аврок и стм не затер "до дыр")))))))) Тётя Клава с рынка - тоже не затёрла ни одного. А всё почему? Просто потому, что никогда не программировала ничего. PS: И ещё один плюс отладки в ОЗУ - из-за того, что всё размещение кода-данных полностью перетряхивается (в другое распределение памяти), то могут вылазить скрытые баги (например с разрушением памяти). Которые иначе не были бы выявлены. 10 часов назад, Turgenev сказал: Да, LWIP_INIT(), как выяснилось, выполняется 2 секунды, но это библиотечная функция, в которую вообще я не лезу Чтобы что-то осмысленно измерять, нужно хотя-бы примерно представлять что делает какая часть вашего кода. Иначе грош цена таким измерениям. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 50 20 июня Опубликовано 20 июня · Жалоба 3 часа назад, jcxz сказал: А всё почему? Просто потому, что никогда не программировала ничего. И как я об этом не подумал))) 3 часа назад, jcxz сказал: Почему "не думать"? Может наоборот "думать" и поэтому лучше каждое минимальное изменение тестировать. Голова-то для чего тогда, каждый кусок кода сначала моделирую в голове, да, это такое упражнение для ума, вместо тупых запусков и тестов, а проверяю уже финальный вариант, как ни странно это быстрее))) 3 часа назад, jcxz сказал: PS: И ещё один плюс отладки в ОЗУ - из-за того, что всё размещение кода-данных полностью перетряхивается (в другое распределение памяти), то могут вылазить скрытые баги Вот про это перетряхивание и писал, а я люблю, когда все "полочки" гвоздями прибиты куда надо, за-то всегда знаешь, что где лежит... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 241 20 июня Опубликовано 20 июня · Жалоба 2 часа назад, mantech сказал: Вот про это перетряхивание и писал, а я люблю, когда все "полочки" гвоздями прибиты куда надо, за-то всегда знаешь, что где лежит... Почему любите? боитесь что иначе скрытые баги полезут? Вот например такая ситуация: Есть две задачи ОС. Стартуют выполнение одновременно (от какого-то события), потом выполняются паралельно, независимо. Задача1 - вычисляет какие-то данные, а задача2 должна эти данные забирать. По уму - задача2 должна ждать пока задача1 не подготовит данные. Но программист забыл сделать эту синхронизацию. И так случилось, что задача1 всегда выполняется немного быстрее, поэтому успевает подготовить и записать данные до того, как их начнёт читать задача2. Баг несомненно есть. Но он не проявляется до поры до времени. И проявиться может очень не скоро (когда по каким-то причинам время работы задачи1 немного увеличится). Когда программист уже забудет что и как он здесь писал, и заниматься будет совсем другой частью кода. И найти такой баг будет непросто. А вот если бы программист по всякому перетряхивал свой код, заставлял его выполняться с разными времянками, с разным распределением памяти - то баг мог вылезти сразу. Ну и само собой - баги с порчей памяти (всякие переполнения стека и других массивов) они выявляются тем быстрее, чем чаще перемешиваешь код. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 50 20 июня Опубликовано 20 июня · Жалоба 9 минут назад, jcxz сказал: Почему любите? С первых лет программирования всегда любил, чтобы память была по возможности статически распределена и по конкретным адресам, т.к. часто бывает нужно определенное выравнивание, и не только на 4, 16, бывает и на неск.килобайт, когда все адреса в одном дефайне то я сразу вижу где и что, там же заданы и предельные размеры областей, что тоже сразу выучил, что при любой записи блоков памяти нужно проверять на переполнение. Единственный минус, это при переходе на другой МК приходится эту таблицу пересмотреть и переписать, что изменилось, но это дело 10 минут, и никакие линкеры и пр трогать не надо, а то в иаре они одни, гцц другие, у аврок всяких третьи... Понимаю, что на вкус и цвет, но мне вот так больше нравится... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Turgenev 1 20 июня Опубликовано 20 июня · Жалоба 7 часов назад, jcxz сказал: Чтобы что-то осмысленно измерять, нужно хотя-бы примерно представлять что делает какая часть вашего кода. Иначе грош цена таким измерениям. Не понимаю о чем вы, но считаю что измерял осмысленно, т.к. есть конкретная цель- узнать сколько инициализируется библиотека. Если вы про "разберись во всех тонкостях работы библиотеки и тогда не будет вопросов", то по-моему это через чур много для простого вопроса- инициализируется ли у вас библиотека столько же? 10 часов назад, Arlleex сказал: Очевидно, что-то не то меряете. Создал тему, где расписал все как измеряю: Спойлер Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться