Skip to content

Latest commit

 

History

History
36 lines (27 loc) · 2.5 KB

File metadata and controls

36 lines (27 loc) · 2.5 KB

Chapter 2: Creating a System Architecture

This is a companion repository for Making Embedded Systems, 2nd Ed. by Elecia White.

Drawing Tools

Some tools for creating system and block diagrams:

  • My favorite is Mermaid Markdown which can be created with text and used in Readme.md files. You can use it live: mermaid.live
  • draw.io makes online flowcharts and diagrams (its code), no signup
  • LucidChart is also very popular
  • asciiflow.com creates diagrams that can be output to ASCII

Other Diagramming Methods

The C4 Model of diagramming systems is different from the approach used in Elecia’s book but it is very useful. It focuses more on large scale software. See Wikipedia and a good blog post from InfoQ

Also the The Art of Crafting Architectural Diagrams blog post describes some pitfalls and best practices.

Hardware Abstraction Layers Example

STMicroelectronics has many popular processors. They also have a great deal of code on their github repository. Start with the top-level microcontroller repository and then dig into the HAL or BSP or CMSIS for a processor that interests you.

Initially, the goal is just to figure out how it is all put together. Remember that you probably only care about the processor and features you want to use but they are trying to support hundreds of processor variants in many different markets. There is a reason it is so complicated.

Code For This Chapter

FIXME Not implemented. Planning to have examples for:

  • Singleton
  • Sandbox
  • MVC
  • Logging Interface

New to Git?

  • Learn Git Branching is a puzzle solving tutorial game.
  • Oh My Git is a game with virtual playing cards and repo visualization
  • Zen of Git video is a great talk by Tianyu Pu on the internals of git (and you thought the user interface was complicated!😊).

Final Note

If you like what's here, please consider buying the book: Making Embedded Systems, 2nd Ed. by Elecia White