Reading:
- https://github.com/manjunath5496/Embedded-Systems-Books/tree/master?tab=readme-ov-file
- https://mp.weixin.qq.com/s/RHCPwB0pN2XpgWJCurNOuw
- https://lupyuen.github.io/
- bare metal programming guide - https://github.com/cpq/bare-metal-programming-guide
Hi, here is step by step of how I try to understand C program running on baremetal. First try to understand of byte addressable, char, int and various variable size. Follow up by heap, stack and the memory allocation. Memory Allocation - https://x.com/chessman786/status/1859054892293517531?s=46 https://martinlwx.github.io/en/what-is-the-heap-and-stack/#fnref:2 Youtube CoreDumped - Why is STACK so fast? and Why is HEAP so SLOW?
- Pointer - https://x.com/7etsuo/status/1834554218386194464?s=46
- Segmentation Fault
- Interrupt - https://x.com/7etsuo/status/1859722100740849769?s=46
- Stack/buffer overflow
Thread Process
Memory Layout of a PROCESS text, data, HEAP, STACK https://www.youtube.com/watch?v=7ge7u5VUSbE&t=42s
.elf .dat .hex .bin .mcs (Intel Hex)
OpenOCD : https://ectfmitre.gitlab.io/ectf-website/2024/getting_started/openocd.html
GDB : https://visualgdb.com/gdbreference/commands/
GDB Dashboard : https://github.com/cyrus-and/gdb-dashboard?tab=readme-ov-file
C Library Functions https://developer.arm.com/documentation/dui0041/c/The-C-and-C---Libraries/The-embedded-C-library/Embedded-C-library-functions
Common predefined macro https://gcc.gnu.org/onlinedocs/gcc-11.5.0/cpp/Common-Predefined-Macros.html
SW
ASCII vs unicode - UTF-8, UTF-16, UTF-32 Little Endian vs Big Endian - https://www.youtube.com/watch?v=RvFRCDoj6JI Data padding (Data Structure Alignment)