芯路恒电子技术论坛

 找回密码
 立即注册
热搜: 合集
查看: 5042|回复: 0

【SOPC易错点解析】hello_world和hello_world_small模版工程差别

[复制链接]
  • TA的每日心情
    慵懒
    2021-2-24 10:16
  • 423

    主题

    782

    帖子

    1万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    15854
    QQ
    发表于 2019-1-3 12:01:01 | 显示全部楼层 |阅读模式
            用户在创建最简单的应用工程时,一般可以通过创建模版工程,并在模版工程上进行修改来得到自己的设计,这种方法速度快,而且能够实现设置好各种编译和库参数,不用用户再自行指定,非常的方便。创建工程时有两个最常用的工程模版:hello_world和hello_world_small,如图1所示。
            Hello_world模版包含了非常全面的底层支持库,而且关闭了程序编译时候的优化选项。这些底层库能够非常方便的实现各种操作,但是,也因为包含了这么多库,导致生成的程序占用存储空间很大,一般使用FPGA片上RAM做NIOS内存的时候,是装不下这么大的程序的。因此使用该模版一般需要使用SDRAM或者DDR SDRAM作为内存时方可。

    20.png
    图1 使用模版工程快速创建应用工程

            Hello_world_small模版精简了很多底层支持库,仅包含了一些必须,而且是轻量级的库。而且打开了程序编译时候的优化选项。该使用该模版工程,编译生成的程序占用存储很小,一般使用FPGA片上RAM做NIOS内存的时候,需要使用该模版创建工程。当然该模版创建的工程也可用于使用SDRAM等外部存储器作为内存的系统。不过受限于该模版提供的各种库的性能,一般不适合做各种全功能,高性能的应用。而且使用该模版工程时,设计者需要尤其关心程序设计时的潜在被优化可能,例如使用如下程序实现延时就会达不到效果:
    void DelayNs(alt_u32  i)
    {
             while(i--)
                       ;
    }
    而使用下述方式,即可实现相应功能,即使用
    void DelayNs(alt_u32  n)
    {
    volatile alt_u32  i=n;
             while(i--)
                       ;
    }
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|小黑屋|Archiver|芯路恒电子技术论坛 |鄂ICP备2021003648号

    GMT+8, 2024-4-24 16:14 , Processed in 0.143458 second(s), 34 queries .

    Powered by Discuz! X3.4

    © 2001-2017 Comsenz Inc. Template By 【未来科技】【 www.wekei.cn 】

    快速回复 返回顶部 返回列表