Program Cortex-M7 in Variscite VAR-SOM-IMX8M Plus DevBoard

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

Program Cortex-M7 in Variscite VAR-SOM-IMX8M Plus DevBoard

2,615 Views
gcorreiab
Contributor I

I bought a Variscite VAR-SOM-MX8M Plus devBoard which has a NXP iMX8M Plus SoM with:

  • 4x ARM Cortex-A53 (flashed the Boot2QT image and already running a QT app to perform an UI on a 7'' LVDS display and perform network stuff like BLE or MQTT over WIFI)
  • 1x ARM Cortex-M7 (I plan to run a freeRTOS or Zephyr RTOS application to control all the real-time stuff in my project, like reading I2C sensors, controlling leds via PWM...)

So my big question is: how to program this ARM Cortex-M7 microcontroller? Should I use MCUXpresso for Visual Studio Code and a J-LINK Plus Segger to program the microcontroller directly? I'm not sure, but I think I have the SWD/JTAG pins exposed on the devBoard so I can use a J-LINK Plus Segger to program the microcontroller. Any tips on where to start?

In the end I intend to have the real-time stuff running on the microcontroller and sending callbacks to the ARM Cortex A-53 or something similar to update the 7'' display and send same data via BLE to a mobile app. 

0 Kudos
Reply
6 Replies

2,217 Views
Selso
Contributor II

So I have given a try to the MCUXPresso for VSCode and I must say this is a great improvement for the MCU development, at least we have a debug view and tools dependency are managed by the MCUXPresso installer (a CLI mode would have been good for CI installation).

I had to fix the launch.json script to get the debug working but no big deal.

Still we have to create project from example, and can't configure clocks or the peripheral (UART speed for example), but many things are exposed by the plugin tool.

 

0 Kudos
Reply

2,179 Views
pierluigi_p
Contributor V

@Selso@gcorreiab,

as Variscite customers, you may want to login to Variscite customer portal.

We will be glad to assist you step by step while using VAR-SOM-MX8M-PLUS.

Thanks

Best Regards

Pier

2,254 Views
Selso
Contributor II

Hello.

 

Same situations as you.

The official answer for MCU development on i.MX8 is the "Getting Started with MCUXpresso
SDK i.MX 8M Devices".

About it's content is based on : 

  • download SDK : official git repo, Online SDK builder, Keil Open-CMSIS-Pack
  • use IAR or use gcc+cmake
  • for debugging purpose they limit to CLI with gdb running with Segger JLink.

When you want to start a new development on the MCU the official answer is : please start from one of our examples. Which is not acceptable for me.

Notice that MCU Xpresso IDE is mentionned as a toolchain, which not the MCU Xpresso SDK.

More specifically to the variscite board, there is this webinar from variscite which wrap this minimal environment with VSCode + third party plugins (wiki available). At least you get an IDE for the debugger and Intellisense.

Note that in their demo they start linux, but uboot startup is sufficient.

 

MCUXpresso IDE : it is impossible to get the MCU SDK from the embbeded tool. I've seen that the SDK package downloaded from the builder had files that should allow importing for the MCU Xpresso but that fails.

So I've tried importing their git repository and from it I can configure and generated a project for the i.MX8ML. I got to resolve some issue in the code (missing files, wrong file included) but that is working great, even the debugger. Indeed I got the same experience as STMCube, and probably for other NXP MCU (not tested but that is the purpose i guess). I reported it the the github team, but the answer is that is is not expected to be working and will not.

I don't understand why ? That is killing developpment for the i.MX8.

As you may have seen the VSCode X is not supporting officially the i.MX8 MCU neither. Looks like a replacement for MUXPresso IDE which is based on Eclipse.

On another hand, the SDK Builder is providing the option both both gcc/Xcode (canno

Selso_0-1698241274539.png

 

I will give it a try but I don't believe that will work.

I think I will use the config tool (not assessed) to create a new project hoping I can have the same option I could when using the IDE, and configure VSCode as recommended by varscite. Still I would avoit to use the SDK from variscite, I don't understand why they provide a copie.

 

Myself

0 Kudos
Reply

2,247 Views
gcorreiab
Contributor I

Hi

What about changing device trees to use Cortex M7 without conflicting with Application Core?

I know that to compile the device tree files in order to create the device-tree binary (.dtb) to use in U-BOOT I should use the dtc (device tree compiler) command:

dtc -O dtb -o name-of-device-tree-binary-file.dtb name-of-device-tree-source-file.dts

Are the following steps right?

1. Create my own .dts file including all important device tree files such as:

- imx8mp.dtsi
- imx8mp-var-som.dsti
- imx8mp-var-som-symphony.dts (maybe this one is enough since this file alreadyincludes all the .dtsi files above)

2. Use label references to change what I need to change

3. Use the .dtc command to compile and generate the .dtb file to later be used by UBOOT.

Best regards

0 Kudos
Reply

2,218 Views
Selso
Contributor II

I suppose you are taking this dtsi from the NXP config tool ?

I'm not sure this is my next step. Today I'm still working with the cortex-A stopped at bootloader stage. That is sufficient if you don't need to interact with the application core.

I've seen a make command somehere for this process in variscite wiki. If possible I'll share when I find this.

 

0 Kudos
Reply

2,564 Views
Alejandro_Salas
NXP TechSupport
NXP TechSupport

Hello,

Really we do not support the Variscite boards, but you can check this post in Toradex about how to load binaries into Cortex M.

About of MCUXpresso for VS Code, there is compatible only for projects of MCUXpresso IDE (Not compatible with IMX processors).

Also you can check the IAR IDE. In that IDE you can program directly trough J-Link. 

 

Best regards.

0 Kudos
Reply