реклама на сайте
подробности

 
 
27 страниц V  « < 2 3 4 5 6 > »   
Reply to this topicStart new topic
> Сложные программы
Drozd2
сообщение Jan 5 2017, 11:41
Сообщение #46


Частый гость
**

Группа: Участник
Сообщений: 97
Регистрация: 19-11-09
Пользователь №: 53 743



Цитата
называются "кооперативные" ?
Чтоб запустить на MK достаточно откомпилировать, портирование не требуется ?

Точно. Стек протопотоков общий. Переполнение одно на всех. Отработка протопотоков асинхронная. Для 8-битников, на мой субъективный взгляд, очень удобно.
Go to the top of the page
 
+Quote Post
haker_fox
сообщение Jan 5 2017, 13:03
Сообщение #47


Познающий...
******

Группа: Свой
Сообщений: 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) *
Буратино, я думаю, что ваша проблема в том, что у вас нет четко определенной архитектуры ПО. Под архитектурой я подразумеваю то, что ПО должно быть разделено на программные модули, которые взаимодействуют друг-с-другом через четко заданные интерфейсы.

Мне нравится ваш подход. Наверно потому, что и я думаю в этом же направлении rolleyes.gif Уже давно нахожусь на пути создания минимального базиса (фреймворка), включающего в себя ОС (пока FreeRTOS), стек драйверов (high и low-уровни), отладочная текстовая консоль (использую обточенную CLI из FreeRTOS), адекватный менеджер памяти, позволяющую понять куда она ушла (спасибо уважаемому zltigo!). Логгер пока ещё не присобачивал.


--------------------
Выбор.
Go to the top of the page
 
+Quote Post
Буратино
сообщение Jan 6 2017, 07:38
Сообщение #48


Профессионал
*****

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



Цитата(Огурцов @ Jan 5 2017, 13:15) *
тогда вариант один - делить задачу между несколькими камнями, в каждом иметь законченный софт, при необходимости новых фич - досыпать ещё камней, не трогая прежние

Я с вариантами разберусь, а вы пож. не постите ерунду больше.

syoma, спасибо за текст. Не мое точно. Точнее все то что вы пишите в том или ином виде есть по умолчанию в любом проекте. И абстракция и манагер процессов и логер если нужно. Только все это в примитивной форме в достаточной для решения моих задач. Чего мне не хватает так это инструментов для реализации бизнес логики и меня не устраивает не только сложность с написанием ПО, но и самое главное сложности с его модификацией.


--------------------
Брак - это такой вид отношений, в которых один всегда прав, - а другой - муж.
Go to the top of the page
 
+Quote Post
jcxz
сообщение Jan 6 2017, 07:52
Сообщение #49


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(haker_fox @ Jan 5 2017, 16:03) *
Ну, а всё-таки, есть в том же kinetis что-то аппаратное, что позволяет вам как-то предохранять память от несанкционированного доступа? В "больших" камнях это решается MMU с вызываемыми исключениями...

"Что-то аппаратное" есть во всех Cortex-M - MPU. Использую MPU в всех своих проектах на Cortex-M обязательно. А почему собственно его не использовать?
Только предохранить какую-то конкретную переменную с помощью него конечно затруднительно. Зато при отладке MPU очень часто помогает.
Go to the top of the page
 
+Quote Post
iosifk
сообщение Jan 6 2017, 08:10
Сообщение #50


Гуру
******

Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369



Цитата(syoma @ Jan 5 2017, 14:12) *
Буратино, я думаю, что ваша проблема в том,...

Вот это все было бы хорошо оформить в виде статьи!
Пусть она будет небольшая, но тем не менее...
Прямо так и начать: "В конференции шло обсуждение... И мое мнение таково..."
И к нам, в КиТ...
Что скажете?


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post
syoma
сообщение Jan 6 2017, 08:52
Сообщение #51


Профессионал
*****

Группа: Свой
Сообщений: 1 817
Регистрация: 14-02-07
Из: наших, которые работают за бугром
Пользователь №: 25 368



Цитата(Буратино @ Jan 6 2017, 09:38) *
Чего мне не хватает так это инструментов для реализации бизнес логики и меня не устраивает не только сложность с написанием ПО, но и самое главное сложности с его модификацией.

Что такое бизнес-логика?

Насчет проблем с модификацией - значит у вас что-то не то с архитектурой. Тот пример, что я привел, как раз позволяет легко модифицировать любую часть программы без риска все угробить. В моем случае это было как раз одной из целей разработки данной архитектуры и было продемонстрировано не в одном реализованном проекте.
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Jan 6 2017, 09:02
Сообщение #52


