C/C++ Need To Know
C++ Need-To-Knows
In order to effectively use C/C++, you do need to know the language well. However, there are several auxillary topics outside the language syntax itself that are also important to understand. These include things like version control/workflows, code structuring, pulling in external code/libraries, and how your code is read by the compiler and translated into machine instructions.
While not strictly necessary for writing a simple program, once you increase the complexity to anything beyond a single source file and the standard library, these things become a lot more relevant.
If you are new to C++ but feel you now have a decent handle on the lanugage, you should read the following about the aforementinoed auxillary topics, in order, as they build off of each other:
- Macros and Preprocessor directives
- Header Files vs Sources
- The compilation process
- GCC compiler command-line syntax
- CMake
For some extra, related topics:
- The Bash command line
- Git/Version Control
- Github
- OpenOCD
- STM32 Environment Setup
For some C++ language resources:
- Pointers
- References
- Memory Management
- Templates
- Classes, inheritence, and virtual functions
- Constant Expressions
For some STM32 walkthroughs:
- Coding for hardware
- Basic GPIO toggle breakdown
- TinyUSB CDC example
- SPI and I2C examples
- Data transfer types (Poll/Interrupt/DMA)
- STM32CubeMX
