| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| distortos-0.6.0.tar.xz | 2018-07-01 | 1.2 MB | |
| distortos-0.6.0.7z | 2018-07-01 | 1.2 MB | |
| README.md | 2018-07-01 | 8.1 kB | |
| v0.6.0 source code.tar.gz | 2018-07-01 | 12.5 MB | |
| v0.6.0 source code.zip | 2018-07-01 | 13.6 MB | |
| Totals: 5 Items | 28.5 MB | 2 | |
Added
- Support for all 81 STM32L4 devices.
- Support and test configurations for NUCLEO-L432KC and NUCLEO-L476RG boards with STM32L4 chips.
- Support and test configuration for NUCLEO-F446RE board with STM32F4 chip.
distortos/C-API/ConditionVariable.h- C-API for condition variables, implemented as wrappers fordistortos::ConditionVariablemember functions.distortos/C-API/Mutex.h- C-API for mutexes, implemented as wrappers fordistortos::Mutexmember functions.distortos/C-API/Semaphore.h- C-API for semaphores, implemented as wrappers fordistortos::Semaphoremember functions.distortos::fromCApi()which can be used to cast referenes to C-API objects (likedistortos_Semaphore) into references to regular C++ API objects (likedistortos::Semaphore).distortos::DynamicSoftwareTimerclass - a dynamic and (mostly) non-templated counterpart ofdistortos::StaticSoftwareTimer.distortos::ThisThread::exit(), similar topthread_exit(), which can be used to cause early exit of the current thread.distortos::ThreadIdentifiertype which can be used to uniquely identify and access thread's instance. Identifier of the thread can be obtained usingdistortos::Thread::getIdentifier()anddistortos::ThisThread::getIdentifier().- Unit tests of C-API for condition variables, mutexes and semaphores, using Catch unit test framework and Trompeloeil mocking framework. Build system of unit tests uses CMake.
- New overload of
distortos::Mutex's constructor for "normal" type. BIND_LOW_LEVEL_PREINITIALIZER()andBIND_LOW_LEVEL_INITIALIZER()macros, which can be used to bind (at compile/link time) any function as low-level preinitializer (executed before .bss and .data sections' initialization, before constructors for global and static objects) or low-level initializer (executed after .bss and .data sections have been initialized, but before constructors for global and static objects). Each preinitializer/initializer has its own order of execution from 0 to 99.include/CONCATENATE.handinclude/STRINGIFY.hwith useful macros for token concatenation and stringification.- CMake-based build system. At this moment all configuration is still done with Kconfig - CMake loads selected
distortosConfiguration.mkand only deals with compilation. Typical use case involves following steps: select configuration withmake configure CONFIG_PATH=..., create output folder of your choice (mkdir output) and enter it (cd output), configure compilation withcmake .. -DCMAKE_TOOLCHAIN_FILE=../cmake/Toolchain-arm-none-eabi.cmakeand finally start the build withmake. You can obviously use other CMake generators, e.g. Ninja, Eclipse CDT4 project, ... CMake-based build system will only support configurations with proper board, i.e. "Custom board" choice for "Board" in Kconfig is not supported. - Added
rbegin(),rend(),crbegin()andcrend()functions toIntrusiveListandSortedIntrusiveListclasses, making them usable withestd::ReverseAdaptor.
Changed
- Reduced size of
distortos::Mutexfrom 28 bytes to 24 bytes (5 pointers + 4 bytes). distortos::ThreadCommonwas moved todistortos::internalnamespace.distortos/ThreadCommon.hppwas moved todistortos/internal/scheduler/ThreadCommon.hpp. There's no need for this class to be available in the public API.- All low-level initializers (architecture, chip, peripherals, scheduler, threads, ...) use
BIND_LOW_LEVEL_INITIALIZER()instead of being called viadistortosPreinitArray[]from newlib's__libc_init_array(). - Changed linker script symbols related to .bss and .data section initializers -
__{bss,data}_array_{end,start}becomes__{bss,data}_initializers_{end,start}. - Replaced
generateChipDtsi.pywithgenerateChipYaml.py. New script reads all input data and its hierarchy from*.csvfiles - no templates or external files are used. Output*.yamlfiles for described chips are generated by ruamel.yaml parser/emitter module, which is the only dependency of this script. - Replaced devicetree-based board generator with one using
*.yamlfiles as input. Model of data in*.yamlfiles resembles devicetree, but is more suited for requirements of distortos (static code generation instead of dynamic run time configuration). New version ofgenerateBoard.pyrequires ruamel.yaml parser/emitter module and jinja2 template engine. It is also possible to use chip*.yamlfiles directly to generate so-called "raw" board, which can then be used by CMake. Basic documentation of bindings for chip and board*.yamlfiles is included indocumentation/yaml-bindings/. - Indexes of board buttons and LEDs - generated automatically by
generateBoard.py- were changed from<name>ButtonIndexand<name>LedIndexto<group><Name>Index. For exampleb1ButtonIndexandld3LedIndexwere changed tobuttonsB1IndexandledsLd3Index. Similar change was done for counts of available board buttons and LEDs - they were changed fromtotal<Name>to<group>Count. For exampletotalButtonsandtotalLedswere changed tobuttonsCountandledsCount. - Renamed
StaticRawFifoQueue2toStaticRawFifoQueueandStaticRawMessageQueue2toStaticRawMessageQueue. Aliases for old names were added and marked as deprecated and are scheduled to be removed after v0.6.0 - Update CMSIS to version 5.3.0.
Fixed
- Fixed GDB pretty-printers of distortos queues when using GCC 7. New version of libstdc++v3 from GCC changed implementation of
std::unique_ptr, which is used internally by queues for managing storage. Fixed pretty-printers fromdistortos.pynow handle both variants ofstd::unique_ptr. - Mark all
.bsssections in generated linker scripts as(NOLOAD). Without this change.binfile for a project containing zero-initialized data in additional memories would be extremely large - for example ~134 MB in case of STM32F4 when anything is placed in.ccm.bss. - Fixed interrupt priorities for STM32's SPIv2 and USARTv2 for cases when
CONFIG_ARCHITECTURE_ARMV7_M_KERNEL_BASEPRIis defined and non-zero. Previously interrupt priorities of these peripherals were always set to 0 (highest possible). - Restore 4-byte alignment for
.bssand.datasections in linker scripts generated for ARMv6-M and ARMv7-M architectures. Previously when beginning/end of these sections were not 4-byte aligned (for example there's just one byte in such section), the__..._start/__..._endsymbols would not be properly aligned for use byReset_Handler()'s initialization code, which initializes 4 bytes at a time. #include ...examples in documentation generated by doxygen use proper paths - e.g.#include "distortos/Semaphore.hpp"instead of#include "Semaphore.hpp".- Fixes necessary for compilation with GCC 8.
Removed
- Removed call to
lowLevelInitialization0()fromReset_Handler()for ARMv6-M and ARMv7-M. All low-level preinitializers should useBIND_LOW_LEVEL_PREINITIALIZER()macro. - Removed
board::lowLevelInitialization()declaration. Low-level initializers of board should useBIND_LOW_LEVEL_INITIALIZER(60, ...);. - Removed
pydts.py, as new version of board generator uses*.yamlfiles as input. - Removed tup build infrastructure - tup is no longer supported for building distortos.
- Removed deprecated functions and aliases:
StaticRawFifoQueueFromSize, oldStaticRawFifoQueue,StaticRawMessageQueueFromSize, oldStaticRawMessageQueue, old variant of STM32's GPIOv2configureAlternateFunctionPin().