SystemC 初始化步骤
来源:互联网 发布:mac osx10.12镜像下载 编辑:程序博客网 时间:2024/05/19 02:29
环境: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、utils/sc_report.cpp、utils/sc_utils_ids.cpp。
其余8个初始化点分别是:
1. kernel/sc_time.cpp, L355
const sc_time SC_ZERO_TIME;
2. communication/sc_interface.cpp, L78
sc_event sc_interface::m_never_notified;
// 此处会转而调用 kernel/sc_simcontext.cpp,L835:
// sc_get_curr_simcontext()
// 从而初始化全局的 sc_simcontext 对象,大事件!
3. kernel/sc_module.cpp,L136
const sc_bind_proxy SC_BIND_PROXY_NIL;
4. kernel/sc_cor_fiber.cpp,L49
static sc_cor_fiber main_cor;
// 此处与平台相关,如果是UNIX like平台,那么“Coroutine class implemented with
// QuickThreads.”;若是Win32平台,那么“Coroutine implementation with fibers.”
// 不过程序中的注释似乎写错了 :)
5. utils/sc_report_handler.cpp,L205
static HANDLER_GC_NAME gc;
6. kernel/sc_lambda.cpp,L59
sc_lambda
sc_lambda::dummy_lambda;
7. datatypes/bit/sc_logic.cpp,L154,初始化4个逻辑值常数
const sc_logic sc_logic_0( Log_0 );
const sc_logic sc_logic_1( Log_1 );
const sc_logic sc_logic_Z( Log_Z );
const sc_logic sc_logic_X( Log_X );
const sc_logic SC_LOGIC_0( Log_0 );
const sc_logic SC_LOGIC_1( Log_1 );
const sc_logic SC_LOGIC_Z( Log_Z );
const sc_logic SC_LOGIC_X( Log_X );
8. datatypes/fx/scfx_rep.cpp,L57
static scfx_pow10 pow10_fx;
以后,我将继续分析这些初始化到底做了些什么工作,重头戏当然是 sc_simcontext 对象的初始化。
- SystemC 初始化步骤
- SystemC 初始化步骤
- SystemC 初始化步骤
- SystemC 初始化步骤
- SystemC 初始化步骤
- SystemC 初始化步骤
- SystemC 初始化步骤
- SystemC 初始化步骤
- SystemC 初始化步骤
- SystemC 初始化步骤
- SystemC 初始化步骤
- SystemC 初始化步骤
- SystemC 初始化步骤
- SystemC 初始化步骤
- SystemC 初始化步骤
- SystemC 初始化步骤
- mfc 初始化步骤
- Intel 网卡初始化步骤.
- Windows 控件限制用户输入的基本法门(.NET 篇) 选择自 FlashElf 的 Blog
- 伟大架构师的秘密[转载]
- 局域网连通性常规检查方法
- vb.net怎么利用textbox修改数据库中的数据???
- 智能客户端体系结构与设计指南[转载]
- SystemC 初始化步骤
- 2004.11.01,Mon - 自荐信也写好了
- 十一月开始了
- 如何善用说话技巧[zz]
- [初学VB.NET]如何防止重复打开MDI子窗体
- 在文件夹添加菜单删除临时文件
- 系统级语言模式:SystemVerilog和SystemC
- 10句话让你轻松遨游职场
- c++中为什么会引入const