The MPC5744P goes to IVOR1 vector when the function called in the MPC5744P sample program.

cancel
Showing results for 
Search instead for 
Did you mean: 

The MPC5744P goes to IVOR1 vector when the function called in the MPC5744P sample program.

259 Views
Contributor II

Now, I am studying the MPC5744P programing with DEVKIT-MPC5744P.
And I have a problem that MPC5744P goes to the IVOR1 vector when the other function call this function in the sample program.
I don't understand why it is occuured ?
Does someone teach me how to solve this problem ?

<< The below is conditions when the problem is occured >>
1. Board: DEVKIT-MPC5744P ( Rev.E )
2. Sample program : LINFlexD_UART_MPC5744P

                                Note: This sample program is for Flash.

                                          And I was changed from LINFlexD_1(Rev.B) to LINFlexD_0( for Rev.E).
3. Build configuration : Debug_RAM
4. Design Environment : S32 Design Studio for Power Archtecture

NXP_community1.png

NXP_community2.png

5 Replies

73 Views
NXP Employee
NXP Employee

Hi,

I assume you are using example project "LINFlexD_UART_MPC5744P"

Have you done any modifications to this project?

I've just tested this example project with DEVKIT board and it works just fine.

Could you test "Debug" build target which is FLASH based? Do you observe the same problem?

I'd guess this happens due to uninitialized LMEM  (ECC error) but I checked the example startup code and it looks ok to me:

startup.s

;# Base Address of the Local SRAM
e_lis r5, __LOCAL_DMEM_BASE_ADDR@h
e_or2i r5, __LOCAL_DMEM_BASE_ADDR@l

;# Fill Local SRAM with writes of 32GPRs
ldmem_loop:
e_stmw r0,0(r5) # Write all 32 registers to SRAM
e_addi r5,r5,128 # Increment the RAM pointer to next 128bytes
e_bdnz ldmem_loop # Loop for all of SRAM

Could you attach your project if it does not help?

Thanks.

Stan

0 Kudos

73 Views
Contributor II

Thank you for your reply.

Today, I found that MPC5744P did not go to the IVOR1 vector under the Debug_RAM mode when I moved the "#endif" line in startup.S in shown the below figure.
(Note: I tried it the Debug mode requested from you. And I posted its result already. )
Is this way correct? or  wrong ?
And, are there the concerning points ?
Please teach me them.
Modified_Startup_endif.png

73 Views
NXP Employee
NXP Employee

Hi, 

sorry for delay. I can reproduce your issue. Thanks a lot for report. I find out that PE Micro .mac script doesn't init RAM for stack. As workaround you can use your part of code. Or you can use modified .mac script from attachment and left the original startup code. In normal way this init should be done by debug probe.  

PE Micro .mac script is located (with default install path) in c:\NXP\S32DS_Power_v2.1\eclipse\plugins\com.pemicro.debug.gdbjtag.ppc_1.9.9.201907200403\win32\gdi\P&E\ folder. You can replace existing one with attached file. the only difference is this additional row at the end of script: 

meminit.l 0x50800000 0x5080FFFF

Jiri

73 Views
Contributor II

Very thank you for your reply and confirmation.

0 Kudos

73 Views
Contributor II
Thank you for your reply.
I tried the followings(Please see No.1 & 2).
And I checked the Base address of the Local SRAM in startup.S file and could not find the diffrence in it(Please see No.3).
Now, I want to debug the MPC5744P software under the Debug_RAM mode because I am a beginner.
( I think that my stress and the stress for MPC5744P's flash-memory are less than 'Under Debug/Flash mode'. )
I attached my workspace at the below.(Note 2)
Could you teach me how to avoid the ECC error  if it is correct ?

1. Under the Debug mode(It is not the Debug_RAM mode),
   I have confirmed that MPC5744P did not go to IVOR1 vector such as the below Figure-1.
2. Under the Flash mode,
   I have confirmed that MPC5744P operated correctly according to the software.
   ( Note : I can not confirm it on step by step because it is under Flash mode. )
3. I checked a part of the startup.S file such as below Figure-2.(Note 1)
   I could not find the difference because I did not modified it. ( It was created at Example program only.)
   (Note 1) I searched in the community, and found the below descriptions,
            a) https://community.nxp.com/message/979006?commentID=979006#comment-979006
               There is no workaround code in here.
               I could not find the difference although there was the descriptio about startup.S.

   (Note 2) My modified parts are shown in the below figures.(See the Filgure-3-1 & 3-2)
                And, for the up-loading the my project files, I have made LINFlexD_UART_MPC5744P project again, today.
Figure-1: Under the Debug mode( Not Debug_RAM mode )
NXP_community3.png
Figure-2: a part of startup.S file ( I did not modify this file. It was created from the Example only. )
NXP_community4_startup_s.png
Figure-3-1: My modified parts for Rev-E board.
NXP_community3b.png
Figure-3-2: My modified part for Rev-E board
NXP_community3c.png
0 Kudos