Arm Community
Site
Search
User
Site
Search
User
Groups
Arm Research
DesignStart
Education Hub
Graphics and Gaming
High Performance Computing
Innovation
Multimedia
Open Source Software and Platforms
Physical
Processors
Security
System
Software Tools
TrustZone for Armv8-M
中文社区
Blog
Announcements
Artificial Intelligence
Automotive
Healthcare
HPC
Infrastructure
Innovation
Internet of Things
Machine Learning
Mobile
Smart Homes
Wearables
Forums
All developer forums
IP Product forums
Tool & Software forums
Support
Open a support case
Documentation
Downloads
Training
Arm Approved program
Arm Design Reviews
Community Help
More
Cancel
Developer Community
Tools and Software
Software Tools
Jump...
Cancel
Software Tools
Arm Development Studio forum
Boot ROM Question of NXP LPC17xx
Tools, Software and IDEs blog
Forums
Videos & Files
Help
Jump...
Cancel
New
Replies
4 replies
Subscribers
126 subscribers
Views
4083 views
Users
0 members are here
Related
Boot ROM Question of NXP LPC17xx
Offline
Woody Wu
over 7 years ago
Note: This was originally posted on 9th June 2011 at http://forums.arm.com
Hi,
I am about to use LPC17xx to do some work. But I don't quite understand
it's boot ROM remapping. According to ARMv7 architecture manual, the
first vector entry (address 0x00 to 0x03) should be value of SP and the
second entry (address 0x04 to 0x07) should be reset entry (the starting
point of the user program). On the other hand, the LPC17xx manual said
that at boot time, a portion of the 8K boot ROM is temporarily remapped
to address 0x00000000. So I was wondering, what are the values in the
first 16 bytes in boot ROM? And, how a user program is finally get
executed? Where is my stack top?
Thanks in advance if you can give me some clues.
-
narke
Parents
Offline
Joseph Yiu
over 7 years ago
Note: This was originally posted on 9th June 2011 at
http://forums.arm.com
The first 16 bytes in the boot ROM will contain the vector table for the boot ROM, with the reset vector pointing to the starting address of boot ROM program. During executing of the boot loader program, it will turn off the remap function at some stage, so that the user program in the flash will appear at the beginning of the memory map, and then execute the program in the flash memory if the flash memory has been programmed (this might also depends on other boot settings).
Before switching to run the program in flash, the boot loader can read the vector table on the flash memory, and adjust the main stack pointer value accordingly. Then it can read the reset vector in the vector table and branch to this address. In this way, the initial main stack pointer value and starting program address will match the values you placed in the starting of the flash memory.
This memory remap function is implemented in the bus system of the NXP LPC17xx. It is not inside the processor core, so you cannot find this information from ARM documentation.
regards,
Joseph
Cancel
Up
0
Down
Reply
Cancel
Reply
Offline
Joseph Yiu
over 7 years ago
Note: This was originally posted on 9th June 2011 at
http://forums.arm.com
The first 16 bytes in the boot ROM will contain the vector table for the boot ROM, with the reset vector pointing to the starting address of boot ROM program. During executing of the boot loader program, it will turn off the remap function at some stage, so that the user program in the flash will appear at the beginning of the memory map, and then execute the program in the flash memory if the flash memory has been programmed (this might also depends on other boot settings).
Before switching to run the program in flash, the boot loader can read the vector table on the flash memory, and adjust the main stack pointer value accordingly. Then it can read the reset vector in the vector table and branch to this address. In this way, the initial main stack pointer value and starting program address will match the values you placed in the starting of the flash memory.
This memory remap function is implemented in the bus system of the NXP LPC17xx. It is not inside the processor core, so you cannot find this information from ARM documentation.
regards,
Joseph
Cancel
Up
0
Down
Reply
Cancel
Children
No data
More questions in this forum
By title
By date
By reply count
By view count
By most asked
By votes
By quality
Descending
Ascending
All recent questions
Unread questions
Questions you've participated in
Questions you've asked
Unanswered questions
Answered questions
Questions with suggested answers
Questions with no replies
Suggested Answer
DS-5 bare metal wait error after run "debug"
0
DS-5 Development Studio
Debugging
Arm Compiler 5
Memory
30861
views
14
replies
Latest
3 months ago
by
prasadghole
Suggested Answer
ARM development studio with ARM Juno r2 board
0
Juno Arm Development Platform
Arm Development Studio
Products
Arm Support
8007
views
2
replies
Latest
3 months ago
by
Ronan Synnott
Answered
"Unable to execute remote query (response code 503) " issue
0
7737
views
1
reply
Latest
3 months ago
by
Ronan Synnott
Not Answered
Where can I download DS-5 hardware firmware??
0
7210
views
1
reply
Latest
3 months ago
by
Ronan Synnott
Not Answered
Getting errors after including arm_math.h
0
stm32 h7
Keil
Digital Signal Processor (DSP)
STM32
27068
views
9
replies
Latest
3 months ago
by
roger-liu
<
>
View all questions in Arm Development Studio forum