Hello NXP,
I'm using MPC5743R-144, and I want to use the RAppID BL by serial communication.
MPC5746R_20MHz.rbf is only for MPC5743R-176 with PF[0] and PF[1] pins(LINFlex2),but MPC5743R-144 does not have these pins.
Can you give me a .rbf for MPC5743R-144 with PD[13] and PD[14] pins(LINFlex0)?In my design,I have used PD[13] and PD[14] for UART.
Thanks!
Hello ypchen,
Attached is an updated RBF file. It supports UART 0 (LinflexD_0) via PD13-PD14 pins. Please try it and let us know if it works well for you.
Best Regards,
Mike
Hello,Mike Doidge
I have tried the .srec file , it supports UART0 via PD13-PD14 pins . The read/erase/program function works well,but the .srec file has three bugs through debugging.
1. Boot header configuration is wrong, it should be 0x005A_0008,which defined CPU1 enabled ( the MPC5743R only has CPU1).CPU1 Reset Vector is also wrong.So it cannot run directly after reset.
2. RAppID BL help file <<Version 1.6.7.35 Release Notes>> shows that the MPC5746R RBF bootloader occupies two 16K memory blocks ( 0x00F9_C000 and 0x00FA_0000),but this .srec file occupies three blocks ( 0x00F9_C000 、0x00FA_8000 and 0x00FA_C000 )
3. The .srec can not jump to APP after reset or APP code programed. APP code’s boot header information is according to <<Version 1.6.7.35 Release Notes>>,and it can run with MPC5746R_20MHz.rbf .
Hello ypchen,
Please try the attached RBF file. We have updated it to correct the issues you reported. Let us know if this works well for you.
Best Regards,
Mike
Hello,Mike Doidge
I have tried the latest files, but unfortunately, the second and third concerns still exist.
The APP code’s boot header information is shown in the figure below,which is according to <<Version 1.6.7.35 Release Notes>>. The APP can run with MPC5746R_20MHz.rbf ,so the APP code will be certainly right.
Hello ypchen,
I believe you have the RCHW at the wrong location. It should instead be located in the range of 0x00FA0000 - 0x00FA3FFF. Please see the attached updated documentation.
Best Regards,
Mike
Hello ypchen,
We further reviewed your implementation and found some more issues.
1) The value of RCHW for MPC57xx is 0x005A0000 not 0x0000005A ->Therefore the BL won’t found the second app. See below:
2) The RCHW address must be located within 0x00FA0000 - 0x00FA3FFF not from 0x1000000. See below:
BOOT-LOADER | RCHW + Boot | 0x00F9C000 - 0x00F9FFFF |
Boot-loader application | 0x00FA8000 - 0x00FAFFFF | |
APPLICATION SOURCE | RCHW + Boot | 0x00FA0000 - 0x00FA3FFF |
User application | 0x01000000 - 0x0137FFFF |
I suggest some configurations as below:
For flashrchw.c:
const volatile uint32_t APPKEY __attribute__ ((section(".appkey"))) = 0x55AA55AA;
const uint32_t __attribute__ ((section(".rchw"))) RCHW [] = {
RCHW_VAL,
/* cpu0_reset_vector */ (uint32_t)_start,
/* delay */ 0x0000000,
/* application key */ (uint32_t)&APPKEY
};
For linker file:
MEMORY
{
flash_rchw : org = 0x00FA0000, len = 0x20
m_text : org = 0x1000000, len = 1792K
m_data : org = 0x40000000, len = 128K
local_imem : org = 0x51000000, len = 16K
local_dmem : org = 0x51800000, len = 32K
}
.text :
{
*(.text.startup)
*(.text)
*(.text.*)
*(.appkey)
KEEP (*(.init))
KEEP (*(.fini))
. = ALIGN(16);
} > m_text
Please let us know if you are able to correct the issues and succeed in using the RAppID BL.
Best Regards,
Mike
Hello Mike Doidge
I corrected the boot header information of my APP , and the RAppID BL can work well . After downloading, the APP can run immediately.
The boot header information like this:
But, there are still two little concerns .
1. I set delay time 3 seconds in the RCHW [] (delay value is 0x002DC6C0), actually, when powerup reset, the APP start running after about 10 seconds .
2. The read function doesn't work. See below,after uploading 3%, RAppID BL stops and then the timeout is reported.
Hi ypchen,
To address your concerns, we have the following information for you:
1) The delay time set inside your application does not have any effect on the MPC574xR devices at this time. We hope to be able to add this in the future. I realize this may be confusing as this delay value is existing in the file. It is there more to maintain consistency with the support for the other devices. For example, in the MPC5777C, the delay time does have an effect. However, we have managed to squeeze out some delays within the RBF file we provide to you previously. Please try the new attached 'MPC5746R_S32DS_UART0_CAN0.srec'. Let us know if it results in improved delay time and is satisfactory for you.
2) On the C55FMC flash memory, the blocks used by your application are not consecutive so when RAppID BL is reading your application, it will to read some unauthorized access area. In this case, the BL will stop reading process and return an out of range message but RappID BL does not show this message.
To read memory for your application, please as workaround do the following(refer to attached images for detail):
+ Read RCHW area: startAddress: 0xFA0000 with size < 0x4000 (16K for this block)
+ Read m_text area: startAddress: 0x1000000 with size < 0x0380000 (all of 256k block)
Hope it helps!
Mike
Hello Mike Doidge
Based on the information you provided, I tried the latest .srec file,and it works well . The delay time is about 3 seconds .
Thank you very much.
Hello ypchen,
We are investigating the 3 concerns you reported and will provide an update once we have some result.
Best Regards,
Mike