ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Воскресенье
22 декабря
277911 Топик полностью
Связанные сообщения
АрхитектураHal
LL vs Registers - стоит ли заморачиваться LL? Посмотрел на LL примеры для stm32, он дает достаточно длинный и сложный на первый ...2024-05-04
Подскажите как сейчас правильно организовать в микроконтроллере программные таймеры?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
Да, трэш угар и содомия. Иногда абстракции через край, поэтому я имею такое мнение, что иногда и не грех в исходники прямо вписа...2013-12-29
Не совсем. Над HAL может быть ещё один слой, уже нужный для совмещения разных программных интерфейсов. Т.е. есть модуль A, котор...2013-10-25
Вот и отличненько. Удалось значит понять суть: императивный стиль программирования повсеместно вдалбливаемый в (не)окрепший мозг...2013-07-31
Топик посвящён программированию микроконтроллеров в условиях необходимости экономии электроэнергии и архитектуре ПО в целом.2011-10-24
Тут очень любят рассуждать о RTOS и всём таком. Но как-то массово замалчивается, что стандартная C-библиотека для неопределённог...2011-08-13
fk0, легенда (13.10.2011 19:56, просмотров: 652) ответил rezident на Ну-ну, покажите-ка как это будет выглядеть в виде дефайнов, если состояние матрицы вы получаете по связи? ;)
Полезны аж 3 прослойки (ассемблеристам дальше лучше не читать): * т.н. "Hardware Presentation Level" специфичном для конкретного железа в конкретной ситуации (GPIO, например, TRIS и LAT регистры) -- в простых случаях может быть и через define определяться, например SCL и SDA макросы для софтового I2C; * "Hardware Adaptaion Level", где примером может служить конкретная микросхема EEPROM, например, но подключенная к MCU через GPIO в HPL-прослойке -- т.е. драйвер этого уровня, например софтовый I2C, умеет управлять микросхемой, но только через соответствующий HPL-уровень (ножки MCU); * и наконец "Hardware Interface Level", который позволяет дать одинаковый программный интерфейс "устройство с поблочной записью" для разных микросхем памяти, например, для EEPROM и для NOR-flash. Суть последнего слоя -- чисто программная прослойка, часто не нужная в небольших проектах. Она нужна исключительно для создания некоторого интерфейса между прикладной программой и драйвером той же микросхемы памяти. Суть слоя HPL -- специфика именно данной аппаратной платформы. Т.е. данной печатной платы, например. Суть слоя HAL -- именно "драйвер" в классическом понимании, но отвязанный от конкретного железа (через HPL), т.е. может, например работать на разных печатных платах, на разных микроконтроллерах. Но если микросхема памяти меняется на несовместимую -- заменяется этот уровень (посредством HIL). Нужно ещё сказать что понимать под слоем. HPL может быть простыми inline функциями или макросами. В любом случае там не рационально содержать сложную логику. Она должна быть в HAL. А слой HIL, например для микросхемы EEPROM, просто при вызове file_write(offset, data, size) вызывает функции eeprom_page_write(page, data), вот и вся логика. Хотя, конечно, всё это полное фуфло и программы на ассемблере оптимизированные вручную работают аж на 60% быстрее...
[ZX]