Xgate debugging - software error interrupt MC9s12xdp512 - cross post

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Xgate debugging - software error interrupt MC9s12xdp512 - cross post

Jump to solution
817 Views
nhtshot
Contributor II

I'm cross-posting this since I'm not sure which board is correct.

 

I'm having the dreaded software error interrupt on some xgate code. I'm using the MC9s12XDP512 part and codewarrior with all the newest stuff applied.

 

I've managed to assembly step it to the JAL that's throwing the exception.

 

E089d0 LDL R6, #235

E089d2 ORH R6, #128

E089d4 JAL R6

 

At this point, R6 = 80EB which is an odd number.

 

I know what function this is jumping to, but I haven't any clue how I'm supposed to fix this.

 

Why is the compiler putting a function on an odd boundary? Or am I completely missing something here?

 

Should I have some additional options in the compiler settings or some pragmas in that file?

 

I've tried #pragma options align=2 with no success.

 

Labels (1)
Tags (1)
0 Kudos
1 Solution
327 Views
CompilerGuru
NXP Employee
NXP Employee

Sounds like a ALIGN directive is missing in the prm file.

Is 80EB the start of a XGATE function (check the map file)?

Make sure the segment which contains 80EB has a ALIGN directive, here's a snippet out of a wizard generated prm file:

 

RAM_F8        = READ_WRITE  0xF81100 TO 0xF81FFF ALIGN 2[1:1];

 

Daniel

 

View solution in original post

0 Kudos
1 Reply
328 Views
CompilerGuru
NXP Employee
NXP Employee

Sounds like a ALIGN directive is missing in the prm file.

Is 80EB the start of a XGATE function (check the map file)?

Make sure the segment which contains 80EB has a ALIGN directive, here's a snippet out of a wizard generated prm file:

 

RAM_F8        = READ_WRITE  0xF81100 TO 0xF81FFF ALIGN 2[1:1];

 

Daniel

 

0 Kudos