Ally
******

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



Цитата(iosifk @ Jan 6 2017, 10:10) *
Вот это все было бы хорошо оформить в виде статьи!
...
И к нам, в КиТ...

Не статью писать надо, а в github.com постить.
Нынче так - или вы показываете свои сорсы на github-е или ваши слова про программирование малого стоят.
Когда говорят о такой запредельной абстракции как некий "I/O менеджер" исходники надо показывать в обязаловку.
Я не первый год в программировании, но у меня даже не идей что такое "I/O менеджер"
Go to the top of the page
 
+Quote Post
ViKo
сообщение Jan 6 2017, 09:11
Сообщение #53


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Писать надо туда, где больше заработаешь.
А I/O менеджер и менеджер коммуникаций звучат слишком похоже.
У меня все время висит вопрос, как назвать, к примеру, файл низкоуровневых функций. Типа HAL. HAL называть не хочу. Драйвер пока зову.
А как разобьешь на файлы-папки, как назовешь, так и поплывешь-попрограммируешь.
Go to the top of the page
 
+Quote Post
iosifk
сообщение Jan 6 2017, 09:13
Сообщение #54


Гуру
******

Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369



Цитата(AlexandrY @ Jan 6 2017, 12:02) *
Не статью писать надо, а в github.com постить.

Да нет, у каждого издания свои читатели.
КиТ имеет тираж 6,5 тыс экз. И никто не мешает сначала напечатать статью, а потом размещать материалы еще где-то. Тем более, исходники можно выложить в сети и в статье на них ссылаться. потому как статьи - это пожизненно, а тексты из сети лет через 10 могут и удалить.
А для чего нужны статьи я написал в КиТ №11 за 14 год. Они нужны не для того, чтобы все знали о том как писать программы для... А для того, чтобы получать приличную зарплату.


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post
zltigo
сообщение Jan 6 2017, 09:19
Сообщение #55


Гуру
******

Группа: Свой
Сообщений: 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и, а на более высокоуровневых языках, например, русском sm.gif.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
iosifk
сообщение Jan 6 2017, 09:25
Сообщение #56


Гуру
******

Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369



Цитата(zltigo @ Jan 6 2017, 12:19) *
Слова, слова по любому малого стоят, хоть напечатанные на "github-е" хоть нет. Стоит результат программирования.

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


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post
Укушенный воблой
сообщение Jan 6 2017, 09:31
Сообщение #57


Частый гость
**

Группа: Участник
Сообщений: 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) не изобрели.
Хотя отдельные попытки предпринимаются.
Go to the top of the page
 
+Quote Post
ViKo
сообщение Jan 6 2017, 09:34
Сообщение #58


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Цитата(Укушенный воблой @ Jan 6 2017, 12:31) *
Но пока что универсальной пилюли (программирование без if..then..else) не изобрели.
Хотя отдельные попытки предпринимаются.

Массив указателей на функции, например.
Go to the top of the page
 
+Quote Post
Укушенный воблой
сообщение Jan 6 2017, 09:39
Сообщение #59


Частый гость
**

Группа: Участник
Сообщений: 197
Регистрация: 8-07-16
Пользователь №: 92 484



Цитата(ViKo @ Jan 6 2017, 10:34) *
Массив указателей на функции, например.

Коллега уже хорошо сказал про такие "рецепты":
Цитата(zltigo @ Jan 4 2017, 10:32) *
Рецепт из серии - если у Вас болит зуб - прищемите палец дверью...


Т.е. Вы хотите спрятать логику (закодировав её в номерах функций), чтобы программу стала еще более не понятной и запутанной.
Это по Вашему хорошее решение?
Типа "болит голова - ампутируем голову"?

Сообщение отредактировал Укушенный воблой - Jan 6 2017, 09:40
Go to the top of the page
 
+Quote Post
syoma
сообщение Jan 6 2017, 09:49
Сообщение #60


Профессионал
*****

Группа: Свой
Сообщений: 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 менеджера - он должен иметь доступ к нужным сигналам, но этот доступ должен быть четко регламентирован, так как он будет проходить через границу между реальным и нереальным временем. Т.е. тут нужно предусматривать буферизацию, очереди сообщений и пр, чтобы не потерять информацию. Хорошо, что это надо сделать только один раз.
Go to the top of the page
 
+Quote Post

27 страниц V  « < 2 3 4 5 6 > » 
Reply to this topicStart new topic
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 16th June 2025 - 06:33
Рейтинг@Mail.ru


Страница сгенерированна за 0.01511 секунд с 7
ELECTRONIX ©2004-2016