Информация об изменениях

Сообщение Re[2]: Список целых на этапе компиляции с проверкой от 27.12.2017 17:39

Изменено 27.12.2017 17:46 Marty

Re[2]: Список целых на этапе компиляции с проверкой
Здравствуйте, Кодт, Вы писали:


К>P.S.

К>Какой смысл ты вкладываешь в слова "каждый ресурс может быть использован один раз"?
К>- определён в одной точке исходников
К>- прочитан в одной точке исходников и больше нигде
К>- прочитан единожды за запуск программы
К>- иное?
К>Ну и заодно, какого рода эти ресурсы?

Изначально, это STMка, на борту пяток UARTов, для них есть пять глобальных соответствующих объектов, при необходимости UART передается в task (FreeRTOSный), который настраивает/включает этот UART и дальше с ним и работает. Сейчас у UART'а есть mutex, который захватывается на этапе инициализации, и если занят, то приехали. Мьютекс там конечно легкий по размеру, а потом в работе не используется, но все равно некрасиво. Без FreeRTOS тоже используется, несколько по другому, и так как своих мьютексов нет, там другая корявая проверка. Мне всё это не очень нравится.

Пока эту проблему обдумывал, пришли еще идеи, и подумалось, что неплохо было бы иметь универсальное решение — несколько областей, в которых нужно проверять уникальность использования — указателей, числовых идентификаторов и тп.

В принципе, глобальный контейнер для каждого из доменов меня устроит для стартовых проверок, просто изначально мечталось что можно на этапе компиляции всё отловить и указать, где конфликт используемых ресурсов
Re[2]: Список целых на этапе компиляции с проверкой
Здравствуйте, Кодт, Вы писали:


К>P.S.

К>Какой смысл ты вкладываешь в слова "каждый ресурс может быть использован один раз"?
К>- определён в одной точке исходников
К>- прочитан в одной точке исходников и больше нигде
К>- прочитан единожды за запуск программы
К>- иное?
К>Ну и заодно, какого рода эти ресурсы?

Изначально, это STMка, на борту пяток UARTов, для них есть пять глобальных соответствующих объектов, при необходимости UART передается в task (FreeRTOSный), который настраивает/включает этот UART и дальше с ним и работает. Сейчас у UART'а есть mutex, который захватывается на этапе инициализации, и если занят, то приехали. Мьютекс там конечно легкий по размеру, а потом в работе не используется, но все равно некрасиво. Без FreeRTOS тоже используется, несколько по другому, и так как своих мьютексов нет, там другая корявая проверка. Мне всё это не очень нравится.

Пока эту проблему обдумывал, пришли еще идеи, и подумалось, что неплохо было бы иметь универсальное решение — несколько областей, в которых нужно проверять уникальность использования — указателей, числовых идентификаторов и тп.

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

UPD Есть еще идея добавить немного COMа
Без управления созданием и временем жизни, просто функциональность QueryInterface. UIDы как-то жирновато для этого использовать, целые числа выглядят приятнее. В этом случае можно вести реестр этих UIDов в одном месте, но интереснее обдумать идею, когда каждый создает UIDы на свой вкус