- power, timer, uart.
- i2c
- USB0/USB1. Могут также работать оба одновременно.
Это означают, что теперь базово поддерживаются основные ветки платформ как для STM32, так и для LPC. HAL позволяет сменить аппаратную платформу простым перещелкиванием конфига. Забавно, что в плане поддержки LPC (особенно USB) оставил libopencm3 далеко позади. Хотя и не ставил такой цели - само получилось :)
Пришлось окончательно отказаться от POSIX - использовать int64 для времени - очень плохой вариант, особенно если нет аппаратного деления. В остальном, интерфейсных изменений ядра почти нет - это радует что наконец-то архитектура пришла к виду, который меня полностью устраивает. Из внутренних - небольшая доработка IO, очередь IPC теперь в userspace, что позволяет сократить один вызов ядра, если очередь не пуста. К тому же это подготовительные работы к созданию аналога slub allocator - чуть будет свободное время, обязательно этим займусь.
Из веселого. Ляпнул пару недель назад про REx на профессиональном ресурсе - вижу стабильно несколько человек смотрит код. Исходники драйверов, код ядра. Связаться даже не пытаются. Вывод очевиден - пиздят код. Гиблое это занятие - можно, конечно, украсть работу с регистрами, подсмотреть пару идей. Но без понимания общих принципов, без понимания предметной области, без плотного взаимодействия с разработчиком - бессмысленно. Я шел к этому годами - изучая L4 (включая кваллкомовскую адаптацию), minix, linux, разработки MIT по экзоядру, а также кучу проприетарных осей, которые и в глаза никто не видел. В любом случае, радует признание, хоть и такое забавное.