Episode Transcript
Available transcripts are automatically generated. Complete accuracy is not guaranteed.
Kyle Dando (00:06):
Welcome, everyone, to
the NXP EdgeVerse Techcast, where
you will learn about NXP Software,Tools and Enablement that supports
NXP processors and microcontrollers.
This is your host, Kyle Dando, andI'm here with my favorite co-host.
Bridgette Stone (00:22):
Ahh, you're
my favorite co-host too, Kyle.
This is Bridgette Stone.
Welcome, everyone.
And we're excited today to diveinto the world of Visual Studio
Code and how NXP is making iteven more powerful for developers.
To explore this, we are joined by CristianTepus, a software architect at NXP.
Kyle Dando (00:42):
Bridgette, our
listeners are really going to
enjoy hearing from Cristian.
Over the years at NXP, when I need tounderstand a complex topic about our
development tools, Cristian is usuallythat one person I can count on to break
it down in terms that I can understand.
So, Cristian, thanks forjoining the Techcast.
Can you share a little bitabout yourself to our listeners?
Cristian Tepus (01:04):
Hi, my name is Cristian.
I'm located in Romania.
I'm working on Bucharest NXP site.
My role is software architect onIDE technologies for MCUXpresso.
I have almost 20 years of experience inFreescale and in NXP on IDE Software Tools
for DSPs and networking and for the lasteight years on MCUs within MCUXpresso
(01:27):
ecosystem, enabling software developmentand debugging tools for NXP MCU devices
which are based on ARM Cortex-M cores.
Kyle Dando (01:37):
Cristian, can you confirm
or deny that you've worked on, let's
say, CodeWarrior, Kinetis Design Studio,LPCXpresso IDE, and now MCUXpresso IDE?
I bring this up because our listenersand customers, they live this stuff.
They've used these tools for years.
So having you as a guest is terrific.
And I think that your experience withthese tools shows that you have a never
(02:02):
ending goal to deliver that ultimatetool to our customers and deliver that
perfect experience for the customers.
Cristian Tepus (02:09):
Yes, Kyle.
I have spent lots of time on those tools.
The main focus of these IDE toolshave been to provide the user a full
development solution, starting fromgetting a software repository, creating
and managing projects, creating targetapplication, deploying it on a hardware
platform, using our debug probe solutions,or using partners like SEGGER or PEmicro.
(02:33):
Plus, a rich set of analysisand debugging utilities.
Bridgette Stone (02:37):
So, Cristian, Kyle
just rattled off a list of IDE tools
that NXP has provided over the years.
But today, we're here to talkabout what's new, the latest
advancement in NXP tool support.
That, of course, is the MCUXpressoextension for Visual Studio Code.
So, let's start with the basics.
What exactly is Visual StudioCode, and why has it become such
(02:57):
a popular choice for developers?
Cristian Tepus (02:59):
Visual Studio Code,
frequently shortened as VS Code.
Is a free, lightweight and powerfulsource code editor developed by Microsoft.
Even though it's defined as a codeeditor and is powerful on its own, it
is accompanied by VS Code Marketplace,which is actually an online store
for a huge number of extensions.
The extensions are produced either byMicrosoft or other vendors, or even
(03:24):
enthusiasts, developing plugins forextending its default features, or
adding new ones for compiling, debugging,data visualization, data manipulation.
Basically gaining in this way theability to be transformed in an
integrated development environment.
Bridgette Stone (03:40):
That's a solid rundown.
It's funny when you say lightweight.
I feel like that could be a bitmisleading because with the right
extensions, it could be a full blown IDE.
Would you say most embedded developersare using it as just an editor?
Cristian Tepus (03:53):
In fact, lightweight
is an attribute used to describe the
primary purpose of the VS Code design.
Just a code editor with some essentialfeatures like syntax highlighting
and code completion, plus somebasic debug support built in.
So the answer to yourquestion, I would say is yes.
You can use it as just an editor.
I've seen many people using it like this.
(04:16):
Still, for embedded developers, theintention is not to be used just.
for editing code, but to have it as asolid base for your customization needs.
And actually, this is the strongestargument in favor of VS Code.
You can set it up as an IDEfitting best your needs.
Not unnecessary featurescarried in classical IDEs.
(04:37):
No slowdown due to processesthat might never use.
After one year dealing with VS Codefor our customers, I would say that
it is most suitable for solution fornowadays software development kits.
Kyle Dando (04:52):
Thanks Cristian.
That is a great explanation of what VSCode provides developers, but now I want
to focus in on where NXP is introducedan extension available in VS Code and
I believe that the large community ofpeople contributing extensions is one
of the major strengths of VS Code.
So, focusing on NXP's contribution,how has the NXP MCUXpresso extension
(05:16):
enabled VS Code so that customerscan develop with their own devices?
Cristian Tepus (05:21):
Okay so at the middle of
last year, we launched MCUXpresso for VS
Code, which is our own provided extension.
It integrates native VS Code supportand some public extension with NXP
specific customization and tools.
This extension makes possible afull integration and development
for NXP software repositorieswith NXP hardware platforms.
(05:43):
MCUXpresso for VS Code aims tooffer a seamless development flow.
Retrieving an NXP repository,managing a project, offering
SDK examples as starting point.
From here, a user can build atarget application with various
customization and optimization, andthen deploy the image on the device.
Then you can start what most ofdevelopment application requires:
(06:06):
debugging, analyzing and optimizing.
Kyle Dando (06:08):
What a huge amount of
work you and the team have put in to
provide what I have found to be one ofthe best extensions that enables that
embedded development you just described.
And just for that, our listenersshould follow the links in the episode.
You guys can download or install theextension to evaluate it yourself.
Or, the easiest way I've foundis if you go to Google and put
(06:29):
in "MCUXpresso Extension", or"MCUXpresso VS Code", then you will
find a direct link to get started.
However, before they do that,Cristian, let's talk about the
other VS Code features that improvethat embedded software development
process that the team's done.
Cristian Tepus (06:46):
VS Code platform
comes with a lot of native support
for helping users in modern embeddedsoftware development processes.
I will mention some relevant ones.
First, the support for Git and GitHub,providing an easier integration
with customer repositories.
And here, keep in mind that allNXP MCU based software repositories
are provided using GitHub.
(07:07):
MCUXpresso SDK, Zephyr and Matter.
Also, integration with terminal utilityis useful for setting up various
environments or allowing users that arepreferring command line style of working.
This is something that Ioften hear from our customers.
VS Code allows tocustomize its environment.
Either it is about the editor layoutand settings or about the way the
(07:29):
extension are set and this throughits so called Profiles functionality.
This provides the option ofhaving multiple profiles for
different needs or even sharinga profile with some other users.
An important infrastructure support.
Different extension addressingembedded developer needs.
One example is C/C++ extension, offeringsyntax highlight and IntelliSense
(07:53):
for code completion and navigation.
Another one.
Flexibility of build systems allowsVS Code the ability to integrate with
CMake, which is basically the foundationfor NXP MCU software repositories.
Also part of the development process.
Interoperability with GDBservers stands as primary support
(08:13):
for debugger capabilities.
This is either about NXP proprietarysoftware debug probe, called
Link Server, or it is about thepartners like SEGGER and PEmicro.
Bridgette Stone (08:26):
Thanks, Cristian.
We have an understanding that VS codehas a ton of built in features that
make it great for embedded development.
You touched on things likegit integration, debugging
support and build flexibility.
Beyond those features, why do you thinkVS Code has gained so much traction,
especially in the embedded space?
What is it about this platformthat makes it stand out?
Cristian Tepus (08:48):
VS Code became very
popular due to highly flexibility
to configure and execution speed andfinally a large library of extensions.
It is generally considered asbeing much more modern and having
a more user friendly interface.
Also, more and more competitorsand embedded software developers
are contributing to theVS Code extension library.
(09:11):
And I would mentionanother important aspect.
Complexity.
Today's NXP based software repositories,and here I'm referring to MCUXpresso
SDK, Matter, and Zephyr, are requiringvery complex development environment.
A lot of collateral tools, complex buildsystem, and complex device architecture.
Also, as previously mentioned, Gitbecoming the defacto distribution
(09:33):
channel for software kits, andthis being native in VS Code.
On top, CI/CD, enabled with Gitand GitHub, makes it very popular.
VS Code also provides a powerful remotedevelopment extension pack with support
for Secure Shell, Containers, WindowsSubsystem for Linux and DevTunnels.
This simplifies the developmentwhen using shared resources.
(09:54):
This involving both codeand hardware devices.
Another nice feature for collaborativework is Visual Studio Live Share.
Facilitating developers real timeediting and debugging and can use the
same session with a secure connection.
This is beneficial for testingenvironments, CI/CD and remote teams.
And finally, mentioning IntelliSense,a very powerful code completion tool,
(10:19):
and even more, Copilot, being the AIintegrated solution to provide the
next level in the coding app support.
Kyle Dando (10:27):
Thanks, Cristian.
That's great.
As a user of VS Code, I have seenthe power of all of those features.
And again, I encourage ourlisteners to give it a shot.
It loads very quickly, and thenyou get these benefits right away.
But, Cristian NXP has been wellknown for our support tools.
So not only our IDE, but thesupporting tools around that.
(10:50):
Can you talk about how doesMCUXpresso development tools work
within the new VS Code extension?
And how has NXP made iteasier for developers to get
started with these tools?
Cristian Tepus (11:01):
Indeed, MCUXpresso
ecosystem contains a suite
of software tools needed forvarious setups and scenarios.
Beside the IDE itself, this alsoincludes configuration tools,
secure provisioning tools, GUIGuider, FreeMASTER, and LinkServer.
One big step in the delivery model,compared with our old IDEs, and
also addressing complex ecosystemdependencies, is the integration
(11:24):
with MCUXpresso Installer.
MCUXpresso Installer is a newapplication in our ecosystem.
Intended to provide all necessarytools and software dependencies for
MCUXpresso SDK, Zephyr, or Matter.
Our VS Code extension actually interactswith MCUXpresso Installer, offering the
ability to hide the complex environment,and this is done under a simple option
(11:48):
like automatically install everything.
Part of this installation is the suiteof tools from MCUXpresso ecosystem.
Either if the user chooses toinstall all or having a custom setup.
The other part is the extensive set oftools for the infrastructure you need.
And here I'm referring to Git,Python, Compiler, Ninja, CMake,
(12:10):
Toolchains, and many more.
Also, software debug probesis part of the installation.
Additionally, the extension adds alayer of integration of these tools.
And I'll give you a few examples.
Ability to operate on projectconfiguration or source code and this
is done using MCUXpresso ConfigurationTool; or Device Tree Compiler and Kconfig
(12:33):
in Zephyr context; or managing containerimage for complex application like in
the case of RT-1180 or i.MX95 deviceswhich are using secure provisioning
tool; and finally interacting withLinkServer standalone tool for
debugging our NXP debugger probes.
Kyle Dando (12:52):
Okay, so once the user
has taken advantage of this MCUXpresso
Installer that you just described,they should be ready to go to use the
tools that you mentioned in detail.
But how easy is it for them touse these tools within a project?
Has NXP made it easier for thedeveloper to launch the Config Tool
or maybe change a Kconfig value?
(13:13):
How has NXP made that maybe easierand more intuitive for the customer?
Cristian Tepus (13:17):
Our extension has
project menus that launch the NXP
config tools, so developer can quicklyaccess, for instance, pin settings
or review and change clock settings.
In the case of KConfig, NXP has integrateda popular KConfig GUI menu option.
It helps present to the user all ofthe configuration values available to
customize a project in their workspace.
Bridgette Stone (13:39):
That's fantastic.
It sounds like the team is reallyfocused on making these tools as
accessible and intuitive as possible.
So developers can spend lesstime navigating menus and more
time building great applications.
Now on to our last question,and let's make it personal.
You've worked on so manyaspects of this extension.
What's one feature that youfeel especially proud of?
(14:01):
And for a little behind thescenes insight, was there a
particularly tricky problem yourteam had to solve along the way?
Something that now that it's fixedmakes a huge difference for developers?
Cristian Tepus (14:13):
In the first version
of VS Code extension we provided
last year, we made an experimentwhich proven to be a successful
one and is now part of our product.
This consisted in supporting an existingEclipse IDE feature into VS Code,
studying several aspects (14:28):
difficulty
to port; the performance difference
between Eclipse and VS Code; andthe design capabilities of VS Code.
For people not being aware, EclipseIDE was the technology we used
in our previous version of IDEs.
And this is about ImageInfo,an utility used to statically
analyze a build artifact.
(14:48):
That means analyzing the memory sections,symbols, footprint of the application,
plus static function call graph, providingcall depth, code recursion, static stack
consumption, top memory consumption.
And this proven to be a reliablefeature inside VS Code, as is a very
intensive computational utility.
It works pretty well under it'stype script implementation.
(15:11):
Keep in mind that Eclipse IDE has Java.
While we integrated with ZephyrRTOS, this feature gained on
VS Code additional improvement.
The ability to display file basedhierarchical memory footprint,
similar on what Zephyr doesthrough west memory report option.
The advantage of having or workingwith this feature is that the user can
(15:32):
analyze any type of build artifact,an object, a library, an executable,
providing in this way general or detailedoverview of the application content.
This helps the user to determinehighest device consumption offenders.
So on the end, helping the userto determine where to operate in
order to optimize the application.
Bridgette Stone (15:52):
Wait a second.
You're saying this tool actually helpsdevelopers become better surgeons when
it comes to optimizing their code?
That's pretty incredible.
Can you break that down for us?
What kinds of issues can ithelp identify and fix during
the quote unquote operation?
Cristian Tepus (16:07):
Yes, on a big
application, iteratively adding code,
day-by-day, long periods of time,performance issues typically accumulate.
Not a single function call ornot a single stack usage always
counts, but when these accumulate incomplex execution trees, they tend
to cause big performance trouble.
And here, image info helps showing treeof calls or stack usages that contribute
(16:31):
most to the memory footprint degradation.
A simple click on a node fromthis tree will open the code where
these weaknesses are located.
I would finally say, in suchcases, cut before crack might
be a good encouragement.
Kyle Dando (16:47):
Wow, what a great
deep dive into the world of Visual
Studio Code you gave us, Cristian.
And it really does show how NXPis making it even more powerful
for our embedded developers.
Bridgette Stone (16:57):
Absolutely.
Today we explored how VS Code hasbecome a go-to platform for developers,
thanks to its flexibility, extensiveextension library, And built in tools
for modern software development.
Kyle Dando (17:11):
And of course, we learned
all about the MCUXpresso extension
for VS Code and how it brings NXP'ssoftware ecosystem into the mix.
It makes it much easier to develop,debug, and optimize applications
for NXP microcontrollers.
Bridgette Stone (17:27):
We also talked about the
MCUXpresso Installer, which simplifies
setting up the development environmentand how tools like ImageInfo are helping
developers make smarter optimizations.
Kyle Dando (17:39):
So Cristian, you gave
us a great behind the scenes look
at how these tools were builtand why they matter to people.
So thanks again for taking that time.
Bridgette Stone (17:46):
Thank you Cristian
Cristian Tepus (17:48):
Thank you, thanks
for giving me this opportunity today
Bridgette Stone (17:51):
And if you're as
excited as we are, be sure to check out
the links in the episode description todownload the MCUXpresso extension for
VS Code and try it out for yourself.
Kyle Dando (18:02):
That's it for this
episode of the NXP EdgeVerse Techcast.
Thanks everyone for tuning in and we'llcatch you next time in the EdgeVerse.