MCUXpresso 11.4.x introduces a regression for SDK Integration

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

MCUXpresso 11.4.x introduces a regression for SDK Integration

2,207 Views
Hat
Contributor II

On MCUXpresso 11.3.x it was possible to create new projects there were very minimal and only the packages that are necessary.

Here are my requirements:

  1. Create new project with no board
  2. Do not include any debugconsole sourcecode (I use my own debuggers J-Link or TRACE32)
  3. Do not include any NXP development board dependencies or NXP development board driver source codes.

 

MCUXpresso IDE 11.3.x

The Project Wizard

Hat_0-1634027594658.png

board.h file

Hat_2-1634027827240.png

 

MCUXpresso IDE 11.4.x

The Project Wizard. See that I have chosen "No board selected". And notice all of the additional components that are included.

Hat_3-1634027972215.png

When I try to clean out the components, the following is the best I can do. The SDK Wizard does not allow the remaining components to be turned off.

However after cleaning the components I get the following error.

Hat_4-1634028197512.png

After creating the project, the generated source code is the one needed to run the NXP development board (FRDMK32L2B in this case, have tested it with EVK-MIMXRT1064 and is similar) .

board.h file

Hat_5-1634028383451.pngHat_6-1634028392376.png

Am I missing to do a step to indicate to the SDK Wizard not to include these board specific dependencies?

If this is the designed behaviour, the I would suggest to seriously rethink it, and atleast provide an option to generate projects with minimal code and no NXP development board specific dependencies (including debugconsole).

Thanks

0 Kudos
6 Replies

718 Views
youngSheldon
Contributor II

I totally agree with HAT. Documentation is poor. While I understand NXP's point of view since it is probably too difficult to change the software architecture now, I don't think it is hard to add a proper description in the SDK Wisard to highlight the importance of a component or a real description of the component itself.

It amazes me the fact that xip_driver has the description XIP Device Driver and there is absolutely no reference in the documentation about it, just to give an example. It would be really nice to update these descriptions with something more meaningful, add a link to the documentation in that list and flag things like "critical software component".

p.s. It is also amazing that NXP's internal company policy focuses on quality and customer satisfaction but they don't even bother to reply to messages like HAT's for a year nor improve documentation. This is a pity, because their MCUs are great but user experience is so frustrating sometimes.

 

youngSheldon_0-1698560117491.png

 

let it flow
0 Kudos

1,993 Views
Hat
Contributor II

For most of our clients, it’s less complicated if their new projects have the essential drivers and components already included.

It may be so. But the way to solve this is to provide good documentation on how to properly setup an environment, explain what the essential drivers are. At this stage this is quite lacking. For example, for the i.MX RT line of processors, there is no clear place where it is mentioned that you need to include the "xip_board" and "xip_device" drivers from the SDK. For a beginner, having these information documented somewhere is far better than hiding it away in an implementation of your new project generator.

Plus, removing unnecessary code is usually a less demanding process than adding parts.

This is categorically not true. Adding components is active. The person adding the components can keep track of what drivers and components were added, and later remove them. On the other hand, if all of the drivers are automatically added, a developer would never be able to work it backwards, as they don't know if they would break some dependency. This is because the developer has NOT actively included the components, and hence is not aware of the components that are absolutely necessary.

In my view this is totally backwards, and is a serious regression that effectively makes this current version unusable in any professional environment. The correct way to help beginner users, is with proper documentation, or perhaps a wizard that lets them choose in an interactive way. This shouldn't be achieved by breaking the only way to create a new project using the SDKs.

I will take the time to consult internally but, for the time being, there might not be much of an alternative other than removing the code elements you don’t wish to include.

Has there been any updates?

Perhaps you could also select a board on the SDK project wizard and select the “Empty board files” option when configuring the project options

This issue is severe. There is no way to not include them. Even if I select "Empty board files", the boards files are the same as for the EVK version. Again I cannot stress this enough, this generation tool works totally against expected behaviour.

or create the project with the 11.3.x version and then importing it to 11.4.x

