CCS build options中Run-Time Autoinitialization和Load-Time Initialization

本文探讨了在CCS的构建选项中,链接器的Run-Time Autoinitialization和Load-Time Initialization两种全局变量初始化方法。.bss Section存放全局变量,而.cinit存储初始值。Run-Time Autoinitialization在main函数前通过c_int00完成,而Load-Time Initialization在加载程序时即初始化全局变量,以节省RAM资源。对于没有Flash内存或使用serial boot的系统,Load-Time Initialization更为适用。
摘要由CSDN通过智能技术生成

    在用纯汇编编制的dsp程序时需要做如图所示的调整,这是因为:

   在CCS的build options中的linker选项卡中,Autoinit Model有两个选项:Run-Time Autoinitialization和Load-Time Initialization。

    因为这两个选项和.cinit和.bss Section有关,所以先简单的介绍一下这两个section相关的知识。从C语言的角度来看的话,.bss section是用来存放C语言中的全局变量的。而.cinit则用来存放全局变量的初始值。例如如果有下面的全局变量buf的话,

short buf[4] = { 0x01, 0x02, 0x03, 0x04};

    那么buf放在.bss中,而初始值0x01, 0x02, 0x03, 0x04放在.cinit中。.cinit中储存的实际上是一个copy table,它对于每个需要初始化的全局变量,都有一个复制项与之对应,以55x系为例,上面的这段程序产生的复制项为:

00 04 00
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值