What is best development workflow for this setup?

Hi,
I’m new to this forum. And Toradex is new for me too. We want to start a project for which we are searching for a suitable platform. We think the Verdin IMX8M-PLUS module is perfect for it. We want to start with one of the development kits of Toradex. But it is not clear to us how to do the development for this.

We want to develop a 3D audio sound system for a simulator cabin. A block diagram would look like this:


We will add a custom board that uses all the different peripherals on the M-core side.

The question is how does the software development workflow would look like for this setup?

A-cores:

  • Does Torizon run on the A-cores including a GUI?
  • Can we run Visual Studio Code on this to develop the code for the A-cores?
  • Or is it more handy to develop remotely with a host (Visual Studio Code?)?
  • If so, is there a (video) tutorial how to set this up for a Windows host?
  • Does Torizon support multiple USB cameras? (we just need to grab frames and process them ourselves)

M-core:

  • I assume we will need MCUXpresso for this.
  • Is bare-metal programming possible or do we need at least FreeRTOS?
  • Will this use the USB port or JTAG port to connect to MCUXpresso?
  • How can we make the peripherals accessable from the M-core (and not from the A-cores)?

Hi @simmania !

Welcome to the Toradex Community! :tada:

Thanks for sharing a bit about your project. It makes it easier to understand where you are getting into :smile:

I will first try to go through your “direct” questions:

Yes. On TorizonCore (the Linux Distro developed by Toradex for our modules that is part of the Torizon Ecosystem) your application is meant to run inside a container.
These references are interesting here (maybe you found these links already):

I can’t say no here. If you manage to put VS Code in a container, you will have it running in your module.
What I can tell you is that this is not recommended! Like any embedded systems development, you should have the development tooling in a computer (your workstation), develop on it and deploy/test also with remote debugging on the target.

The Torizon IDE extension for VS Code is meant for that. The following links are good references:

If the cameras you need to use have already drivers available in the Linux Kernel version we use on TorizonCore, and we have them enabled on the image, it should just work. You can check that yourself by following what we have here in the introduction section of the Building External Kernel Modules With Torizon | Toradex Developer Center article

Exactly :+1:

Both are possible because of MCUXpresso :wink:

Just to be clear here, you won’t use MCUXpresso to connect JTAG or USB. JTAG connection you are going to use during debug with gdb.

Here is where I need to summon @hfranco.tx , who can help us a lot on Cortex-M topic :slight_smile:
@hfranco.tx , if you have more information on @simmania’s previous question, please share :slight_smile:

Now, going into your more open question:

For applications running on TorizonCore, you can use the Torizon IDE extension (shared above), which allows you to start from some of the templates that we have for some programming languages. The extension accelerates your development as it containerizes your application, deploys to the target, and also has remote debugging for the templates available. For Cortex-M, you will use MCUXpresso, as you guessed already, and @hfranco.tx can give you more details if you need them.

Thanks a lot. It took some time for me to study all new stuff.

So Torizon with containers and the Visual Studo Code (on the host) with the Toradex extension seem to be the way to go for the development of the software for the A-cores.

But some thing is still not clear to me:

I did some development on a Jetson board with has also some A-cores on which you will have to run some Linux OS.
In that case I did run Visual Studio Code on the target itself and did all software development that way. I understand that is not the preferred way for the Toradex boards.

On the Jetson board we used OpenCV. We downloaded int from github on the Jetson board and compiled it to a library. That library then is used in the application (Visual Studio Code).
How would this work on a Toradex board with containers?

hello @simmania ,
I would suggest to have a look a this thread and the links on it.

Best regards,
Josep

Hello @simmania ,
Do you have any news on this issue?

Best regards,
Josep