Learning Baremetal Programming in Cortex M4 (STM32 F4) - 1
I am following this Baremetal Programming Series (Low Byte Productions Channel), inorder to learn about ARM microcontrollers, writing drivers (I've a goal to write a driver for a Serial Communication Protocol maybe CAN or Q-SPI, etc.) and learning some C constructs as well which I will then emulate in Renode.
Some notes,
-
MACROS
{.verbatim} are instructions that asks the C preprocessor to do text replacements. -
Behind the Scenes of
libopencm3
{.verbatim}- The memory mapped address of a pin is calculated in the pre-processing stage itself using macros.
-
SYS_TICK
{.verbatim} is like a Wall Clock. -
weak functions
{.verbatim} are functions whose implementation can be redefined.
For Renode implementation, I just loaded the ELF of program used in the episode as like for the Hello World, Intro to Renode from Interrupt and I did used the same Makefiles and Linker scripts once again. (Those 2 seems to be a huge mess ? Is it ?)
I shouldn't be lazy enough to tinker them in future.
Then Looked the state of Pin A5 (External LED) and I could see that the state toggles. I think I could even log the data or check this working using Robot Framework.
Next, I need to look at Renode docs to discover more functionalities and then continue with Episode 3 on PWM and Timers!