How can I define a variable in a bus as pointer ?
13 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Antoine Bostem
am 5 Apr. 2018
Kommentiert: bilal erol
am 11 Apr. 2020
Hello,
I'm in some trouble with my variable definition. I have a structure that I would like to define with the Bus Editor. My structure is like :
typedef struct
{
uint16 a1;
uint16 *a2;
uint32 b1;
uint32 b2;
} structstruct;
I don't know how to define the a2 variable who is a pointer.
Could someone help me ?
Antoine
0 Kommentare
Akzeptierte Antwort
Mark McBroom
am 29 Apr. 2018
Bearbeitet: Mark McBroom
am 29 Apr. 2018
Hi Antoine,
The idea is to use a data type that Simulink supports in place of the pointer. Since pointers are 64 bits long, use a Simulink data type that is 64 bits long. Then, in the external C code, convert the datatype used by Simulink to/form a unit16*. The best approach is to use a 64-bit integer in Simulink, since most C compilers will allow you to cast an integer to a pointer. But this requires the Fixed Point Toolbox. If you have a license for this, the set the data type of the variable to be ufix(64). If you don't have a Fixed Point license, then you can select a built-in Simulink data type that is 64 bits long, for example double or uint32[2]. C compilers won't let you cast these variables to/from a pointer, so you will need to create a temporary variable in your external code that is of type uint16* and then memcpy between the variable in the Simulink bus and the local uint16* variable.
0 Kommentare
Weitere Antworten (1)
Mark McBroom
am 7 Apr. 2018
This is not possible in Simulink. Simulink does not support pointers. So that raises the question, why do you need a pointer in the structure? This question most often comes up when people are interfacing with external C code. If this is the case, there are some tricks you can play in Simulink that usually involve defining the type to instead by a 64-bit integer using the fixed point blockset.
2 Kommentare
bilal erol
am 11 Apr. 2020
have you solved your problem which is related with using pointer in simulink?
Siehe auch
Kategorien
Mehr zu Simulink Coder finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!