How to use real time workshop to convert the matlab functions' fread" and "fwrite" into c code?
이전 댓글 표시
Hi,
I was wondering if there was a way to convert the Matlab functions fread and fwrite to C code using Real time Workshop or Matlab Coder. I saw in the "Matlab Coder" user guide that fread and fwrite are not supported functions that can be converted to C code. I was wondering if there was a way around this. Is there another function that does the same thing as fread and fwrite that is supported by Real Time Workshop/Matlab Coder. My bigger goal is to run Matlab in real time. I realize I can only do this by first converting my Matlab code to C code. However,I cannot convert the Matlab functions fread and fwrite to C using Real Time Workshop. (FYI: My matlab code is reading and writing to the COM port.)
Thanks in advance, David
답변 (1개)
Walter Roberson
2013년 6월 27일
I have never used those, but my understanding is that you can change the call names (e.g, fread to FREAD), and coder.extrinsic('FREAD'), and then you supply minor interface code along the lines of
#include <stdio.h>
int FREAD(.... prototype here ....) {
return fread(....)
}
except that you would need to do whatever is necessary to deal with an array (e.g., passing in a buffer and buffer size, reading the data to the buffer, returning the fread() status.)
댓글 수: 3
Ryan Livingston
2013년 7월 2일
Actually, coder.extrinsic(<fcn_name>) causes calls to the function 'fcn_name' to be made by calling out to MATLAB via MEX. Therefore, it will introduce calls to MATLAB via the MEX API. Such calls must be able to be eliminated before generating standalone C code for generating an EXE, DLL or LIB.
You can use
coder.ceval
to call C functions from your MATLAB code. There is an example of calling C's FREAD here:
which uses coder.ceval() to do so.
David
2013년 7월 2일
Ryan Livingston
2013년 7월 3일
I assume the issue was with the coder.* functions, correct? You should be able to use the eml.* versions of the same functions as of R2009a:
카테고리
도움말 센터 및 File Exchange에서 MATLAB Coder에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!