This is the mail archive of the
ecos-discuss@sources.redhat.com
mailing list for the eCos project.
why jump from hal_cpu_merge_int to hal_null_call() ?
- From: Zi Zhou <zzhou at 3upsystems dot com>
- To: ecos-discuss at sources dot redhat dot com
- Date: Fri, 09 May 2003 15:33:41 -0700
- Subject: [ECOS] why jump from hal_cpu_merge_int to hal_null_call() ?
- Organization: 3upsystems
- References: <3E77E13A.AF0154CE@3upsystems.com> <3E8E1953.24199633@3upsystems.com>
Hi,
I am trying to port eCos on to a demo board which uses MPC8245. So I use
csb281 as a baseline. I am able to bring up Redboot with minimum hardware
initialized (e.g. UART). I am trying to load the simple eCos 'hello world'
application but failed. I have a VisualClick EJTAG to help debugging, and I
found that when execute to hal_cpu_merge_int macro, right after the first
'sync', the program will jump to hal_null_call(), which is at address 0x0.
The MSR register is 0x3032 and r0 is 0xb032 right after 'rlwimi' instruction,
and MSR becomes 0 after jumping to hal_null_call(). Since I am not an
expert of eCos or PowerPC, I will really need some info about what could go
wrong to cause this scenorio. Could someone give me some suggestion?
I've attached the source code of hal_cpu_merge_int for easy reference.
.macro hal_cpu_merge_int
mfmsr r0
rlwimi r0, \sr, 0,16,16
sync
mtmsr r0
sync
.endm
Thanks
Zi
--
Before posting, please read the FAQ: http://sources.redhat.com/fom/ecos
and search the list archive: http://sources.redhat.com/ml/ecos-discuss