可重入代码是一个可重用的编程程序,多个程序可以同时使用。操作系统和其他系统软件,使用多线程处理并发事件使用可重入的代码。在并发环境中,多个线程或进程可以同时尝试读和写静态数据。因此,共享代码,使用持久或静态数据是很困难的。可重入代码不包含静态数据。调用程序保持其状态变量并将其传递到函数。因此,任何数量的线程或进程可以共享一份可重入的例行公事。
你想要时生成可重入的代码:
在多线程环境中部署代码。
使用一个算法与持久数据属于不同的进程或线程。
编译代码,使用函数变量太大,以适应在堆栈上。
如果你不指定可重入的代码,MATLAB®编码器™生成的代码使用静态分配的内存:
函数变量太大,以适应在堆栈上
全局变量
持续的变量
如果生成的代码使用静态内存分配这些变量,你不能部署环境中生成的代码,需要可重入的代码。如果你不能调整静态内存分配大小,生成的代码会导致静态内存大小溢出。
当你生成可重入的代码,MATLAB编码器创建输入数据结构:
函数变量太大,以适应在堆栈上
持续的变量
全局变量
然后您可以动态地分配内存这些输入结构。使用动态内存分配意味着您可以部署的代码可重入环境。
要部署生成的代码,您必须创建一个主要
功能:
包含头文件primary_function_name
. h。
全局内存分配结构分配内存primary_function_name
StackData
。
如果该算法使用持久或全局数据,全球结构分配内存primary_function_name
PersistentData
。
调用这些函数:
primary_function_name
_initialize
。
primary_function_name
。
primary_function_name
_terminate
。
当你用MATLAB函数转换为C / c++库函数或C / c++执行,MATLAB编码器生成两个管家功能。调用这些辅助函数的代码中调用生成的C / c++函数。有关更多信息,请参见生成部署代码。