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
IP Products
Processors
Jump...
Cancel
Processors
Classic processors forum
ARM1136 - Not Jumping to ISR problem
Blogs
Forums
Videos & Files
Help
Jump...
Cancel
New
State
Accepted Answer
+1
person also asked this
people also asked this
Replies
3 replies
Subscribers
2 subscribers
Views
2572 views
Users
0 members are here
arm1136
U-Boot
Arm11
Interrupt
Related
ARM1136 - Not Jumping to ISR problem
Offline
NikhilWipro NikhilWipro
over 7 years ago
Note: This was originally posted on 6th January 2009 at
http://forums.arm.com
Hi,
I am working on ARM1136JF-S Core. I need to implement handling of the interrupts (GPT interrupt) in u-boot bootloader which is not generally done.
For this I followed the following steps
1) mask I/F Bit in cpsr register to enable the IRQ.
2) Set VE bit ( bit 24 ) to 0 in the CP15 register - for fixed vector
3) Set V bit (bit 13) to 0 to set the address range 0x00000000-0x0000001C
I have called my ISR "IRQ_Handler" also in the appropriate place. The below snippet demonstrates how I am doing the same.
.globl _start
_start: b reset
ldr pc, _undefined_instruction
ldr pc, _software_interrupt
ldr pc, _prefetch_abort
ldr pc, _data_abort
ldr pc, _not_used
ldr pc, _irq
ldr pc, _fiq
_undefined_instruction: .word undefined_instruction
_software_interrupt: .word software_interrupt
_prefetch_abort: .word prefetch_abort
_data_abort: .word data_abort
_not_used: .word not_used
_irq: .word irq
_fiq: .word fiq
irq:
get_irq_stack
irq_save_user_regs
bl IRQ_Handler
irq_restore_user_regs
With the above snippet and register setting and after enabling the interrupt, I am able to get the interrupt but my board goes to hang state. May be the control is not jumping to the appropriate location after getting the interrupts.
Please let me know if I am missing on something. Would really appreciate some pointers on this.
Thanks in Advance.
-Nikhil
Top replies
Offline
Jacob Bramley
over 7 years ago
+1
verified
Note: This was originally posted on 6th January 2009 at http://forums.arm.com 1) mask I/F Bit in cpsr register to enable the IRQ. Just to confirm: You need to clear the I bit. The F bit is irrelevant...
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
Not Answered
Platform Security Architecture (PSA) and Azure Sphere
0
Platform Security Architecture (PSA)
azure
Internet of Things (IoT)
748
views
0
replies
Started
8 months ago
by
techguyz
Answered
Provision to get out of BKPT instruction
+1
4649
views
5
replies
Latest
8 months ago
by
LULIA
Answered
How to specify virtual Address for pl011 uart in linux kernel
0
APB Peripherals
Arm11
PrimeCell UART (PL011)
Interrupt
12412
views
10
replies
Latest
10 months ago
by
Brayden
Not Answered
Needs explanation of an assembly snippet
0
1573
views
1
reply
Latest
over 1 year ago
by
42Bastian Schick
Not Answered
2515 CAN controller with rpi3
0
1656
views
0
replies
Started
over 1 year ago
by
Tejadeep
<
>
View all questions in Classic processors forum