This is actually worse.

When opening a project (that was working under MCUXpresso 11.3.x), in MCUXpresso 11.4.x, and trying to add a new SDK Component, the Wizard complains about the debugconsole dependencies and forces you to add them back in.

However, this is what we are currently doing, as we know the dependencies it forces us to include; and will have to continue doing so until this serious regression is reverted.

Sorry for the inconvenience this may cause. Once again, I will investigate on the reasoning of this change and keep you informed.

@EdwinHz Do you have updates on this?

1,960 Views
lpcxpresso_supp
NXP Employee
NXP Employee

Hi,

The change that caused the different behavior between 11.3.1 and 11.4.0 described here is mentioned in the (11.4.0) release notes as:

* Fixed: [NPW] Device project template is not correctly referred when using NPW to create a project with "selected device without board".

Some background first. The IDE’s New Project wizard is designed to be data driven by the SDK’s content. Accordingly, an SDK should be able to specify what components should be included in the newly created project. For “device projects”, like the one here, IDE looks for a “project template” (which is equivalent to a typical SDK component but it has the only purpose of a resource container for a "new project template") for that particular device and adds it to the project. This component may have additional dependencies and so adds multiple files to the final project. This “project template” component existed before 11.4 release too, but because of the above issue, it was not correctly identified.

Some things that we plan to improve:

  • Display the above “project template” in the IDE (in NPW) and allow the user to disable it when creating a new project
  • Reduce the number of dependencies specified by the “project template” and, by doing so, reduce the number of files added to the project

Regards,

MCUXpresso IDE Support

0 Kudos

1,909 Views
Hat
Contributor II

I was going through the SDK files.

There seems to be two project_template folders in the SDK.

Hat_0-1646152994263.png

Fixed: [NPW] Device project template is not correctly referred when using NPW to create a project with "selected device without board".

In version 11.3.x the behaviour is:

"Create project with board selected" => choose SDK/boards/evkbimxrt1050/project_template/

"Select device without board" => choose SDK/devices/MIMXRT1052/project_template/

In version 11.4.x the behaviour is:

"Create project with board selected" => choose SDK/boards/evkbimxrt1050/project_template/

"Select device without board" => choose SDK/boards/evkbimxrt1050/project_template/

If the above are true, then the change introduced in version 11.4.x is a bug and is wrong. The "devices/project_template" is not used even when "selected device without board". The "boards/project_template" is used for both "Create project with board selected" and "Select device without board".

Please revert this change.

0 Kudos

1,850 Views
lpcxpresso_supp
NXP Employee
NXP Employee

Hi,

We performed the same scenario like you on 11.4.1 b6260 , using SDK RT1050 and creating device, default board and empty board projects.

- device project drags devices\MIMXRT1052\project_template\* files - as expected

- (default) board project drags boards\evkmimxrt1050\project_template\* files - as expected

- empty board project creates IDE's own source files - as intended/expected

So all scenarios are producing the same results as 11.3.1 - also as expected.

Regards,

MCUXpresso IDE Support

0 Kudos

2,187 Views
EdwinHz
NXP TechSupport
NXP TechSupport

For most of our clients, it’s less complicated if their new projects have the essential drivers and components already included. Plus, removing unnecessary code is usually a less demanding process than adding parts. This is what made me believe that these changes were purposeful, intended to ease the development process of the majority of our clients. However, I wasn’t able to find any documentation than backed this reasoning or any mention of these changes in the Release Notes, which makes me wonder a bit whether this really is an intended change for MCUXpresso 11.4.x.

I will take the time to consult internally but, for the time being, there might not be much of an alternative other than removing the code elements you don’t wish to include. Perhaps you could also select a board on the SDK project wizard and select the “Empty board files” option when configuring the project options, or create the project with the 11.3.x version and then importing it to 11.4.x, although I’m aware there are not viable alternatives or solutions for your troubles.

Sorry for the inconvenience this may cause. Once again, I will investigate on the reasoning of this change and keep you informed.

 

Best regards,

Edwin.

0 Kudos