|
|
  |
Сложные программы |
|
|
Guest_TSerg_*
|
Jan 8 2017, 23:42
|
Guests

|
Цитата(Буратино @ Jan 9 2017, 02:20)  нужно жить прощая "Нет сложных задач, есть ограниченность в их реализации" (С) Jeer
|
|
|
|
|
Jan 9 2017, 00:55
|
Гуру
     
Группа: Свой
Сообщений: 2 223
Регистрация: 3-03-06
Из: Tomsk
Пользователь №: 14 925

|
Цитата(Буратино @ Jan 9 2017, 02:39)  чужие работают, но не вместе. как только необходимо выполнять чужой код одновременно, то без ос никак. Еще раз, прочитайте что я писал - чужой код нормально выполняется и без ОС и с ОС, никакой разницы. У меня LwIP в простой программе работает отлично, плюс подключены датчики разных производителей через модули и никакой ОС. Цитата(Буратино @ Jan 9 2017, 02:39)  что касается этой самой мнимой сложности задачи, то все конечно относительно и условно, но вот представьте себе некий электронный выход, который включает и отключает мотор. если положить на бумагу логику включения, отключения и работы этого выхода, то получится например пару страниц в ворде. для меня это сложно, не знаю как вам там. и самая жара если что то править нужно. во-первых зачастую затрагиваются смежные куски по, во-вторых тестирование результатов доставляет и выбешивает просто что теряется первоначальная стройность проекта, появляются заплатки и костыли. Так это как и раз называется построение архитектуры приложения. Вам, кстати, про это уже писали. Разбивайте программу на логически законченные модули(процедуры, файлы), описывайте интерфейсы(API), тестируйте, а потом собирайте из проверенных блоков нужные программы. Единственная проблема - надо определится до какого уровня абстракции разбивать, потому что если сильно мельчить - сами запутаетесь и писать много, если разбивать по-минимуму - слишком много переписывать. Как раз в этом и состоит искусство программиста - найти оптимум. Практический пример - STM32Cube. Как это выглядит - ставите галочки какие блоки задействовать в микроконтроллере, ставите галочки при настройке этих блоков, и на выходе получаете готовый си-код инициализации процессора. Но так как настроек много, кода получилось много и некачественного, то результат получается неоправданно усложненный и плохо поддерживаемый, правда говорят что у многих он нормально работает.
|
|
|
|
|
Jan 9 2017, 06:23
|

Профессионал
    
Группа: Свой
Сообщений: 1 433
Регистрация: 27-10-08
Из: Украина, Киев
Пользователь №: 41 215

|
Цитата(HardEgor @ Jan 9 2017, 03:55)  Еще раз, прочитайте что я писал - чужой код нормально выполняется и без ОС и с ОС, никакой разницы. У меня LwIP в простой программе работает отлично, плюс подключены датчики разных производителей через модули и никакой ОС. Еще раз пишу: чужой код одновременно! Стек сетевой и USB, плюс WEB сервер и LCD матрица с тачскрином. В качестве вишенки светодиодом моргать с периодом 0.025 сек. Наверное можно и без ОС, но нужно ли?
--------------------
Брак - это такой вид отношений, в которых один всегда прав, - а другой - муж.
|
|
|
|
|
Jan 9 2017, 06:30
|

Ally
     
Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050

|
Цитата(Буратино @ Jan 9 2017, 08:23)  Еще раз пишу: чужой код одновременно! Стек сетевой и USB, плюс WEB сервер и LCD матрица с тачскрином. В качестве вишенки светодиодом моргать с периодом 0.025 сек. Наверное можно и без ОС, но нужно ли? Да не спорьте, вы правильно пишите. Даже LCD с WEB сервером можно не добавлять. RTOS еще облегчает отладку и соответсвенно ускоряет разработку. Только ради этого одного ее оправдано везде применять. Но почитав про FreeRTOS вы этого не поймете, поскольку эти всякие RTOS сильно отличаются друг от друга. Начните с uCOS-III и почувствуйте силу.
|
|
|
|
|
Jan 9 2017, 06:53
|
Знающий
   
Группа: Участник
Сообщений: 825
Регистрация: 16-04-15
Из: КЧР, Нижний Архыз
Пользователь №: 86 250

|
Цитата(Буратино @ Jan 9 2017, 09:23)  Еще раз пишу: чужой код одновременно! Стек сетевой и USB, плюс WEB сервер и LCD матрица с тачскрином. В качестве вишенки светодиодом моргать с периодом 0.025 сек. Наверное можно и без ОС, но нужно ли? Элементарно все это реализуется на конечных автоматах безо всяких ртосей! В крайнем случае можно свой диспетчер задач накидать на systick. Зачем лезть в ртось-болото? Оверхед же жутчайший! Тупые моргания светодиодом вообще таймером реализуются — даже прерываний никаких обрабатывать не нужно. Экранчик тоже аппаратно обновляется (если достаточно оперативки у МК) — при помощи DMA.
|
|
|
|
|
Jan 9 2017, 08:02
|
Знающий
   
Группа: Участник
Сообщений: 825
Регистрация: 16-04-15
Из: КЧР, Нижний Архыз
Пользователь №: 86 250

|
Цитата(AlexandrY @ Jan 9 2017, 10:06)  Фреймворк ваш в зачаточном состоянии. Ну так не было еще такого количества задач, чтобы всю периферию объять. Цитата И справтесь для начала у себя со сканированием 1-Wire"при помощи DMA"  Это совершенно ненужное занятие, потому как оно имеет смысл лишь при замене одного сгоревшего термодатчика другим. А в данном случае проще будет заново все поочередно повтыкать и пройти процедуру перенумеровки. Другое дело, что я эмуляцию EEPROM во флеш так и не добил (пока не нужно было часто что-то туда писать), если понадобится, сделаю. Скоро, кстати, буду расширять сниппеты на 0-вую серию (термомониторинг главного зеркала нашего телескопа, чипы STM32F042, связь по CAN, датчики — TSYS01).
|
|
|
|
|
Jan 9 2017, 09:10
|
Гуру
     
Группа: Свой
Сообщений: 2 223
Регистрация: 3-03-06
Из: Tomsk
Пользователь №: 14 925

|
Цитата(AlexandrY @ Jan 9 2017, 13:25)  А какой критерий "отличности" у вас применяется? Самый главный критерий - всё работает корректно. Запас по скорости передачи данных есть, единственная проблема - памяти не хватает. Цитата(Буратино @ Jan 9 2017, 13:23)  Еще раз пишу: чужой код одновременно! Стек сетевой и USB, плюс WEB сервер и LCD матрица с тачскрином. В качестве вишенки светодиодом моргать с периодом 0.025 сек. Наверное можно и без ОС, но нужно ли? Чужой или свой - побарабану, если ресурсов хватает, конечно нужно. ОС в любом случае требует дополнительные уровни абстракции и кушает ресурсы. Цитата(Буратино @ Jan 9 2017, 13:27)  на сколько я помню оптимальных решений добивается инженер, и как мне кажется искусство программиста - стать настоящим инженером.  О как! Вообще-то специальность так и называется инженер-программист. Но есть просто кодер, это уже уровень техника, тогда да, до инженера расти и расти.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|