Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Корпоративный стиль программирования
Шарага > Soft - НЕ железо > Программирование МК
MrYuran
Итак, руки таки дошли.
Предлагаю в данной теме родить документ, регламентирующий процесс разработки и документирования встраиваемого ПО.

Код
МЕТОДИКА РАЗРАБОТКИ ВСТРАИВАЕМОГО ПО.
1. Цель разработки данного документа.
1.1 Обеспечение единых унифицированных подходов к созданию встраиваемого ПО на предприятии, на основании общепринятых и отработанных методик.
1.2 Обеспечение переносимости программных модулей и компонентов как между проектами, так и между аппаратными платформами.
1.3 Унификация подходов к тестированию и верификации программных модулей и компонентов.
1.4 Ускорение сроков разработки и отладки ПО, как следствие пп. 1.1-1.3
1.5 Увеличение надёжности вследствие повторного использования отработанных программных модулей и компонентов.
1.6 Уменьшение трудоёмкости сопровождения и модификации ПО


Предлагаю части документа выдавать параграфами/разделами в тегах [соде][/соде], а обсуждать - как обычно.

PS: с нумерацией разделов можно не напрягаться, пусть машина думает.
Важнее наполнение.

Примерный грубый план документа:
- спецификация проекта/модуля - основа основ и первоисточник.
- программный модуль и его интерфейсы.
- разделение программных слоёв для обеспечения переносимости.
- методики тестирования и верификации модулей
Прохожий
Цитата(MrYuran @ 13.8.2010, 17:18) *
Итак, руки таки дошли.

Очень хорошо.
Вот Вам в помощь и нам для обсуждения.
tester
Цитата(MrYuran @ 13.8.2010, 17:18) *
Итак, руки таки дошли.
Предлагаю в данной теме родить документ, регламентирующий процесс разработки и документирования встраиваемого ПО.

Кстати, знакомы с книгой И. Соммервилла "Инженерия программного обеспечения"? Это, правда, не о встраиваемых системах, но как раз по Вашей теме. (Могу скинуть в DVJU-формате)
MrYuran
Цитата(tester @ 16.8.2010, 15:55) *
(Могу скинуть в DVJU-формате)

Буду очень признателен.
Макконела тоже никак не соберусь прочитать...
С экрана - некогда, в бумаге - что-то в продаже не видать.
А я в основном читаю в дороге, частуда-часобратно
Быстрей бы уж китайцы всё своими планшетами стобаксовыми завалили
tester
Цитата(MrYuran @ 16.8.2010, 16:03) *
Буду очень признателен.
Макконела тоже никак не соберусь прочитать...
С экрана - некогда, в бумаге - что-то в продаже не видать.
А я в основном читаю в дороге, частуда-часобратно
Быстрей бы уж китайцы всё своими планшетами стобаксовыми завалили


Куда слать (9 мб)? (Макконела тоже могу прислать, но тоже в djvu 21мб)
MrYuran
Цитата(tester @ 16.8.2010, 16:07) *
Куда слать (9 мб)? (Макконела тоже могу прислать, но тоже в djvu 21мб)

Если получится, можно в личку. (у меня вроде ограничение 9.77МБ)
Или в профиле есть "послать по емэйл"
Отписал в личку.

