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개)

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

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.
I tried using the code fread from the link you posted. But because I have matlab 2009 I do not have coder installed. Is there another way to do this using the functions in matlab 2009?

댓글을 달려면 로그인하십시오.

카테고리

도움말 센터File Exchange에서 MATLAB Coder에 대해 자세히 알아보기

질문:

2013년 6월 27일

Community Treasure Hunt

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

Start Hunting!

Translated by