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

1 次查看(过去 30 天)
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?

采纳的回答

Sumit Ghosh
Sumit Ghosh 2024-2-7
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 个评论
Yang Renda
Yang Renda 2024-2-7
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 2024-2-7
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.

请先登录,再进行评论。

更多回答(0 个)

产品


版本

R2023b

Community Treasure Hunt

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

Start Hunting!

Translated by