Menu

Resources for learning "Modern Embedded Systems Programming"

Stefan L38
2021-07-11
2025-02-19
  • Stefan L38

    Stefan L38 - 2021-07-11

    Hello everybody,

    I have watched the introductional video about QP.
    OK I got a first impression on how it works.
    But after that QP seems to follow the low-standard of "tinker yourself smart" of leaving new users alone to tinkering around until the understand it after a lot of try and error.

    So I'm looking for a tutorial that is designed like this:

    describing in normal words a functionality that has two different priorities.
    And after describing it in normal words
    a lot of screen-shots that shows the process of creating the QP-based *.ino-file step by step.

    Example:
    lower priority: let an LED blinking morse-code SOS always for five times
    higher priority: if a button is pressed
    - stop the blinking
    - enter a change blink-frequency mode which is using the serial monitor as the user-interface

    Button is pressed => serial monitor shows "enter new frequency"
    user enters new value and blinking starts again the morse SOS at the new frequency

    variation of this functionality:
    if a button is pressed
    - go on blinking at the actual frequency
    - enter a change blink-frequency mode which is using the serial monitor as the user-interface

    Button is pressed => serial monitor shows "enter new frequency inputmode is left after 15 seconds"
    if user sends new value the blinking frequency is changed to the new value after finishing the actual sequence of sending "S" "O" "S"

    All this with explaining how the functionality in normal words is translated into QP-diagrams
    and with the explanations that do re-connecting back to the normal-words explanation of the functionality.

    Another approach could be to show how a medium advanced state-machine-functionality would be coded traditionally using switch case and if-conditions and how this translates into creating QP-diagrams.

    After having it explained this way the user has understood the generalised pattern how using QP to realise a certain functionality.

    I'm a hobbycoder with some years of experience of developing software for PC-based industrial controls with delphi. So I have some experience with event-driven programming.
    Anyway maybe my understanding of how I imagine that it works has some fundamental errors.

    Well if this is the case my description gives feedback on how the introductional presentation should be improved to create "the right picture" in the head of newcomers.

    best regards Stefan

     
  • Quantum Leaps

    Quantum Leaps - 2021-07-11

    Hi Stefan,
    Thank you for your interest in QP and the modern embedded systems programming.

    I realize that this is a deep subject and it is impossible to learn all this just by reading one blog post or by watching a 15 minute introductory video. So, please don't get discouraged if you don't grok it immediately--nobody would. But I promise you that the more you learn of this subject, the better software developer you'll become. You'll also change your entire approach to concurrent programming.

    So, here are some resources that you might find useful:


    I hope that all this will help you to learn at a deeper level. As you will watch the videos and read the resources, I hope that you'll recognize that many already implement your suggestions for teaching and explaining the stuff.

    --MMS

     

    Last edit: Quantum Leaps 2021-07-11
  • Stefan L38

    Stefan L38 - 2021-07-11

    Hi MMS,
    thank you for answering and providing links to learning material.
    apologies for shouting and repeating what my question is.

    Do I conclude right that an introductional tutorial like I have described above does not exist?

    I'm not discouraged. I have learned quite a lot new things about software-developping.
    The major experience from my former reading of other documentations is: the documentations are short and rather poor.

    So I took a look at the #0 Modern Embedded Systems Programming: Getting Started video.

    Are you kidding me? at 0:50 the video shows assembler.

    Now I'm really upset. I was asking for a very specific kind of tutorial.
    Posting a collection of all your material is not a good answer to my question:

    Not to be misunderstood: I know the basic principles of assembler. Back in 1987 I was coding assembler on a C64 (6502-µProzessor) and I did code some assembler for the 8-core real parallel processing parallax propeller-chip so I know the basics of assembler.

    This course is a "go through it all course". Watching all these videos would be a great waste of time because I know the basic principles.

    Well I'm interested in a demonstration how a rather simply functionality like described in my initial post is shown. Most preferred as a written tutorial or at least as a video tutorial.

    So if your video-material has a video showing how your

    QP.exe-software works together with the Arduino-IDE

    I would really appreciate it if you post a single direct link to this.

    Posting a collection of all your material is not a good answer to my question:

    Does your website or video-channel have a tutorial that is focused on
    showing how your

    Does your website or video-channel have a tutorial that is focused on

    a rather simple example like I have described above?

    showing how your QP.exe-software works together with the Arduino-IDE ??

    apologies for repeating and shouting what my question is. It is just to emphasise:
    post link to something specific or post a single "I'm sorry "

    regards Stefan

     

    Last edit: Stefan L38 2021-07-11
  • Tvishy

    Tvishy - 2025-02-18

    Hi all,
    I got at this course in Youtube and it looks very promising to me . I'm newbie concerning Embedded but have some skills in C and C++. I've watched the first video in playlist and wonder if I can proceed with the course on Ubuntu ? Are there exist any practice of how could I follow along with the course, because I know that any fiddle with software in Linux might be a nightmare. What would you suggest to get through it seamlessly?

     
  • Quantum Leaps

    Quantum Leaps - 2025-02-18

    Hi Tvishy,
    Thank you for your interest in the projects accompanying the "Modern Embedded Systems Programming" video course.

    The projects accompanying the video course are for Windows. The projects contain embedded C code for the TivaC LanuchPad or the NUCLEO-C031C6 boards, but the projects are for the IAR EWARM or Keil uVision IDEs that run on Windows. It might be possible to adapt the projects to run on Ubuntu Linux (perhaps in VSCode), but it would not be completely trivial. If you are a beginner, I would recommend to stay on Windows.

    --MMS

     

    Last edit: Quantum Leaps 2025-02-18
  • Tvishy

    Tvishy - 2025-02-19

    Got no help to stick to Windows, so consider runnnig Windows on virtual machine, say VirtualBox. Are there any hazards or requirements concerning set up Windows on virtual machine? How much harddrive space, RAM is needed, which version of Windows etc?

     
  • Quantum Leaps

    Quantum Leaps - 2025-02-19

    Hi Tvishy,
    I'm not sure how Keil uVision would work on a virtual machine running Windows. The most important aspect is the connectivity to the hardware debugger on the board. This happens over USB, and I'm not sure how well this is virtualized. As far as Windows version is concerned, I think that at this time Windows 10 or Windows 11 should be fine. Windows 10 will stop receiving support from Microsoft this year.

    In general, I hope you understand that it is impossible to support all host environments that people might be using. This course supports Windows because this is still by far the most popular host OS in the embedded systems community. If Windows were not supported, someone will immediately request it.

    My goal is to teach embedded systems and I'm not interested in any religious wars between Linux, macOS, or "Windoze". I hope this makes sense to you.

    --MMS

     
  • Tvishy

    Tvishy - 2025-02-19

    Thanks, for help. Don't want to bother with virtual machines anyway, so I think I'll try to install Windows 10 or 11 along with my Ubuntu.

     
    • Quantum Leaps

      Quantum Leaps - 2025-02-19

      Dual boot (Ubuntu/Windows) would be my choice.
      --MMS

       

Log in to post a comment.