Managing builds with S32DS?

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

Managing builds with S32DS?

1,573 Views
gearhead1107
Contributor IV

I'm at the point where I have 3 independent S32DS projects:

  • Boot Record
  • Boot-loader 
  • Firmware

Thanks to this thread, not to mention stanish and BlackNight's help, I can build "Firmware" and have it pull in binaries for the other two projects.

However, there are a great deal of things that are duplicated among the 3 projects (Transport Layer code, for example), and when I go from a 100 pin dev board to a 64 pin production part, I have to change Processor Expert settings on 3 projects, etc. etc.

What I would love is to have a "master" project where it has a build setting for "DEV", "Production", "Firmware Only", etc. 

What's the best way to do that? Create an S32DS project with the shared stuff, and link those files in the 3 other projects? How can I get to where things like changing GPIO mapping, etc. is as simple as going into *one* project, applying a board configuration, and building it?

Thank you!! Looking forward to see what others are doing for this scenario

5 Replies

1,159 Views
BlackNight
NXP Employee
NXP Employee

Hi Andrew,

there are many, many different ways to organize sources and projects.

What I usually do for such a scenario:

  1. Having an eclipse project for each project (boot, firmware, ...)
  2. Organizing the 'common' files inside a folder (not inside the project, outside the project)
  3. using linked files and folders (see Link to Files and Folders in Eclipse | MCU on Eclipse ) using relative paths to the files in 2)
  4. Having in each project a 'Platform.h' with configuration macros which are used to configure the common parts as necessary

That approach served me very well for many small and as well complex projects.

I hope this helps,

Erich

1,159 Views
gearhead1107
Contributor IV

Thanks, Erich - that's the route I started going down.. with some issues.. but I think the biggest question I had was how to keep component configurations in Processor Expert consistent. 

One thought that came to mind after sleeping on it would be to have 1 "master" Processor Expert project, and 3 basic projects (no SDK, etc.) for Boot, firmware, etc. I could then link in the generated code (as well as common code files) from the master project, while the sub projects only actually have a handful of critical c files for that program.

Does that sound logical? I figure that's the best way to apply board configuration -> compile -> upload all from one place.. but you guys have done this more than I have 

PS, when you say "outside the project", are we talking about just a folder in the file system?

0 Kudos

1,159 Views
raresvasile
NXP Employee
NXP Employee

Hi Andrew,

There is the option to use a common ProcessorExpert file between all the three projects.

First you need to backup the ProcessorExpert.pe files from the two of the three projects and create a link in the projects to the ProcessorExpert.pe from the third one(See link above on how). Afterwards you can modify the PE settings and all three project component configurations will be synchronized.

In order to achieve the 'build settings' which you described in the original post, you can add Generator Configurations(see Configurations with Processor Expert | MCU on Eclipse).

Best regards,

Rares

1,159 Views
gearhead1107
Contributor IV

raresvasile‌, I implemented your suggestion of backup/ remove the .pe files from each dependent project, and created a linked .pe file to the master project. Unfortunately, when building components it will update the master project (even though I'm in the dependent project), and not the dependent projects' files.

My brilliant (ha) idea was to link in the "SDK" and "Generated_Code" paths from the master project, and delete the .pe file from each dependent project. Unfortunately since linked folders still need to be manually added to the include path it turns out every time I make a change to the master config, I have to add the proper include path each and every time.

The next thing I'm going to try is leaving all 3 as PE projects, and just importing a board configuration when generated by the master. Way more manual of a process than I wanted, but is easier than manually adding paths.

Is there a better way that I'm missing?

0 Kudos

1,159 Views
gearhead1107
Contributor IV

Thanks, Rares - sounds like I'm on the right path.

Now I just need to figure out why my linked files aren't compiling and I should be off to the races

0 Kudos