|
|
  |
Сложные программы |
|
|
|
Jan 5 2017, 11:41
|
Частый гость
 
Группа: Участник
Сообщений: 97
Регистрация: 19-11-09
Пользователь №: 53 743

|
Цитата называются "кооперативные" ? Чтоб запустить на MK достаточно откомпилировать, портирование не требуется ? Точно. Стек протопотоков общий. Переполнение одно на всех. Отработка протопотоков асинхронная. Для 8-битников, на мой субъективный взгляд, очень удобно.
|
|
|
|
|
Jan 5 2017, 13:03
|

Познающий...
     
Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125

|
QUOTE (AlexandrY @ Jan 5 2017, 18:16)  Cortex-M3 давно уже не использую. Не понял связи ошибки памяти с фреймворками. Связи нет никакой, скорее всего я озадачился размерами ваших программ))) Ну, а всё-таки, есть в том же kinetis что-то аппаратное, что позволяет вам как-то предохранять память от несанкционированного доступа? В "больших" камнях это решается MMU с вызываемыми исключениями... QUOTE (syoma @ Jan 5 2017, 19:12)  Буратино, я думаю, что ваша проблема в том, что у вас нет четко определенной архитектуры ПО. Под архитектурой я подразумеваю то, что ПО должно быть разделено на программные модули, которые взаимодействуют друг-с-другом через четко заданные интерфейсы. Мне нравится ваш подход. Наверно потому, что и я думаю в этом же направлении  Уже давно нахожусь на пути создания минимального базиса (фреймворка), включающего в себя ОС (пока FreeRTOS), стек драйверов (high и low-уровни), отладочная текстовая консоль (использую обточенную CLI из FreeRTOS), адекватный менеджер памяти, позволяющую понять куда она ушла (спасибо уважаемому zltigo!). Логгер пока ещё не присобачивал.
--------------------
Выбор.
|
|
|
|
|
Jan 6 2017, 07:38
|

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

|
Цитата(Огурцов @ Jan 5 2017, 13:15)  тогда вариант один - делить задачу между несколькими камнями, в каждом иметь законченный софт, при необходимости новых фич - досыпать ещё камней, не трогая прежние Я с вариантами разберусь, а вы пож. не постите ерунду больше. syoma, спасибо за текст. Не мое точно. Точнее все то что вы пишите в том или ином виде есть по умолчанию в любом проекте. И абстракция и манагер процессов и логер если нужно. Только все это в примитивной форме в достаточной для решения моих задач. Чего мне не хватает так это инструментов для реализации бизнес логики и меня не устраивает не только сложность с написанием ПО, но и самое главное сложности с его модификацией.
--------------------
Брак - это такой вид отношений, в которых один всегда прав, - а другой - муж.
|
|
|
|
|
Jan 6 2017, 08:10
|
Гуру
     
Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369

|
Цитата(syoma @ Jan 5 2017, 14:12)  Буратино, я думаю, что ваша проблема в том,... Вот это все было бы хорошо оформить в виде статьи! Пусть она будет небольшая, но тем не менее... Прямо так и начать: "В конференции шло обсуждение... И мое мнение таково..." И к нам, в КиТ... Что скажете?
--------------------
www.iosifk.narod.ru
|
|
|
|
|
Jan 6 2017, 09:02
|

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

|
Цитата(iosifk @ Jan 6 2017, 10:10)  Вот это все было бы хорошо оформить в виде статьи! ... И к нам, в КиТ... Не статью писать надо, а в github.com постить. Нынче так - или вы показываете свои сорсы на github-е или ваши слова про программирование малого стоят. Когда говорят о такой запредельной абстракции как некий "I/O менеджер" исходники надо показывать в обязаловку. Я не первый год в программировании, но у меня даже не идей что такое "I/O менеджер"
|
|
|
|
|
Jan 6 2017, 09:13
|
Гуру
     
Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369

