环境:VC toolkit 2003 + SystemC 2.0.1
为了找出SystemC定义了哪些全局变量/静态变量,我在crt/src/crt0dat.c的
void _initterm(_PVFV * pfbegin, _PVFV * pfend)
函数中设下断点,at Line 598:
if ( *pfbegin != NULL )
(**pfbegin)(); // 此处中断
然后单步跟踪程序,就得到了SystemC的大致初始化顺序:(C++标准不保证各转译单元(translation unit)之间全局变量的初始化顺序,因此这里列出的可看作某种典型情况)
据我观察,SystemC定义了15处全局/静态变量,其中7处形如:
static int forty_two = initialize();
散见于communication/sc_communication_ids.cpp、datatypes/bit/sc_bit_ids.cpp、datatypes/fx/sc_fx_ids.cpp、datatypes/int/sc_int_ids.cpp、kernel/sc_kernel_ids.cpp、ut

本文详细介绍了在VC toolkit 2003 + SystemC 2.0.1环境下,通过设置断点和单步跟踪,得出的SystemC初始化顺序。SystemC全局变量/静态变量分布在多个文件中,包括communication/sc_communication_ids.cpp、datatypes/bit/sc_bit_ids.cpp等。初始化过程中,重点关注了sc_simcontext对象的创建,这是SystemC模拟上下文的关键部分。
最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



