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

STM32H7 окирпичивание тактированием

36 минут назад, Turgenev сказал:

Но я совсем не понял зачем это. Нет, ваши доводы и доводы в статье мне понятны, но... вот, например, экономия ресурса флеш. С ее ресурсом в тысячи циклов записи/стирания мне хватит за глаза.

Всего каких-то 10тыс. циклов. При 100 стираниях в день хватит на ~100 дней. А 100 стираний в день при активной отладке и программных брекпоинтах во флешь - вполне реально. Или больше (с программными бряками - может значительно больше).

36 минут назад, Turgenev сказал:

По быстроте и сейчас доли секунд, секунды все интересующие меня операции и функции. 

Что-то не верится... Разве что у вас совсем маленький код. Обычно даже загрузка в ОЗУ занимает несколько секунд. Всё вместе.

36 минут назад, Turgenev сказал:

сколько у вас занимает инициализация RAW LwIP, чтобы понять нормально ли, что она грузится 2 секунды при 400 МГц тактовой ядра.

Кто "она"? И почему "грузится"? Что и куда грузится? LwIP - это часть программы. Грузится эта часть в память МК отладчиком при загрузке вместе с остальным кодом. Но выше вы писали что у вас всё ПО грузится миллисекунды. А тут оказывается только одна часть ПО - уже 2 секунды. Что-то путаетесь совсем.... :wacko2:

 

PS: LwIP-ом не пользуюсь. У меня свой стек.

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


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

39 минут назад, jcxz сказал:

Кто "она"? И почему "грузится"? Что и куда грузится? LwIP - это часть программы. Грузится эта часть в память МК отладчиком при загрузке вместе с остальным кодом. Но выше вы писали что у вас всё ПО грузится миллисекунды. А тут оказывается только одна часть ПО - уже 2 секунды. Что-то путаетесь совсем.... :wacko2:

Не верно выразился, не "грузится", а инициализируется, библиотека LwIP.

Под временем загрузки контроллера я понимаю время инициализации всей периферии, в моем случае, все что до бесконечного цикла.

Загрузка прошивки программатором в МК секунда-две. Все функции, с которыми работаю, т.е. которые пишу я- секунда, доли секунды и да, скорее всего они оч просты. Приведете пример (не кода, а в общем) в каких случаях/почему для вас актуально грузить прошивку в ОЗУ?

Да, LWIP_INIT(), как выяснилось, выполняется 2 секунды, но это библиотечная функция, в которую вообще я не лезу, потому что мне хватает возможностей, которые она дает "из коробки". Обратил внимание только на время ее выполнения: удивило что так долго, стало интересно и только. Но скорее всего, на этом мое внимание и закончится, цели другие, у меня требований к стеку TCP/IP нет, просто он должен быть для связи с ПК по Ethernet. Да и смысл отлаживать стороннюю библиотеку, я же ее для этого и взял, чтобы не писать свою.

 

Изменено пользователем Turgenev

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


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

8 часов назад, Turgenev сказал:

Но я совсем не понял зачем это. Нет, ваши доводы и доводы в статье мне понятны, но... вот, например, экономия ресурса флеш. С ее ресурсом в тысячи циклов записи/стирания мне хватит за глаза.

Вот и не забивайте голову.
 

Цитата

Вот есть у меня интерес узнать сколько загружается контроллер, не нравится что LWIP_INIT() в RAW конфигурации выполняется около 2 секунд

Очевидно, что-то не то меряете.
 

Цитата

нормально ли, что она грузится 2 секунды при 400 МГц

Не нормально, даже если 4 кГц.

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


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

11 часов назад, jcxz сказал:

Всего каких-то 10тыс. циклов. При 100 стираниях в день хватит на ~100 дней. А 100 стираний в день при активной отладке и программных брекпоинтах во флешь - вполне реально.

Даже не представляю, это видать совсем не думать головой, и каждое изменение битов проверять новой компиляцией и перепрошивкой? УжОс! И да, сам отлаживаю во флешке, ибо удобнее, и потом не нужен мозго@#$ с переназначением адресов программы в ОЗУ,  адресов старта линкера и пр, что я очень не люблю. За все годы ни одного МК, от пиков, аврок и стм не затер "до дыр"))))))))

Один раз только аврку залочил, и то не фатально, просто при использовании говнопрограмматора, что было уроком потом...

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


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

1 час назад, mantech сказал:

Даже не представляю, эт видать совсем не думать головой, и каждое изменение битов проверять новой компиляцией и перепрошивкой?

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

