ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Вторник
23 апреля
477286 Топик полностью
Связанные сообщения
АрхитектураHal
Подскажите как сейчас правильно организовать в микроконтроллере программные таймеры?2020-10-23
При наличии полноценного компилятора не при чём (не хуже чем 16 бит). Но как правило с этим проблемы. Для всех кроме AVR у многи...2020-02-28
Выводы контроллера всегда управляются в контексте управления каким-либо более крупным аппаратным ресурсом. I2C-шиной, например. ...2019-12-17
Железо нужно симулировать не на уровне битов и фронтов сигналов, а на уровне высокоуровневых операций (например, чтение-запись б...2019-11-07
Да, примерно об этом я и думаю. Что систему КА можно запускать параллельно, на пуле потоков, по выбирая готовые к запуску по мер...2019-10-22
Как запустить параллельную систему КА написано у Шалыто лет 20 тому назад. Впрочем и самому додуматься можно. Тема уже изъезженн...2019-10-22
Ровно наоборот. Конечные автоматы подразумевают ЯВНОЕ выделение всех возможных состояний программы (как множества состояний сист...2019-10-21
Выскажу ещё раз: FreeRTOS сырая недоделка, смысла особого, без реализации ряда перечисленного (см. ниже) не имеет и, хуже того, ...2019-10-18
От проекта зависит. Насколько чётко выделена аппаратно-зависимая часть и насколько абстракции используемые в старом проекте реал...2019-05-24
Собственно можно код запускать в эмуляторе процессора (qemu), которому привязать симуляцию нужной аппаратуры, или заменить HAL н...2019-02-06
Когда ПО прибора запускается на обычном ПК. Для этого обычно ПО разделяется на два слоя, как минимум: платформо-независимый (бол...2018-05-23
Подход, если не нужно реальное вытеснение (т.е. критично время реакции), порочный: сложные системы в "больших компьютерах", наоб...2015-09-12
Одни абстракции заменяются на другие, которые тоже нужно учить, документировать и запоминать, учитывать возможные побочные эффек...2015-07-23
Жалкая паделка финских студентов написана на 100% на C, из ассемблера только вектора прерываний, crt и ещё мелочи, в C30 v3.31. ...2014-04-10
Не совсем. Над HAL может быть ещё один слой, уже нужный для совмещения разных программных интерфейсов. Т.е. есть модуль A, котор...2013-10-25
Вот и отличненько. Удалось значит понять суть: императивный стиль программирования повсеместно вдалбливаемый в (не)окрепший мозг...2013-07-31
Топик посвящён программированию микроконтроллеров в условиях необходимости экономии электроэнергии и архитектуре ПО в целом.2011-10-24
Полезны аж 3 прослойки (ассемблеристам дальше лучше не читать):2011-10-13
Тут очень любят рассуждать о RTOS и всём таком. Но как-то массово замалчивается, что стандартная C-библиотека для неопределённог...2011-08-13
fk0, легенда (29.12.2013 23:12, просмотров: 536) ответил MBedder на Будто сам не знаешь - например, для того, чтобы инициализировать TRISx/ODCx/ANSELx/CNENx etc, не делая дополнительных дефайнов руками
Да, трэш угар и содомия. Иногда абстракции через край, поэтому я имею такое мнение, что иногда и не грех в исходники прямо вписать чуть ли не адрес регистра, ну и уж номер бита так точно. Только чем поможет собственно битовое поле? Формально порядок битов там -- какой попало. Конечно де-факто это не так и можно сделать такой типа хеадер, чтоб всё битами из полей было. Но я бы не стал на это закладываться. Завтра XC16 будет на новой версии gcc, например, и всё с начала. Или оптимизация какая. В общем я бы вписал биты как есть, цифрами. Ещё один слой абстракции с дефайнами имеет смысл, но не на уровне _CNPUE_blablabla, а когда, например, есть две печатные платы с разным распределением ног контроллера. Так проще, чем вообще отдельный HAL под эту плату делать. Хотя... может проще и отдельный HAL, но тогда потом изменения из HAL первой платы руками переносить в эту (разглядывая логи subversion). А с макросами оно автоматом казалось бы. Впрочем, макросы всех случаев не покрывают. Склоняюсь, делать отдельный HAL и писать биты как есть цифрами. В конце концов где-то эти цифры должны появиться, и чем HAL хуже хидеров от микрочипа... PS: последних я бы опасался. Коллега натыкался на то, что индусы их пишущие не знают того, что в C с нуля записываются 8-ричные числа (бугага, из той же области, почему open(..., 0666) работает, а open(..., 666) -- нет...)
[ZX]