- Basic question about booting & memory mapping
- Posted by Bhavik on January 10th, 2008
Hi,
I have a very basic question about booting in embedded device.
I have a device, which starts the execution of code from boot ROM on
the SoC when the device is switched on or is reset.
I know that during the reset or power on, the program counter is set
to 0 (apart from many other things).
I want to know, How the processor knows that it has to start execution
from particular address in the memory? And in my case, how the boot
ROM start is mapped to address 0?
Or sometimes the code execution directly starts from NOR flash, which
has XIP facility.
My question is general for all devices in the memory map. How are the
addresses of different peripherals decided? Is it decided at the time
of designing the hardware?
Can anyone explain me this? Or provide a link to a good article?
I searched on the net, but couldn't find a satisfactory answer.
Thanks in advance for your help.
- Posted by karthikbalaguru on January 10th, 2008
On Jan 10, 2:16*pm, Bhavik <bhavik.pa...@gmail.com> wrote:
Your processor is designed like that. (Reset Vector)
Some processors have different address (other than 0).
If you use your own compiled Boot ROM.
Linker files make the necessary mapping .
If your linker command file is not configured properly, it can
lead to lots of other problems.
If you use the 3rd-party bootrom, then it is done by
their linker file while making that bootrom.
It depends on the scenario. If it is going to meet some
specification(Inter-operability /
universal standard), then it would be decided at the time of making.
If the peripherals are of our own interest w.r.t our own project, then
it
has to be done by using proper latches & glue logics (Hardware design
w.r.t your own
specific requirement ).
Karthik Balaguru
- Posted by karthikbalaguru on January 10th, 2008
On Jan 10, 2:16*pm, Bhavik <bhavik.pa...@gmail.com> wrote:
Your processor is designed like that. (Reset Vector)
Some processors have different address (other than 0).
If you use your own compiled Boot ROM.
Linker files make the necessary mapping .
If your linker command file is not configured properly, it can
lead to lots of other problems.
If you use the 3rd-party bootrom, then it is done by
their linker file while making that bootrom.
It depends on the scenario. If it is going to meet some
specification(Inter-operability /
universal standard), then it would be decided at the time of making.
If the peripherals are of our own interest w.r.t our own project, then
it
has to be done by using proper latches & glue logics (Hardware design
w.r.t your own
specific requirement ).
Karthik Balaguru
- Posted by Ed Prochak on January 10th, 2008
On Jan 10, 4:16*am, Bhavik <bhavik.pa...@gmail.com> wrote:
You can find the answer to all of these questions in the programmers
reference manual for your processor. You do have one don't you?
Ed