Hi all,
we are using S32g274a, in which all the LIN cores are used as UART, we are also using interrupt forwarding for LIN cores to get interrupt whenever there is an rx data.Everything works perfectly with the debugger. but the issue we are facing is that when we flash the image into the external boot memory like qspi flash and boot from it, the code is stopped at the llce_firmware_load().
is there any way we can fix this issue?
S32G2 #LLCE
Solved! Go to Solution.
Hello @naveenkumar_muthusamy
As discussed in the support ticket, the LLCE problem was caused by a missing initialization of the LLCE module.
And also as discussed, this topic was solved.
Best regards,
Alejandro
Hi @alejandro_e ,
i have created a support and shared the files. and also RTD we are using is 3.2.0 and LLCE is 1.4.0.
in IVT tool and image_table only application bootloader is added. RAM_START_ADDRESS 0x34000000 RAM_ENTRY_ADDRESS 0x34207000.
we are exporting image after updating the above address and then exporting blob image.
Hi @alejandro_e ,
below is the current Linker file we are using in which you can see that the size of RAM is changed.
MEMORY
{
int_itcm : ORIGIN = 0x00000000, LENGTH = 0x00000000 /* 0KB - Not Supported */
int_dtcm : ORIGIN = 0x20000000, LENGTH = 0x00010000 /* 64K */
int_sram_shareable : ORIGIN = 0x22C00000, LENGTH = 0x00004000 /* 16KB */
/* int_sram : ORIGIN = 0x34000000, LENGTH = 0x00400000 */ /* 4MB */
/* int_sram_stack_c0 : ORIGIN = 0x34400000, LENGTH = 0x00002000 */ /* 8KB */
/* int_sram_stack_c1 : ORIGIN = 0x34402000, LENGTH = 0x00002000 */ /* 8KB */
/* int_sram_stack_c2 : ORIGIN = 0x34404000, LENGTH = 0x00002000 */ /* 8KB */
/* int_sram_no_cacheable : ORIGIN = 0x34500000, LENGTH = 0x00100000 */ /* 1MB, needs to include int_results */
/* ram_rsvd2 : ORIGIN = 0x34600000, LENGTH = 0 */ /* End of SRAM */
int_sram : ORIGIN = 0x34000000, LENGTH = 0x00200000
int_sram_stack_c0 : ORIGIN = 0x34200000, LENGTH = 0x00002000 /* 8KB */
int_sram_stack_c1 : ORIGIN = 0x34202000, LENGTH = 0x00002000 /* 8KB */
int_sram_stack_c2 : ORIGIN = 0x34204000, LENGTH = 0x00002000 /* 8KB */
int_sram_no_cacheable : ORIGIN = 0x34206000, LENGTH = 0x00100000 /* 1MB, needs to include int_results */
ram_rsvd2 : ORIGIN = 0x34800000, LENGTH = 0 /* End of SRAM */
LLCE_CAN_SHAREDMEMORY : ORIGIN = 0x43800000 LENGTH = 0x3C800
LLCE_LIN_SHAREDMEMORY : ORIGIN = 0x4383C800 LENGTH = 0xa0
LLCE_BOOT_END : ORIGIN = 0x4383C8A0 LENGTH = 0x50
LLCE_MEAS_SHAREDMEMORY : ORIGIN = 0x4384FFDF LENGTH = 0x20
}
for the above linker file, In IVT tool, we use the RAM_START_ADDRESS as 0x34000000 and RAM_ENTRY_ADDRESS in 0x34207000. for this we are atleast seeing some logs, LLCE is not working but atleast the we can confirm that QSPI boot is working, the above values are taken from the MAP file in the project.
also when we revert back to the older linker file which is like below,
MEMORY
{
int_itcm : ORIGIN = 0x00000000, LENGTH = 0x00000000 /* 0KB - Not Supported */
int_dtcm : ORIGIN = 0x20000000, LENGTH = 0x00010000 /* 64K */
int_sram_shareable : ORIGIN = 0x22C00000, LENGTH = 0x00004000 /* 16KB */
int_sram : ORIGIN = 0x34000000, LENGTH = 0x00400000 /* 4MB */
int_sram_stack_c0 : ORIGIN = 0x34400000, LENGTH = 0x00002000 /* 8KB */
int_sram_stack_c1 : ORIGIN = 0x34402000, LENGTH = 0x00002000 /* 8KB */
int_sram_stack_c2 : ORIGIN = 0x34404000, LENGTH = 0x00002000 /* 8KB */
int_sram_no_cacheable : ORIGIN = 0x34500000, LENGTH = 0x00100000 /* 1MB, needs to include int_results */
ram_rsvd2 : ORIGIN = 0x34600000, LENGTH = 0 /* End of SRAM */
/* int_sram : ORIGIN = 0x34000000, LENGTH = 0x00200000 */ /* 4MB */
/* int_sram_stack_c0 : ORIGIN = 0x34200000, LENGTH = 0x00002000 */ /* 8KB */
/* int_sram_stack_c1 : ORIGIN = 0x34202000, LENGTH = 0x00002000 /* 8KB */
/* int_sram_stack_c2 : ORIGIN = 0x34204000, LENGTH = 0x00002000 /* 8KB */
/* int_sram_no_cacheable : ORIGIN = 0x34206000, LENGTH = 0x00100000 /* 1MB, needs to include int_results */
/* ram_rsvd2 : ORIGIN = 0x34800000, LENGTH = 0 /* End of SRAM */
LLCE_CAN_SHAREDMEMORY : ORIGIN = 0x43800000 LENGTH = 0x3C800
LLCE_LIN_SHAREDMEMORY : ORIGIN = 0x4383C800 LENGTH = 0xa0
LLCE_BOOT_END : ORIGIN = 0x4383C8A0 LENGTH = 0x50
LLCE_MEAS_SHAREDMEMORY : ORIGIN = 0x4384FFDF LENGTH = 0x20
}
for the above the RAM_START_ADDRESS and RAM_ENTRY_ADDRESS as per Map file is 0x34000000 and 0x34501000, but when create blob image and try booting, we are not seeing any logs, is anything wrong i am doing,
can you help on this?
hello @naveenkumar_muthusamy,
thanks for the clarification on the RTD version and thanks for opening a ticket with the details. I will try to reproduce your problem with my board.
Please let me know in which channel you preferer to continue the discussion, here in the community or int the support ticket.
Best regards,
Alejandro
Hello @naveenkumar_muthusamy,
Can you provide more information about your setup?
Thanks in advance for the information.
Hi @alejandro_e ,
yes we are using the M7 core in our project and we are using custom board. we have never tried to boot from the QSPI, this is the first time we are doing this. we were using JTAG for our development purpose and LLCE was working smoothly in JTAG but when we try to boot from QSPI flash we are facing issues exactly in this function as i confiemed it by placing debug prints before calling the llce_firmware_load and after. as soon as llce_firmware_load is called, the code hangs or stops and nothing is executed after that.
we are using IVT tool in S32DS to create the blob image and we flash it using S32 flash tool., we have used lin_llce_example project.
we are using LLCE version 1.0.4 and RTD 4.0.0
Hello @naveenkumar_muthusamy,
Thanks a lot for the information.
Although it may not be the source of the problem, I recommend upgrading the LLCE version 1.0.5, which is the one tested with the RTD 4.0.0, as you can see in its release notes [Release Notes for LLCE, Version 1.0.5, 16 December 2022]:
About the problem:
can you share your IVT configuration?
did you follow any guide to create the IVT?
If possible, please share your project so I may have a better understanding of it, if you prefer you can open a support ticket so you can upload your files privately:
Thanks in advance for the information.
Hello @naveenkumar_muthusamy
As discussed in the support ticket, the LLCE problem was caused by a missing initialization of the LLCE module.
And also as discussed, this topic was solved.
Best regards,
Alejandro