Hi guys,
I am new on software programming and I am trying to understand some basic/ important things. I am interested in Bare-metal software programming, so please give me answers related on this. My question is: who is responsible and manage the physical memory mapping / allocation? Meaning, If I have 1GB physical memory on my system, the 1) CPU or 2) the Bootloader (like GRUB, U-boot) is responsible for the memory addresses that I can use for my program?
Is hardware specific architecture? Each platform manufacture has their own memory address mapping scheme and layout?
Furthermore, is there any standart way that you have to partition the physical memory? meaning, give some memory for I/Oports and so on?
Sorry for the mess, but I dont understand when you create/ build your software, how you know what range of physical addresses you can use for start/entry point, stack
and so on.
Please help me to clear all this in my mind. If you can give me examples will help me more
P.S. Programming in C
Thanks
I am new on software programming and I am trying to understand some basic/ important things. I am interested in Bare-metal software programming, so please give me answers related on this. My question is: who is responsible and manage the physical memory mapping / allocation? Meaning, If I have 1GB physical memory on my system, the 1) CPU or 2) the Bootloader (like GRUB, U-boot) is responsible for the memory addresses that I can use for my program?
Is hardware specific architecture? Each platform manufacture has their own memory address mapping scheme and layout?
Furthermore, is there any standart way that you have to partition the physical memory? meaning, give some memory for I/Oports and so on?
Sorry for the mess, but I dont understand when you create/ build your software, how you know what range of physical addresses you can use for start/entry point, stack
and so on.
Please help me to clear all this in my mind. If you can give me examples will help me more
P.S. Programming in C
Thanks