How to migrate S32K144_CANFD_bootloader universal bootloader project to S32DS for S32 Platform 3.4

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

How to migrate S32K144_CANFD_bootloader universal bootloader project to S32DS for S32 Platform 3.4

Jump to solution
374 Views
teccl
Contributor II

I am looking for a solution to flash an S32K144 MCU via CAN. I have seen that NXP provides a universal bootloader solution that works with UDS, and the Rappid bootloader solution.

The Rappid solution does not support the USB-to-CAN hardware that is available to me, so unfortunately it is not a viable option. The serial interface is also not an option; the MCU is installed on a custom PCB and does not have the correct hardware to facilitate this.

I have downloaded the universal bootloader projects and I can see that the S32K1xx examples were developed using S32DS for Arm. Based on this discussion (https://community.nxp.com/t5/S32K/OTA-using-UDS-over-the-CAN/td-p/1640549) it looks like it uses S32DS for Arm 2018.R1 and S32K1xx SDK RTM 2.0.0. However, I am currently using the S32DS for S32 Platform 3.4 IDE, would like to avoid using S32DS for Arm. I tried following the steps here (https://community.nxp.com/t5/S32-Design-Studio-Knowledge-Base/Video-Migrating-S32K1-projects-from-S3...) to migrate the project to be an S32DS for S32 Platform 3.4 project. However, the S32K144 project (S32K144_CANFD_bootloader) does not appear in the list (see screenshot below). I believe this may be because you can only migrate from RTM 3.0.x, while this project uses 2.0.0. (I have attached a second screenshot below to show the migration filter options that appear for me.)

teccl_0-1705422704101.png

teccl_1-1705422716503.png

Is there a version of the S32K144_CANFD_bootloader project that was developed using S32DS for S32 Platform? Or, is there a method that I can use to migrate it that I am missing? Perhaps if I install S32DS for Arm, I can update the SDK version to 3.0.x and then migrate it using the migration menu in S32DS for S32 Platform?

Tags (1)
0 Kudos
1 Solution
354 Views
lukaszadrapa
NXP TechSupport
NXP TechSupport

Hi @teccl 
there's a problem with compatibility between older versions of SDK, so there's no simple way how to migrate a project from 2.0.0 to 3.0.0. The only option is to migrate the project manually - in this case it can be migrated directly to the latest version.

There's one more option - we have this application note discussing CAN bootloader and A/B swap:
https://www.nxp.com/docs/en/application-note/AN12323.pdf
https://www.nxp.com/docs/en/application-note-software/AN12323SW.zip
Notice that no SDK is used in the examples. It should be a nice start point to develop own solution.
It was created in v2018.R1 too but because there's no SDK, it will be easy to import it to S32DS 3.4.

Regards,
Lukas

View solution in original post

0 Kudos
3 Replies
355 Views
lukaszadrapa
NXP TechSupport
NXP TechSupport

Hi @teccl 
there's a problem with compatibility between older versions of SDK, so there's no simple way how to migrate a project from 2.0.0 to 3.0.0. The only option is to migrate the project manually - in this case it can be migrated directly to the latest version.

There's one more option - we have this application note discussing CAN bootloader and A/B swap:
https://www.nxp.com/docs/en/application-note/AN12323.pdf
https://www.nxp.com/docs/en/application-note-software/AN12323SW.zip
Notice that no SDK is used in the examples. It should be a nice start point to develop own solution.
It was created in v2018.R1 too but because there's no SDK, it will be easy to import it to S32DS 3.4.

Regards,
Lukas

0 Kudos
323 Views
teccl
Contributor II

Hi @lukaszadrapa,

Thank you for your helpful response. I am thinking that the second option you mentioned of migrating the AN12323 software should work for me. Just had a quick follow up question regarding that.

Here is the project structure for the AN12323 bootloader project, created using S32DS for arm 2018.r1 as you mentioned:

teccl_1-1705682805646.png

 

And here is the structure for an example project (hello_world) created using S32DS 3.4):

teccl_2-1705682878115.png

 

I can see that the key linker/source/startup files are mostly the same. (At least, in name; I assume that the contents are the same too.) The only difference is that the S32DS 3.4 hello_world project is missing the flexnvm linker file.

So, to migrate the project, would I just need to create a new project in S32DS 3.4 (e.g., could base it off of the hello_world example), replace the src directory with the src directory from the AN12323 bootloader project, and copy the flexnvm linker file over as well? If so, are there any changes that I would need to make to the linker file to account for the IDE difference? And are there any other things that I need to do to complete the migration that I am missing?

Thank you for your help!

0 Kudos
272 Views
lukaszadrapa
NXP TechSupport
NXP TechSupport

I recommend to create new application project without SDK. The hello_world example uses SDK and it inserts unnecessary things:

lukaszadrapa_0-1706029392443.png

The bootloader is executed from FlexNVM. If you want to do the same, copy also the linker file and then you need to change the project settings to use this file. Change it here:

lukaszadrapa_1-1706029460073.png

Then copy the source files from src folder. The best way is to use drag&drop directly to S32DS to Project Explorer window.

Now I'm not sure about the headers in include folder. You can try if it is possible to compile the project or if something is missing...

Regards,

Lukas

 

 

0 Kudos