Great videos. Would be nice to see a VSCode and Cube tutorial with Makefiles, preferably on Linux. Hard to look at Eclipse when we have much better alternatives now.
This is a good point, and something I would like to do. In spite of the chunkiness of Eclipse, it is probably the easiest way to get started, especially for people new to embedded. And the tool integration isn't bad once you get used to it, although I nearly always use an external editor like emacs. At past jobs, I have used clunky IDEs to do very early work when using an MCU for the first time, for things like checking out the board hardware and prototyping. It can be the fastest and easiest way to get started, even though we would later move to Linux environment for production code.
Thank you so much for the work Mr. Gene. It is the best tutorial of getting better at embedded fast. Wishing you a great million following!! Thank you! Besides, I have not gone further the board selection part. I wanted to know if I need that exact board or are we simulating this on the IDE so no HW is required sir?
The course is based on having the NUCLEO board as described in lesson one, or a NUCLEO board very similar to it. The IDE provides no simulation capabilities. You could go through the course without any hardware, but you will miss much of the practical experience. In any case, I hope you have success in your studies.
It is possible to be CLI-only in principle, but it would be a much different course because it would be much more difficult to to write the hardware initialization code from scratch. There are good and bad things about IDEs, and automatic code generation. But for people just starting with embedded, there are so many things to learn, so I think that good > bad for IDE. If you look at my course on CI/CD, you will see that you can easily create build scripts (.bat in Windows) to build a STM32CubeIDE project, and flash it onto the MCU. Then if you use something like VS Code to edit code, you will not use the IDE very much. However, you must still use IDE for two main reasons: 1. If you want to change the peripherals and settings for which you are using code generated by the IDE. You need to regenerate the code. 2. To use the IDE GUI debugger, which is pretty nice. If you look ahead a few lessons where I go through all of the startup code, you will see the IDE-generated code, and perhaps find it is not so bad. And in the CI/CD course, you will see that STM32CubeIDE generates standard makefiles that you can run from CLI. I find that as long as I understand in detail what the IDE is doing, I am OK with it.
Yes, pins can be open collector for buses. For some functions, like I2C bus, the chosen pins will automatically be set for open collector since it is known they must be open collector. For GPIO pins, it is up to you to decide whether to make them open collector or not.
@knki_95 The links to the github repos were in Lesson 1, but I copied them in below... This is the main repo containing the code: github.com/g-schro/mcu-class-1-code This repo contains the exact version of the documents I used in the course, such as the ARM architecture documents: github.com/g-schro/mcu-class-1-external-docs Hope you find the course useful. Gene
Thank you so much for this series. You are a great presenter. I'm excited for the rest of the videos!
Thanks, you are very kind. I would like to update this series, and I am told I should go a little faster :). Gene
Great videos. Would be nice to see a VSCode and Cube tutorial with Makefiles, preferably on Linux. Hard to look at Eclipse when we have much better alternatives now.
This is a good point, and something I would like to do. In spite of the chunkiness of Eclipse, it is probably the easiest way to get started, especially for people new to embedded. And the tool integration isn't bad once you get used to it, although I nearly always use an external editor like emacs.
At past jobs, I have used clunky IDEs to do very early work when using an MCU for the first time, for things like checking out the board hardware and prototyping. It can be the fastest and easiest way to get started, even though we would later move to Linux environment for production code.
Thank you so much for the work Mr. Gene. It is the best tutorial of getting better at embedded fast. Wishing you a great million following!! Thank you!
Besides, I have not gone further the board selection part. I wanted to know if I need that exact board or are we simulating this on the IDE so no HW is required sir?
The course is based on having the NUCLEO board as described in lesson one, or a NUCLEO board very similar to it. The IDE provides no simulation capabilities. You could go through the course without any hardware, but you will miss much of the practical experience.
In any case, I hope you have success in your studies.
Hey, thanks for the great course! Is there any way to do all of this purely from a CLI? Or is that just simply not done?
It is possible to be CLI-only in principle, but it would be a much different course because it would be much more difficult to to write the hardware initialization code from scratch. There are good and bad things about IDEs, and automatic code generation. But for people just starting with embedded, there are so many things to learn, so I think that good > bad for IDE.
If you look at my course on CI/CD, you will see that you can easily create build scripts (.bat in Windows) to build a STM32CubeIDE project, and flash it onto the MCU. Then if you use something like VS Code to edit code, you will not use the IDE very much. However, you must still use IDE for two main reasons:
1. If you want to change the peripherals and settings for which you are using code generated by the IDE. You need to regenerate the code.
2. To use the IDE GUI debugger, which is pretty nice.
If you look ahead a few lessons where I go through all of the startup code, you will see the IDE-generated code, and perhaps find it is not so bad. And in the CI/CD course, you will see that STM32CubeIDE generates standard makefiles that you can run from CLI. I find that as long as I understand in detail what the IDE is doing, I am OK with it.
@@geneschroedertech7501 Thanks for the reply! I will definitely check out those other videos!
sir it was best explained thank you for it
You are most welcome
can the pins be open collecter to connect to a bus as i/o
Yes, pins can be open collector for buses. For some functions, like I2C bus, the chosen pins will automatically be set for open collector since it is known they must be open collector. For GPIO pins, it is up to you to decide whether to make them open collector or not.
Gene, please post the github repo link (if you intend to opensource) for the code you use here ?
@knki_95
The links to the github repos were in Lesson 1, but I copied them in below...
This is the main repo containing the code:
github.com/g-schro/mcu-class-1-code
This repo contains the exact version of the documents I used in the course, such as the ARM architecture documents:
github.com/g-schro/mcu-class-1-external-docs
Hope you find the course useful.
Gene
@@geneschroedertech7501 Many thanks Gene :)