This repository is to Capture Framework Design and Templating with approach of flexible building blocks.
- Eclipse >= Luna (For templating and debugging to work properly)
- arm-none-eabi-gcc
- Linux -> stlink flash command line utility
- Win -> STM32 ST-LINK Utility
- OpenOCD for stlink-v1 and v2
- STM32CubeMX -> Standalone and Eclipse Plugin
- STemWin -> Professional graphical stack library enabling the building up of GUIs
- X-CUBE-AI (STM32Cube.AI) (Not Started)
- X-CUBE-BLE1 (Not Started)
- X-CUBE-MEMS1 (Not Started)
- X-CUBE-NFC4 (Not Started)
- TouchGFXDesigner -> TouchGFX graphic design and code generation tool (Not Started)
- Doxygen
- Graphviz
This framework design is inspired from following Sources:
- IEEE SWEBOKv3
- Embedded Systems Building Blocks - Jean Lebrosse
- Software Engineering for Embedded Systems - Jean Lebrosse
- Jack Ganssle Books
- Documentation
- Doxygen and Graphviz (.doxyfile config required)
- Template header file with comments for Documentation Main Page
- It will convert comments to html or pdf document
- It will also provide DAG
- Dependency Graphs
- Call Graphs
- Truestudio Linker file for easy memory management
- STM32CubeMX Support for easy configuration
- Clock Config
- Peripheral Config
- 3rd Party Stack Config
- DMA Config and more
- Semi-hosting support
- printf over debug
- RTO's debug and trace support
- gprof and gconv support
- OTG USB support for Serial Communication
- Removing UART Port Dependency
- There is always one OTG on-board USB
- OTG USB support for Storage devices
- Implement FatFs for filesystem
- MCU Power Control
- Switchable power control for peripherals
- MCU Clock Control
- Systick interrupt for interval timer (Interrupt Delay support in ms,us)
- Watchdog support
- Sleep Mode support
- Flexible Overclocking support
- MCU Core Features
- Cortex-M Core Support (Stack, Memory, Registers, etc)
- Bit-banding
- MPU, SVC and etc
- Interrupt Services
- Delay
- Software Interrupt
- Hardware Interrupt
- Interval Interrupt
- DMA Interrupt
- CMSIS RTO for FreeRTOS
- Support for COM Port Debug over VCP
- Task List
- Runtime Stats
- Template for Hooks (Failure Detection and Interval Status Check)
- Filesystem and CLI support
- Support for COM Port Debug over VCP
- RTC Timer for Date and Time stamps
- Printf implementable
- BSP Driver Files for Custom Modular Driver Development (Refer book)
- It avoids modification to vendor default drivers (HAL or Legacy)
- This will be using HAL drivers for everything
- Modular drivers lets us manage hardware conflict and service conflict
- Prefix for board related files will be stm32f4_discovery_xyz.c/h
- Prefix for Custom Hardware files will be stm32f4_hardwareX_peripheralX.c/h