静态和外部变量通常分配到一般数据存储区中。如果选择了constants-in-data存储模型,const限定的变量将被分配到一般数据存储区中;如果选择了constants-in-code存储模型,const限定的变量将被分配到程序存储器中。
为配合dsPICDSC的架构特点,MPLAB C30定义了几个专用存储空间。可通过使用space属性,将静态和外部变量分配到以下专用存储空间中:
●data:一般数据空间,可使用普通C语句访问一般数据空间中的变量。这是默认的分配。
●xmemory:X数据地址空间,可使用普通C语句访问X数据空间中的变量。X数据地址空间尤其适用于针对DSP的函数库或汇编语言指令。
●ymemory:Y数据地址空间,可使用普通C语句访问Y数据空间中的变量。Y数据地址空间尤其适用于针对DSP的函数库或汇编语言指令。(www.xing528.com)
●prog:一般程序空间,通常保留给可执行代码。不能使用普通C语句访问程序空间中的变量。这些变量必须由编程人员显式访问,通常通过表访问行内汇编指令,或使用程序空间可视性窗口访问。
●const:程序空间中编译器管理的区域,用于程序空间可视性(PSV)窗口访问。const空间中的变量可通过普通C语句读取,总分配空间最大为32KB。
●psv:程序空间,用于程序空间可视性(PSV)窗口访问。psv空间中的变量不由编译器管理,不能通过普通C语句访问。这些变量必须由编程人员显式访问,通常通过表访问行内汇编指令,或使用程序空间可视性窗口访问。可通过使用PSVPAG寄存器的设置,访问psv空间中的变量。
●eedata:数据EEPROM空间,位于程序存储器高地址的16位宽非易失性存储区。eedata空间中的变量不能使用普通C语句访问。这些变量必须由编程人员显式访问,通常使用表访问行内汇编指令,或使用程序空间可视性窗口访问。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。