Спасибо, получил, глянул - есть что почитать. Только опять некогда...
Если сегодня-завтра не сдам июньский проект, начальник в среду уволит нахрен будет очень недоволен :(
Прохожий
Цитата(MrYuran @ 16.8.2010, 16:13) *
Если получится, можно в личку. (у меня вроде ограничение 9.77МБ)
Или в профиле есть "послать по емэйл"
Отписал в личку.

Спасибо, получил, глянул - есть что почитать. Только опять некогда...
Если сегодня-завтра не сдам июньский проект, начальник в среду уволит нахрен будет очень недоволен :(

Как идет работа над документами?
В смысле, над кооперативным программированием.
MrYuran
Цитата(Прохожий @ 29.8.2010, 19:49) *
Как идет работа над документами?
В смысле, над кооперативным программированием.

dash1.gif
На той неделе связал три железки в один узел, одна с другой сквозь третью.
В очередной раз, после нескольких часов вылавливания блох, убедился в пользе повторного использования проверенных компонентов по сравнению с выборочным копи-пастом (или пейстом?)
Тупо скопировал процедурки с одного УАРТа на другой, поменял всё, что надо, кроме адреса буфера...
Действительно, АЦП был[о] не при чём...
Начальник на очередную шутку "стрижка только начата" как-то нервно передёргивается...

А по теме начну, пожалуй, со стандартизации программных компонентов. С одновременным выкладыванием отлаженных модулей и библиотек в корпоративном архиве для всеобщего настоятельно рекомендуемого пользования.
А там, глядишь, дурной пример заразителен... Так и остальные втянутся постепенно. Эволюционно, так сказать.
_pasha
Цитата(MrYuran @ 30.8.2010, 6:47) *
В очередной раз, после нескольких часов вылавливания блох, убедился в пользе повторного использования проверенных компонентов по сравнению с выборочным копи-пастом (или пейстом?)

О да! Причем, это касается не только проверенных компонентов. Например, если впадлу написать макрос (типа - чего там такого? - три раза копипастнул, пару букв поменял...) - жди беды именно от этих букафф. Это касается всех языков программастинга.

ЗЫ именно поэтому советы каких-то амеров, дескать, не надо писАть универсальные функции, надо поменьше параметров, итд - воспринимается как первоапрельский вздрочь. В конце концов, мона параметры со словом const вводить - компилер обязан привести все в нормальный вид. Зато не будет тупого повторения кода.
MrYuran
Цитата(_pasha @ 30.8.2010, 9:25) *
ЗЫ именно поэтому советы каких-то амеров, дескать, не надо писАть универсальные функции, надо поменьше параметров, итд - воспринимается как первоапрельский вздрочь.

Нет, просто есть разные подходы.
Вот некоторое время назад я очень Forth-ом увлёкся. Там именно такой подход. Функция (слово) производит действия над неявными данными (чаще всего на вершине стека).
В си такое могу посоветовать только для внутренних static-переменных модуля, и то с оглядкой и обязательным документированием.
Ещё пробежался по диагонали по учебнику с++, обнаружил полезную рекомендацию: обращаться к переменным класса не напрямую, а только через функции-аксессоры и мутаторы. По-русски говоря, через обёртки.
Применительно к си это означает - никаких extern переменных, вместо них что-то типа SetData() и GetData().
Опять же, вполне ощутил полезность, чуть поменяв контекст переменной и переправив его везде, кроме одного места wacko.gif
_pasha
Цитата
Применительно к си это означает - никаких extern переменных, вместо них что-то типа SetData() и GetData().

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

Цитата
Опять же, вполне ощутил полезность, чуть поменяв контекст переменной и переправив его везде, кроме одного места wacko.gif


И не стесняться вводить типы, даже если это алиасит простой тип.
Исключения из такого правила - только в протокольной части. Весь ввод/вывод должен описываться с помощью <stdint.h>
MrYuran
Присматриваемся к Cortex-M3 от STM или LPC и соответственным бордам в стартерките.
Осталось подкинуть монетку и выбрать одно из двух.
С большой вероятностью там будет встроена ОСь типа FreeRTOS.
Лёд тронулся, по ходу...
Прохожий
Цитата(MrYuran @ 31.8.2010, 11:46) *
Присматриваемся к Cortex-M3 от STM или LPC и соответственным бордам в стартерките.
Осталось подкинуть монетку и выбрать одно из двух.
С большой вероятностью там будет встроена ОСь типа FreeRTOS.
Лёд тронулся, по ходу...

А может что-то свое?
В качестве ОС...
Пусть даже на основе FreeRtos или TNKernel, писаной как раз для ARM-ов.
Там и порт для Cortex M3 есть. И писал эту ОС наш бывший соотечественник.
_pasha
Цитата(MrYuran @ 31.8.2010, 9:46) *
подкинуть монетку и выбрать одно из двух.

А почему низзя внять разговорам о том, что армы все-таки выпускают разные конторы, и не выбрать два из двух?
MrYuran
Цитата(_pasha @ 1.9.2010, 9:16) *
А почему низзя внять разговорам о том, что армы все-таки выпускают разные конторы, и не выбрать два из двух?

Унификация.
Да и смысла нет. Надо выбрать и использовать. У нас вообще у всех приборов морда и железо одинаковые, а функциональность определяется подключенным активным датчиком и прошивкой.
Хотя тенденция намечается к созданию универсального "всемера" с внешними подключаемыми модулями и универсальной прошивкой

Цитата(Прохожий @ 31.8.2010, 21:04) *
А может что-то свое?
В качестве ОС...
Пусть даже на основе FreeRtos или TNKernel, писаной как раз для ARM-ов.
Там и порт для Cortex M3 есть. И писал эту ОС наш бывший соотечественник.

Ну, поскольку индикаторная часть не моя, то и выбор окончательный делать не мне.
Из отечественных есть ещё широко известная в узких кругах scmRTOS.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2020 IPS, Inc.