不要命的上科大

路漫漫其修远兮,吾将上下而求索

杨晓晖ID:funeryoung
21269次访问,排名5439(-2)好友4人,关注者4
教育,计算机,嵌入式系统
funeryoung的文章
原创 14 篇
翻译 0 篇
转载 16 篇
评论 2 篇
funeryoung的公告
   欢迎光临!这是一个记录我学习历程的地方。如果您能从中有所收获的话,那将是我最大的满足!
最近评论
vvukqr:WoW Gold
Yunfei:Thank you very much , that helps a lot~~
文章分类
收藏
    相册
    Linux系统
    Debian.USTC
    Linux Kernel Archives
    Linux操作系统分析课程
    uClinux
    VMware
    中国Linux公社
    计算机体系结构
    CA@WISC
    David A. Patterson
    Open SystemC Initiative
    嵌入式系统
    天目SkyEye
    嵌入式开发网
    嵌入式联盟
    友情链接
    吾家有儿的博客
    存档
    软件项目交易
    订阅我的博客
    XML聚合  FeedSky

    原创 SystemC学习笔记(2):SystemC开发环境设置收藏

    新一篇: [转帖]SkyEye硬件模拟平台,第一部分: SkyEye 介绍 | 旧一篇: [转帖]计算机专业究竟是冷还是热

    1.配置SystemC开发环境

        目前SystemC的开发工具有很多,但是实质上SystemC只是C++增加的一个类库,因此任何一个符合ANSI标准的C++ 编译工具都可以对SystemC程序进行编译链接从而生成可执行文件,而我们要做的则是如何把SystemC的头文件和库文件整合到你的C++开发环境中去。

        很多书籍和文章中都介绍了在Windows+Visual C++环境下配置SystemC。考虑到我对VC一窍不通,而且已经在虚拟机上配置好了Linux和gcc的开发环境,因此我选择在Linux下配置SystemC的开发环境。

        SystemC需要C++编译工具的支持,因此首先要在Linux环境中安装g++环境。使用“su”命令切换为root用户,然后使用“apt-get intall g++”就可以安装g++的最新版本到系统中来。

        从OSCI网站上下载最新版本的SystemC源程序压缩包,现在的最新版本是2.2.0,也有以前旧版本的下载。看到网上有的文章说SystemC的较新版本与有些Linux系统不兼容的问题,个人感觉应该不是SystemC的问题,而是配置方面的问题(不过没有做过实验啊,属于个人主观臆断,自己先汗一个……)。下载之前可能OSCI网站要求先注册一个用户,需要邮箱激活一下,不过过程还是很简单的,就不多解释了。

        把下载下来的SystemC源程序压缩包在用户主目录里使用tar命令解压缩:

            tar xvf systemc-2.2.0.tgz

    然后进入解压缩后生成的systemc-2.2.0文件夹,建立一个临时文件夹objdir(名字可以随便起,如tmp什么的也可以):

            cd systemc-2.2.0

            mkdir objdir

    然后进入这个临时文件夹,运行SystemC的配置程序来生成安装文件:

            cd objdir

            ../configure -prefix=/home/user/systemc

    prefix参数后面这个路径是你希望安装SystemC的目标路径,你也可以改为其他路径的。但是注意不要使用VMware和Windows共享的虚拟分区,我一开始就是安装在虚拟分区里面了,结果总是报错,说属性错误。

        等安装文件生成完毕后,回到上层目录,运行make程序就行安装就可以了:

            cd ..

            make

            make install

        如果一切顺利,在/home/user/systemc下,SystemC的一切文件就都安装好了。从理论上说,你编译链接SystemC源程序的环境已然就绪了。

    2.运行第一个SystemC程序

        我们的第一个SystemC程序来个最简单的Hello程序吧,源代码如下:

    //hello.h
    #ifndef _HELLO_H
    #define _HELLO_H
    #include 
    "systemc.h"
    SC_MODULE(hello)
    {
        SC_CTOR(hello)
    {
            cout
    <<"Hello, SystemC!"<<endl;
        }

    }

    #endif

    //main.cpp
    #include "hello.h"
    int sc_main(int i, char* a[]){
        hello h(
    "hello");
        
    return 0;
    }

    上面这段代码分别保存为hello.h和main.cpp。

        使用如下g++命令进行编译链接以生成可执行文件:

            g++ main.cpp -I/home/user/systemc/include -L/home/user/systemc/lib-linux -o hello -lsystemc

    这个命令参数比较多,说明如下:

        -I/home/user/systemc/include  告诉g++编译器去/home/user/systemc/include下去寻找所需的头文件即systemc.h

        -L/home/user/systemc/lib-linux  告诉ld连接器去/home/user/systemc/lib-linux下去寻找所需的库文件声明

        -o hello  标准的输出参数,生成的可执行文件名为hello

        -lsystemc  告诉ld连接器最终的库文件是libsystemc.a

        注意参数的顺序,貌似还不能搞错了,否则会报错的。

        如果g++命令执行ok,没报任何错误,就可以看到有个hello的可执行文件被生成了。输入“./hello”应该可以看到“Hellov,SystemC!”的输出信息。那么恭喜你,可以开始SystemC的探索之旅了!

        顺便说一句,如果你嫌每次输入这么长的g++命令很不爽的话,可以搞一个make文件模板,以后每次只需要替换一下模板中的文件关联定义,然后使用一个简单的“make”命令就可以搞定。

        那天在纪哥的帮助下搞定了这个SystemC开发环境,不过没有搞定这个make模板,先在这里向小纪致谢了。等make模板搞定一定发到博客上来给大家分享!

        本帖部分内容节选整理自《SystemC片上系统设计》一书,陈曦、徐宁仪编著,科学出版社,2003年。

    发表于 @ 2007年11月08日 19:30:00|评论(loading...)|编辑

    新一篇: [转帖]SkyEye硬件模拟平台,第一部分: SkyEye 介绍 | 旧一篇: [转帖]计算机专业究竟是冷还是热

    评论

    #Yunfei 发表于2008-02-02 08:03:38  IP: 168.122.82.*
    Thank you very much , that helps a lot~~
    发表评论  


    登录
    Csdn Blog version 3.1a
    Copyright © funeryoung