How do I save MATLAB data for a C/C++ based embedded system?

1 view (last 30 days)
Say that I have used MATLAB coder to create multiple C codes that I shall apply on an STM32.
The C codes take a lot of parameters as input, and I do not want to write data as header files, nor do I want to write a program to do that, not if there are existing solutions, or better alternatives.
The application does not call for the need of a single board computer, and STM32 cannot store nor read .mat files (I think).
What are my options?

Accepted Answer

Sumit Ghosh
Sumit Ghosh on 7 Feb 2024
You can achieve this using coder.read and coder.write.
In short, coder.write(fileName,data) stores the argument data in a file with the name fileName.coderdata in your current directory. You can use this function in your host machine to sae the paraleters in a file.
dataFromFile = coder.read(fileName) reads from the fileName.coderdata storage file and returns the data stored within the file. You can use this function in your MATLAB® code for which you want to generate C/C++ code. The generated code performs the data read at run time.
  2 Comments
Yang Renda
Yang Renda on 7 Feb 2024
The thing is, this still creates a separate data file that the host program has to read.
But I am unsure if this data can be compiled to the embedded system, embedded systems are not computers, I cannot just copy the data in, it has to be compiled in.
I will test this and see if it works.
In principle, if the data is just expressed in the form of an array in a c source file as a const, I know that will be compiled inside. So something like this will surely work.
Yang Renda
Yang Renda on 7 Feb 2024
coder.read reads data at run time, which also needs a directory, which means it is meant for some some form of operating system, but an embedded system does not have that. I am highly uncertain whether this can work.

Sign in to comment.

More Answers (0)

Products


Release

R2023b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!