如何在RAM上定义const变量?

时间:2015-11-06 13:58:10

标签: c embedded microcontroller powerpc

我正在使用MPC5644A freescale EVB板。

我需要找到一种在ram中定义const变量的方法。所以在LCF文件中,我将这些变量指向mpc5644的RAM位置。但是在运行时我按照预期服用IVOR1。

有一条主要规则。我不能改变const变量的类型或名称。但我需要在RAM中使用这些变量,确定区域如" calibration_ram"

任何帮助都可以这么好。

我的C来源如下:

#pragma push /* Save the current state */
#pragma section sconst_type ".__cal_DataArea"

volatile const real32_T freq2rpm;
volatile const real32_T high_voltage;
#pragma pop

...

我的LCF文件:

MEMORY
{

calibration_ram :      org = 0x40040000,   len = 0x00010000

...


SECTIONS
{

    .__bam_bootarea LOAD (ADDR(resetvector)): {} > resetvector
    .__cal_DataArea LOAD (ADDR(calibration_ram)): {} > calibration_ram

...

1 个答案:

答案 0 :(得分:0)

当我尝试下线时,它就解决了。我可以在RAM上定义const变量

#pragma explicit_zero_data on
#pragma push
#pragma section sconst_type const_type   ".__cal_DataArea" ".__cal_DataArea"
...
..

全部谢谢。