Error while connecting to realtime target

2 ビュー (過去 30 日間)
Miroslav
Miroslav 2013 年 6 月 4 日
Hi, I made level 2 s-function in C language, which sends some data via serial port. I compiled it with Microsoft Visual C++ 2008 SP1 compiler. When I add this s-function to simulink model and start the simulation in normal mode, everything is ok, but, when I want to connect with realtime target (after building with rtwin.tlc), I get this error message:
Error occurred while executing External Mode MEX-file 'rtwinext': Error loading real-time executable: undefined symbol "_InterlockedExchangeAdd"
I have not any idea, what this error means. Could anybody help me? Thanks.
  2 件のコメント
Kaustubha Govind
Kaustubha Govind 2013 年 6 月 4 日
Do you think the failure is specific to your S-function, or do you see it even without your S-function. For example, you could try the example model 'rtvdp' and see if you can execute that in external mode successfully.
Miroslav
Miroslav 2013 年 6 月 5 日
Yes I can use external mode. I supose thet problem is with using windows.h in my s-function. Simulink can't use windows API function in external mode.

サインインしてコメントする。

採用された回答

Jan Houska
Jan Houska 2013 年 6 月 5 日
For serial port communication, please use Packet Output or Stream Output blocks, depending on your data format. You are correct that you cannot use Windows API in real-time code.
  1 件のコメント
Miroslav
Miroslav 2013 年 6 月 5 日
I know Stream and packet input block, but i need read data from input buffer asynchronous. I need execute some functions after every single byte is received. I supposed that s-function could help me. I could to use Stream input block placed in function call subsystem, which is call with hardware interrupt (byte receive). I have not any idea how hardware interrupt work in simulink external mode. Is it possible?

サインインしてコメントする。

その他の回答 (1 件)

Jan Houska
Jan Houska 2013 年 6 月 6 日
If you want to react to individual received bytes, it is probably best to sample (poll) the input fast enough. I'd recommend the Packet Input block with a sample rate of, say, 0.5ms, and using its Data Ready output to trigger any necessary action.

カテゴリ

Help Center および File ExchangeSimulink Coder についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by