Hello,
I am developing CAN Bootloader for MPC57485G. There some issue.
bootloader:
app:
my jump code:
However, after __asm__("se_blrl"), the debug show as follow:
It shows "No source available for "0xfc0400" . Could anyone help me?
And,I add clean RAM before jump, It will show as follow:
Is uSDH IRQ? But I have disable IRQGlobal, and I never use uSDH.
已解决! 转到解答。
MSR is core register, it's not memory mapped. MSR register can be accessed using asm instructions mtmsr and mfmsr. For more details:
https://www.nxp.com/webapp/Download?colCode=E200Z4RM&location=null
https://www.nxp.com/webapp/Download?colCode=EREF_RM&location=null
https://www.nxp.com/docs/en/reference-manual/VLEPEM.pdf
I2C driver uses OSIF, you can find it in referenced components. It looks like configured PIT channel is still working. I2C_MasterDeinit() does not disable selected timer and INT_SYS_DisableIRQGlobal() clears MSR[EE] bit only. So, please check the OSIF/PIT. I guess that this could be the reason.
Regards,
Lukas
Hi,
it makes sense that you can't see source code of the application because only elf file containing debugging information for bootloader is loaded. Please follow this HOW TO article:
Also make sure that all interrupts are disabled before the jump (on all levels: MSR[EE], priority registers, local enable bits in peripherals) and it's also good practice to put everything back to default reset state. This can save a lot of headache.
Regards,
Lukas
And, what the address of MSR? I could not find it in RM.
I use I2C in mybootloader, if I read some data by I2C, then jump to userapp failed, otherwise it will success. And before jump, I call the I2C_MasterDeinit() and INT_SYS_DisableIRQGlobal(), what other things I need todo?
MSR is core register, it's not memory mapped. MSR register can be accessed using asm instructions mtmsr and mfmsr. For more details:
https://www.nxp.com/webapp/Download?colCode=E200Z4RM&location=null
https://www.nxp.com/webapp/Download?colCode=EREF_RM&location=null
https://www.nxp.com/docs/en/reference-manual/VLEPEM.pdf
I2C driver uses OSIF, you can find it in referenced components. It looks like configured PIT channel is still working. I2C_MasterDeinit() does not disable selected timer and INT_SYS_DisableIRQGlobal() clears MSR[EE] bit only. So, please check the OSIF/PIT. I guess that this could be the reason.
Regards,
Lukas