самопильный ХАЛ над библиотекой milandr SPL. позиционируется наличие порта порт на STM32 SPL.
Rev. | 日時 | 作者 | メッセージ |
---|---|---|---|
7ce11f211ba4 | 2024-03-18 04:53:39 | alexrayne | tip <renesas |
52047584f37c | 2024-03-18 04:52:49 | alexrayne | contiki: exit_process ! fix other process notification - ... |
d9d149544fdc | 2024-03-18 04:51:27 | alexrayne | proto-threads: ptx: TH_xxx API |
41d8578d553e | 2024-03-18 04:50:58 | alexrayne | OsTime: !CLOCKMS(x) - macro braces fix + CLOCKMS_M... |
30a0ddc2f487 | 2024-03-18 04:49:22 | alexrayne | renesas ra2l: r_iicsw_master: failure hung fixed. Hung cause by r... |
cb5b8f79beff | 2024-03-18 04:48:23 | alexrayne | renesas ra2l: hal: ssp: hung timeout - fixed invalid hung detecti... |
de9d621abacd | 2024-03-18 04:41:31 | alexrayne | renesas ra2l: assert: NDEBUG_MCU - use common mcu assert disable |
858a83a80fc4 | 2024-03-18 04:40:23 | alexrayne | renesas +ra2l: r_sci_uartx: R_SCI_UART_StatusGet |
dc94733f68be | 2024-03-18 04:37:35 | alexrayne | renesas +ra2l: trng_str - fixed + rcc: RCC_Enabled_TRNG |
0872d7562e3b | 2024-03-18 04:36:01 | alexrayne | renesas +ra2l: r_flash_lp: ram_xxx unstatics - unstatic ram_ tram... |
名前 | Rev. | 日時 | 作者 |
---|---|---|---|
tip | 7ce11f211ba4 | 2024-03-18 04:53:39 | alexrayne |
名前 | Rev. | 日時 | 作者 | メッセージ |
---|---|---|---|---|
MDR32F9Q | a8a41708d472 | 2019-04-30 15:57:10 | alexrayne | +CAN_Device:adrMAY_ABSENT -... |
contiki | b5d88c4e0b91 | 2019-02-14 22:47:13 | alexrayne | +MDR32F9Qx/mcu_usart:UARTx ... |
default | cb62dc644f46 | 2019-03-23 06:39:19 | alexrayne | < HAL_I/OStreamDevice |
renesas | 30a0ddc2f487 | 2024-03-18 04:49:22 | alexrayne | ra2l: r_iicsw_master: failu... |
stm32ll | b290bf264784 | 2020-03-19 21:01:01 | alexrayne | +stm32ll:L1 - support |
библиотека АПИ устройств, и АПИ ОС.
cpu/MDR32F9Qx/
- порт для SPL 1886ВЕ94Тcpu/STM32*/
- порт для SPL STM32F4 - не реализован, не отлаженcpu/renesas/rl78g14.lora
- порт LoRa EDK rl78g14cpu/renesas/ra2l.fsp
- порт RA2L для фреймворка renesas FSPlinux/
- порт устройств под линьqt/
- порт устройств и библиотек под окружение Qtбиблиотека HAL спроектирована с зацелом отделения функциональной части от аппаратной реализции.
хедеры вида xxx_hal.hpp
- объявляют интерфейс драйвера, и имеют общий
аппаратно-независимый код. Реализации драйвера под конкретную платформу создаются
в папках платформы.
сейчас реализован порт SPL Миландра для контроллеров 1886ВЕxx - MDR32F9Qx/
хедеры интерфейсов драйверов HAL тоже используют SPL платформы проекта, но не напрямую
а через прокси-хедеры вида mcu_xxx.h
. Задача их - включить нужный хедер SPL,
и адаптировать его вызовы и названия к общему виду, используемому HAL.
так же порт реализует обязательный хедер gpio.h
- управление и настройку пинов контроллера
Для порта на другой SPL надо завести каталог платформы и, как минимум,
написать новые gpio.h
и mcu_xxx.h
.
И сделать версии драйверов HAL унаследованные от интерфейсов xxx_hal.hpp
.
Эти реализации должны обеспечить настройку и иницализацию железа под драйвер.
Драйвера, требующие конкурентного доступа от разных процессов, или работы с системными
часами и таймаутами используют ресурсы ОС.
HAL использует ресурсы ОС через хедеры обертки-порты:
- OsSync.h
- порт примитивов синхронизации ОС:
- критические секци
- семафор
- мутекс
- сигнал
- нитки, их управление
- sleep
собственно HAL использует выделенное, остальные ресурсы используются кодом проекта.
OsTime.h
- порт примитивов работы с временем: таймеры и, таймаутыos_isr.h
- порт управления преерываниями: вкл/выкл прерыванияsystem.h
- все остальное. Сейчас дает частоту процессора, и пустое ожидание события.halos_types.h
- хедер связывающий простые типы HAL - результаты, ошибки,
с константами и типами ОС.hal_types.h
- удобные типы для использования в ХАЛ.
halos_types.h
- хедер-образец. порты ОС, по мотивам этого хедера, адаптирую
типы ХАЛ с типами ОС
hal_device.h
- перечисление интерфейсов различных устройств общего вида.
porting/
- каталог портов АПИ разных ОС.
hal_ringbuffer
- шаблоны кольцевой буффера. используются в буферах
ввода/вывода - UART, SLIP
Поддержка разных компиляторов и диалектов С/С++ осуществляется хедерами
c_compat.h
и compiler-port.h
project-conf.h
- хедер-образец. по этому образцу приложение делает этот
же хедер, с настройками ХАЛ под проект.
project-cli.h
- хедер-образец настроек CLI под проект.
cpu/
arm/
- общий код для АРМ поддержки. дополнительный код для АРМ в ware/contiki/arch/cpu/arm
stm32.LL
- порт STM32 (семейства f4, L1) для работы на LL билиотеках
stm32.HAL
- порт STM32 (семейства f4, h7) для работы на HAL билиотеках.
( доступно только RCC )
stm32.SPL
- порт STM32 (семейства f4) для работы на SPL билиотеках.
( доступно GPIO, DMA, UART )
MDR32F9Qx
- 1886ВЕ94Т под SPL
renesas/
- порты процессоров renesas
rl78g14.lora
- импортировано и доработано из фреймворка LoRa для RL78G14
( доступно GPIO, буферированый UART )
ra2l.fsp
- порт для RA2L на фреймворке FSP.
( доступно GPIO, буфер на драйвер UART )
EnumClass
- C++ обертка bitmap из enum. Позволяет кошерно в битовые операции на флагах заданных enum.observe_pattern
- C++ патерн обозревателяcli/
- (Common Line Interface) библиотека реализации терминала на stdio, командной строки.содержит фильтры, устройства обеспечения работы с сетевыми протоколами
telnet_hal
- фильтр протокола телнет, на потоке stdioslip-filter
- фильтр протокола SLIP прямо на буффере HAL_RingBuffer.slip_hal
- прокси-фильтр УАРТА фреймов протокола SLIPфайлы *_hal
- описание интерфейса соотвествующего устройства.
STDOut
. Изпользуются журналерами и CLIuart_hal
- драйвер УАРТа, с циклическим буфером на приемнике и трансмитере.switch_hal
- переключатель набора пинов контроллера, с одним активным пином.timer_hal
- базовый таймер/счетчик/ШИМ.ssp_hal
- драйвер обмена по синхронной шине SPI/I2C, и его прокси SPIIO реализующий IO_Device
примитивы.can_hal
- драйвер шины CAN, базовое АПИ оправки сообщения, и присоединения слота на прослушивание адреса.flash_hal
- драйверы флеш-памяти, и банка флешек на клиенте SSP_HAL.flash_spi_hal
- флеш на SPI интерфейсе - минимальный набор команд.flash_i2c_hal
- флеш на I2C интерфейсе, поддерживает примитивные eeprom интерфейс чтение/запись без команд.