I found a workaround this problem. Basically, I commented the lines of the code in rtwtypes.h which were producing the problem. Personally, I don't like this solution too much as I would prefer something more automatized. However, I leave this here in case someone else face the same problem.
Conflict bewteen rtwtypes and tmwtypes
5 views (last 30 days)
Show older comments
I'm testing the embedded coder app in Simulink. I have generated C code for a simple adder which takes two numbers and add them. I succesfully generated the C code for this simulink model, and now I'm trying to make it work in the S-function builder. When I build the code, the following errors appears:
line 1: rtwtypes.h:77:16: error: conflicting types for 'byte_T' typedef char_T byte_T;
line 2: tmwtypes.h:580:16: note: previous declaration of 'byte_T' was here typedef BYTE_T byte_T;
I understand that "byte_T" is being defined in two different header files. However, I don't know how to avoid this. The answer given in this question suggest to include the following lines of code:
#if defined(MATLAB_MEX_FILE)
#include "tmwtypes.h"
#include "simstruc_types.h"
#else
#include "rtwtypes.h"
#endif
However, this lines of code are already included in the wrapper generated by the S-function builder. How could I avoid this clash between rtwtypes.h and tmwtypes.h?
3 Comments
Abhaya
on 23 Dec 2024
Hi Felipe, Could you share the C file and wrapper generated by S- function builder?
Abhaya
on 24 Dec 2024
Edited: Abhaya
on 24 Dec 2024
Hi Felipe,
I tried to reproduce the model, and here are the steps I followed:
- I added two 'Constant' blocks as inputs and a 'Display' block as output.
- I included an 'S-function Builder' block in the model.
- I implemented the addition functionality in the 'S-function Builder' in the 'Editor' tab. Here’s the code I used:
void delS_Outputs_wrapper(const real_T *u0,
const real_T *u1,
real_T *y0)
{
/* Output_BEGIN */
/* This sample sets the output equal to the input */
y0[0]=u0[0]+u1[0];
/* Output_END */
}

The model works fine on my end.
I suspect that the error you're encountering may be related to the inclusion of the rtwtypes.h file. In the 'Editor' tab of the S-function Builder, if you have included 'rtwtypes.h' file, this could be causing the issue.
Answers (0)
See Also
Categories
Find more on Simulink Coder in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!