|
Цитата(AlexandrY @ Jan 6 2017, 12:02)  Не статью писать надо, а в github.com постить. Да нет, у каждого издания свои читатели. КиТ имеет тираж 6,5 тыс экз. И никто не мешает сначала напечатать статью, а потом размещать материалы еще где-то. Тем более, исходники можно выложить в сети и в статье на них ссылаться. потому как статьи - это пожизненно, а тексты из сети лет через 10 могут и удалить. А для чего нужны статьи я написал в КиТ №11 за 14 год. Они нужны не для того, чтобы все знали о том как писать программы для... А для того, чтобы получать приличную зарплату.
--------------------
www.iosifk.narod.ru
|
|
|
|
|
Jan 6 2017, 09:19
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(AlexandrY @ Jan 6 2017, 11:02)  Нынче так - или вы показываете свои сорсы на github-е или ваши слова про программирование малого стоят. Слова, слова по любому малого стоят, хоть напечатанные на "github-е" хоть нет. Стоит результат программирования. Цитата(AlexandrY @ Jan 6 2017, 11:02)  Когда говорят о такой запредельной абстракции как некий "I/O менеджер" исходники надо показывать в обязаловку. Запредельные и не очень абстракции много лучше описываются не на языке Cи, а на более высокоуровневых языках, например, русском  .
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Jan 6 2017, 09:25
|
Гуру
     
Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369

|
Цитата(zltigo @ Jan 6 2017, 12:19)  Слова, слова по любому малого стоят, хоть напечатанные на "github-е" хоть нет. Стоит результат программирования. Вы не правы. "результат программирования" - это товар. И инженерный опыт - это тоже товар. И его надо уметь продавать, ибо товар надо превратить в деньги... Для того, чтобы продавать нужны "слова"... А разговор о том, что "слова по любому малого стоят" - смотрите на время, затрачиваемое на рекламу по телевизору. Как по Вашему это время, затрачиваемое на рекламу " по любому малого стоит"?
--------------------
www.iosifk.narod.ru
|
|
|
|
|
Jan 6 2017, 09:31
|
Частый гость
 
Группа: Участник
Сообщений: 197
Регистрация: 8-07-16
Пользователь №: 92 484

|
Цитата(hsoft @ Jan 4 2017, 13:45)  и многочисленные switch/case, if/else как виноградные гроздья начали обрывать ствол программы под своей тяжестью. На самом деле "многочисленные IF/ELSE (SWITCH/CASE)" - это фундаментальная проблема программирования которая пока никак не решена. Даже в том же пресловутом ООП. А ведь эти "IF/ELSE (SWITCH/CASE)" - есть ГЛАВНАЯ причина трудно модифицируемости программы и появления трудно отслеживаемых ошибок, возникающих при внесении изменений в программу. Но пока что универсальной пилюли (программирование без if..then..else) не изобрели. Хотя отдельные попытки предпринимаются.
|
|
|
|
|
Jan 6 2017, 09:39
|
Частый гость
 
Группа: Участник
Сообщений: 197
Регистрация: 8-07-16
Пользователь №: 92 484

|
Цитата(ViKo @ Jan 6 2017, 10:34)  Массив указателей на функции, например. Коллега уже хорошо сказал про такие "рецепты": Цитата(zltigo @ Jan 4 2017, 10:32)  Рецепт из серии - если у Вас болит зуб - прищемите палец дверью... Т.е. Вы хотите спрятать логику (закодировав её в номерах функций), чтобы программу стала еще более не понятной и запутанной. Это по Вашему хорошее решение? Типа "болит голова - ампутируем голову"?
Сообщение отредактировал Укушенный воблой - Jan 6 2017, 09:40
|
|
|
|
|
Jan 6 2017, 09:49
|
Профессионал
    
Группа: Свой
Сообщений: 1 817
Регистрация: 14-02-07
Из: наших, которые работают за бугром
Пользователь №: 25 368

|
Цитата(ViKo @ Jan 6 2017, 12:11)  А I/O менеджер и менеджер коммуникаций звучат слишком похоже. Фундаментальное отличие между ними в том, что I/O менеджер работает в реальном времени и взаимодействует с физическим железом. Причем делать он это может как напрямую - через драйверы HAL, так и через последовательные интерфейсы - CAN, SPI,RSXXX и пр. В одном проекте у нас вообще используется EtherCAT мастер с временем опроса в 100мкс. Контроллер коммуникаций наоборот, работает не в реальном времени. Например он может работать под обычной операционкой. Его задачей является связь со всеми остальными интерфейсами, которым не нужно реальное время. Например все Ethernet коммуникации типа веб-серверов, ФТП и пр. Обработка клавиатуры, дисплея. Контроллер коммуникаций является клиентом I/O менеджера - он должен иметь доступ к нужным сигналам, но этот доступ должен быть четко регламентирован, так как он будет проходить через границу между реальным и нереальным временем. Т.е. тут нужно предусматривать буферизацию, очереди сообщений и пр, чтобы не потерять информацию. Хорошо, что это надо сделать только один раз.
|
|
|
|
|
  |
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|