И что такое "программные брекпоинты" вы видимо тоже в первый раз слышите?

1 час назад, mantech сказал:

УжОс! И да, сам отлаживаю во флешке, ибо удобнее, и потом не нужен мозготрах с переназначением адресов программы в ОЗУ,  адресов старта линкера и пр, что я очень не люблю.

Изменение пары строчек в командном файле линкёра для - вас "мозготрах"??? :shok:  Тогда всё печально. Не представляю как вы вообще что-то программируете. Если такое примитивное действие для вас так сложно.

1 час назад, mantech сказал:

За все годы ни одного МК, от пиков, аврок и стм не затер "до дыр"))))))))

Тётя Клава с рынка - тоже не затёрла ни одного. А всё почему? Просто потому, что никогда не программировала ничего. :biggrin:

 

PS: И ещё один плюс отладки в ОЗУ - из-за того, что всё размещение кода-данных полностью перетряхивается (в другое распределение памяти), то могут вылазить скрытые баги (например с разрушением памяти). Которые иначе не были бы выявлены.

10 часов назад, Turgenev сказал:

Да, LWIP_INIT(), как выяснилось, выполняется 2 секунды, но это библиотечная функция, в которую вообще я не лезу

Чтобы что-то осмысленно измерять, нужно хотя-бы примерно представлять что делает какая часть вашего кода. Иначе грош цена таким измерениям.  :unknw:

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


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

3 часа назад, jcxz сказал:

А всё почему? Просто потому, что никогда не программировала ничего.

И как я об этом не подумал)))

3 часа назад, jcxz сказал:

Почему "не думать"? Может наоборот "думать" и поэтому лучше каждое минимальное изменение тестировать.

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

3 часа назад, jcxz сказал:

PS: И ещё один плюс отладки в ОЗУ - из-за того, что всё размещение кода-данных полностью перетряхивается (в другое распределение памяти), то могут вылазить скрытые баги

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

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


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

2 часа назад, mantech сказал:

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

Почему любите? боитесь что иначе скрытые баги полезут?  :wink:

Вот например такая ситуация: Есть две задачи ОС. Стартуют выполнение одновременно (от какого-то события), потом выполняются паралельно, независимо. Задача1 - вычисляет какие-то данные, а задача2 должна эти данные забирать. По уму - задача2 должна ждать пока задача1 не подготовит данные. Но программист забыл сделать эту синхронизацию. И так случилось, что задача1 всегда выполняется немного быстрее, поэтому успевает подготовить и записать данные до того, как их начнёт читать задача2. Баг несомненно есть. Но он не проявляется до поры до времени. И проявиться может очень не скоро (когда по каким-то причинам время работы задачи1 немного увеличится). Когда программист уже забудет что и как он здесь писал, и заниматься будет совсем другой частью кода. И найти такой баг будет непросто.

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

Ну и само собой - баги с порчей памяти (всякие переполнения стека и других массивов) они выявляются тем быстрее, чем чаще перемешиваешь код.

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


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

9 минут назад, jcxz сказал:

Почему любите?

С первых лет программирования всегда любил, чтобы память была по возможности статически распределена и по конкретным адресам, т.к. часто бывает нужно определенное выравнивание, и не только на 4, 16, бывает и на неск.килобайт, когда все адреса в одном дефайне то я сразу вижу где и что, там же заданы и предельные размеры областей, что тоже сразу выучил, что при любой записи блоков памяти нужно проверять на переполнение. Единственный минус, это при переходе на другой МК приходится эту таблицу пересмотреть и переписать, что изменилось, но это дело 10 минут, и никакие линкеры и пр трогать не надо, а то в иаре они одни, гцц другие, у аврок всяких третьи... Понимаю, что на вкус и цвет, но мне вот так больше нравится...

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


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

7 часов назад, jcxz сказал:

Чтобы что-то осмысленно измерять, нужно хотя-бы примерно представлять что делает какая часть вашего кода. Иначе грош цена таким измерениям.  

Не понимаю о чем вы, но считаю что измерял осмысленно, т.к. есть конкретная цель- узнать сколько инициализируется библиотека. Если вы про "разберись во всех тонкостях работы библиотеки и тогда не будет вопросов", то по-моему это через чур много для простого вопроса- инициализируется ли у вас библиотека столько же?

 

10 часов назад, Arlleex сказал:

Очевидно, что-то не то меряете.

Создал тему, где расписал все как измеряю:

Спойлер

 

 

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


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

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...