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

Как можно рассказать о разнице между креветками и раками человеку, который их не пробовал ?

А тот кто пробовал - он уже выбрал для себя закуску к пиву.

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


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

программа растёт пока не превысит способности программиста (с)

после чего становится сложной (с)

 

Изменено пользователем Огурцов

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


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

огурцов,

зря, когда людей мы судим

суд безжалостен и лих

нужно жить прощая людям

наше мнение о них. (с)

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


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

зря, когда людей мы судим

незнание законов мерфи не освобождает от ответственности

хотя таки да, уже многое о вас говорит

Изменено пользователем Огурцов

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


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

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

Еще раз, прочитайте что я писал - чужой код нормально выполняется и без ОС и с ОС, никакой разницы.

У меня LwIP в простой программе работает отлично, плюс подключены датчики разных производителей через модули и никакой ОС.

 

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

Так это как и раз называется построение архитектуры приложения. Вам, кстати, про это уже писали.

 

Разбивайте программу на логически законченные модули(процедуры, файлы), описывайте интерфейсы(API), тестируйте, а потом собирайте из проверенных блоков нужные программы. Единственная проблема - надо определится до какого уровня абстракции разбивать, потому что если сильно мельчить - сами запутаетесь и писать много, если разбивать по-минимуму - слишком много переписывать. Как раз в этом и состоит искусство программиста - найти оптимум.

 

Практический пример - STM32Cube. Как это выглядит - ставите галочки какие блоки задействовать в микроконтроллере, ставите галочки при настройке этих блоков, и на выходе получаете готовый си-код инициализации процессора. Но так как настроек много, кода получилось много и некачественного, то результат получается неоправданно усложненный и плохо поддерживаемый, правда говорят что у многих он нормально работает.

 

 

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


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

Еще раз, прочитайте что я писал - чужой код нормально выполняется и без ОС и с ОС, никакой разницы.

У меня LwIP в простой программе работает отлично, плюс подключены датчики разных производителей через модули и никакой ОС.

Еще раз пишу: чужой код одновременно! Стек сетевой и USB, плюс WEB сервер и LCD матрица с тачскрином. В качестве вишенки светодиодом моргать с периодом 0.025 сек.

Наверное можно и без ОС, но нужно ли?

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


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

У меня LwIP в простой программе работает отлично, плюс подключены датчики разных производителей через модули и никакой ОС.

 

А какой критерий "отличности" у вас применяется?

 

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

Может у вас есть подробный лог работы пограммы?

 

 

 

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


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

. Как раз в этом и состоит искусство программиста - найти оптимум.

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

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


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

Еще раз пишу: чужой код одновременно! Стек сетевой и USB, плюс WEB сервер и LCD матрица с тачскрином. В качестве вишенки светодиодом моргать с периодом 0.025 сек.

Наверное можно и без ОС, но нужно ли?

 

Да не спорьте, вы правильно пишите. Даже LCD с WEB сервером можно не добавлять.

 

RTOS еще облегчает отладку и соответсвенно ускоряет разработку.

Только ради этого одного ее оправдано везде применять.

Но почитав про FreeRTOS вы этого не поймете, поскольку эти всякие RTOS сильно отличаются друг от друга.

Начните с uCOS-III и почувствуйте силу.

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


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

Еще раз пишу: чужой код одновременно! Стек сетевой и USB, плюс WEB сервер и LCD матрица с тачскрином. В качестве вишенки светодиодом моргать с периодом 0.025 сек.

Наверное можно и без ОС, но нужно ли?

Элементарно все это реализуется на конечных автоматах безо всяких ртосей!

В крайнем случае можно свой диспетчер задач накидать на systick. Зачем лезть в ртось-болото? Оверхед же жутчайший!

Тупые моргания светодиодом вообще таймером реализуются — даже прерываний никаких обрабатывать не нужно. Экранчик тоже аппаратно обновляется (если достаточно оперативки у МК) — при помощи DMA.

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


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

Элементарно все это реализуется на конечных автоматах безо всяких ртосей!

 

Боюсь содержание вашего github-а не позволяет относится к вашим словам серьезно. Фреймворк ваш в зачаточном состоянии.

И справтесь для начала у себя со сканированием 1-Wire"при помощи DMA" :biggrin:

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


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

незнание законов мерфи не освобождает от ответственности

хотя таки да, уже многое о вас говорит

Огурцов, буду вынужден Вас окончательно забанить за подобную писанину.

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


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

Фреймворк ваш в зачаточном состоянии.

Ну так не было еще такого количества задач, чтобы всю периферию объять.

И справтесь для начала у себя со сканированием 1-Wire"при помощи DMA" :biggrin:

Это совершенно ненужное занятие, потому как оно имеет смысл лишь при замене одного сгоревшего термодатчика другим. А в данном случае проще будет заново все поочередно повтыкать и пройти процедуру перенумеровки.

Другое дело, что я эмуляцию EEPROM во флеш так и не добил (пока не нужно было часто что-то туда писать), если понадобится, сделаю.

 

Скоро, кстати, буду расширять сниппеты на 0-вую серию (термомониторинг главного зеркала нашего телескопа, чипы STM32F042, связь по CAN, датчики — TSYS01).

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


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

А какой критерий "отличности" у вас применяется?

Самый главный критерий - всё работает корректно.

Запас по скорости передачи данных есть, единственная проблема - памяти не хватает.

 

Еще раз пишу: чужой код одновременно! Стек сетевой и USB, плюс WEB сервер и LCD матрица с тачскрином. В качестве вишенки светодиодом моргать с периодом 0.025 сек.

Наверное можно и без ОС, но нужно ли?

Чужой или свой - побарабану, если ресурсов хватает, конечно нужно.

ОС в любом случае требует дополнительные уровни абстракции и кушает ресурсы.

 

 

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

О как! Вообще-то специальность так и называется инженер-программист.

Но есть просто кодер, это уже уровень техника, тогда да, до инженера расти и расти.

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


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

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

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

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

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

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

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

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

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

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