If you need:
* custom system version,
* system for another procesor,
* want to request new features,
If you found error on the site
something is displayed incorrectly or is not working under your browser.
You can send a message
Click here and write a note.
Your comments will improve the DioneOS system.
Full verification of the system version for ARM Cortex-M3
Version for ARM Cortex-M3 was tested automatically (full code coverage: all functions, marcos, code lines, conditions, etc.). Tests were performed on STM32L162.
DioneOS for ARM Cortex-M3
DioneOS version for ARM Cortex-M3 processor was released.
Introduction to Multithreading
'Introduction to Multithreaded Programming' has been added in tutorials section
State Machine support.
State machine support has been added to the system. Pattern for state machine coding is defined.
Texas Instruments Developer Network
ELESOFTROM entered Texas Instruments MCU Developer Network. This program gathers companies that develop software for TI MCUs and provide professional services in this domain.
Regular MSP430 supported.
Support for regular MSP430 microcontroller and small code model has been added.
DioneOS release for MSP430x
First release of the DioneOS System. Support for MSP430x and large code model.
Reliability of the DioneOS system
The version for ARM Cortex-M3 was carefully tested. The tests were performed on microcontroller ST Microelectronics STM32L162. Testing prorgams were compiled by own toolchain with GNU GCC compiler and newlib library as libc.
Quality of compiled code
"Zero tolerance" for errors, warnings, unclear behavior!
- enabled detailed warning reporting during compilation (-Wall --pedantic)
- DioneOS code results in zero warning*
- avoiding unsafe programming structures
- using well tested solutions
- behavior observation, each unclear behavior is analyzed and explained (aditional tests, in-depth studing of processor documentation).
How the DioneOS System is Tested
- Testing Framework for automatic code verification (OpenOCD, cross-GDB, JTAG, Logic Analyser, scripts...)
- Tests plan that covers all functions and macrodefinitions
- automatic test execution (started as a script in command line)
- testing on target processor (in hardware)
All tests set contains more than 400 tests (example of tests report)
Executed tests provide full code coverage:
- all source code lines (C i ASM)
- all macros
- all conditions and decissions in conditional instructions
- all exit points in functions (including exceptions)
- testing various configuration options that conditionally enable parts of the code
What is tested
- testing function if they are consistent with specification,
- testing returned error codes
- testing detection of run-time errors and raising exception,
- testing if code is properly protected against interrupts in all locations (read more about this...)
- advanced properties of Cortex-M3 architecture were analysed and taken into account (Late Arriving Interrupt, Tail-Chaining, Pipeline, etc.)
*) - compiler reports a warning during building STM32L1xx_StdPeriph_Lib library in stm32l1xx_flash_ramfunc module:
stm32l1xx_flash_ramfunc.s: Assembler messages:
stm32l1xx_flash_ramfunc.s:18: Warning: ignoring changed section attributes for .data
It is caused by intentional functions placement in RAM in .data section. This section has memory attributes "read and write", while locating the code there forces
attributes "for execution and read only". This is some kind of short-cut done by the library authors (instead creation new section for code in RAM together with its initialization
they used ready section .data).
Nevertheless, the code in placed properly in RAM and calling it from flash-located program is done through added veneer. The execution is correct as well.