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
Pelion IoT Platform
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
Need help with IAR Embeeded Workbench Linker
Tools, Software and IDEs blog
Forums
Videos & Files
Help
Jump...
Cancel
New
Replies
3 replies
Subscribers
127 subscribers
Views
3984 views
Users
0 members are here
Related
Need help with IAR Embeeded Workbench Linker
Offline
ckuecker ckuecker
over 7 years ago
Note: This was originally posted on 5th January 2010 at http://forums.arm.com
Hello,
I am working with a Luminary LM3S6965 processor in a product that is intended to be firmware-upgradable in the field. We have an Ethernet port that we connect to a server that can use a proprietary protocol to download new firmware. Our product code is divided into two sections, a boot loader that resides at the start of flash, and an application that resides at 0x10000. If the boot loader detects a valid downloaded upgrade, it copies it from an unused area of flash to 0x10000 and erases the downloaded code. The boot loader is self-contained, and after verifying a valid application, jumps into a fixed vector table located at 0x10000. The application takes care of all its' initialization. Interrupt vectors are steered up to the same vector table at 0x10000 and handled in the application. The bootloader does not use any interrupts.
I had the system working originally by building one big program, with the boot loader and application code separated by linker configuration file commands. Unfortunately, the IAR linker does not allow me to reliably keep various parts of the code separated - for instance, the initialization code that should have been for the bootloader gets placed somewhat randomly in the application code, and therefore the vector from the bottom of flash points to the wrong location after we do a firmware upgrade.
I tried to fix this by going to two separate programs, and the IAR debugger disassembly window tells me I have succeeded in getting everything into its' proper place. Unfortunately, the debugger refuses to load the application code and run properly, telling me 'Warning: __vector_table symbol not found." The code runs directly into the fault IRQ handler and hangs.
I had previously loaded the bootloader section of the code into flash using the debugger, exited, and then loaded the application code with the debugger. The bootloader's vector table is still at the start of flash memory, and it appears proper in the disassembler window. The debugger evidently cannot figure out how to start the code correctly.
I tried running the code as a system, without the debugger, and it hangs up, so there's a bug in there for real. I need to get the system running under the IAR debugger to find and fix the problem.
Anyone had a similar situation and lived to tell of it?
Parents
Offline
ckuecker ckuecker
over 7 years ago
Note: This was originally posted on 6th January 2010 at
http://forums.arm.com
Got the linker squared away - but there's a problem in the IAR startup code. The code executes a pop in one of the initialization routines, and the resulting PC is garbage.
I've sent the zip file of the whole project to IAR - they are looking into the issue.
Chuck
Cancel
Up
0
Down
Reply
Cancel
Reply
Offline
ckuecker ckuecker
over 7 years ago
Note: This was originally posted on 6th January 2010 at
http://forums.arm.com
Got the linker squared away - but there's a problem in the IAR startup code. The code executes a pop in one of the initialization routines, and the resulting PC is garbage.
I've sent the zip file of the whole project to IAR - they are looking into the issue.
Chuck
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
DS52020.0 connection to Musca-A/B boards not working
0
Arm Development Studio
Musca-A
341
views
2
replies
Latest
9 hours ago
by
Daniel Oliveira
Suggested Answer
Positioning a function in a Position Independent Executable for ARMV8
0
1826
views
3
replies
Latest
8 days ago
by
Stephen Theobald
Answered
Link a pure binary file to image with scatter file
0
1787
views
3
replies
Latest
8 days ago
by
Ronan Synnott
Answered
Failed to read contents of Internal RAM L1-I_DATA in ARM DS
0
Arm Development Studio
Cache
Debug and Trace Services Layer (DTSL)
4455
views
23
replies
Latest
21 days ago
by
Boon Khai
Suggested Answer
DS-5 connect fail when cortex-r5 is in lock-step mode
0
4056
views
10
replies
Latest
28 days ago
by
Stuart Hirons
>
View all questions in Arm Development Studio forum