How could CONST data will not be compiled to be immediate data in code?

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

How could CONST data will not be compiled to be immediate data in code?

ソリューションへジャンプ
1,441件の閲覧回数
elvan
Contributor I

I am working in a calibration projector. for realtime setting, I don't want that CONST data is compiled to immediate data.

what can I do .

in this case,  b = a is compiled to  b = 200  in ASM.

C:          const u16  a = 200
             b = a;

ASM:    14fc: 22c8       movs r2, #200 ; 0xc8
             14fe: 4b04       ldr r3, [pc, #16] ; (1510 <ini_fs_misc+0x24>)
             1500: 801a       strh r2, [r3, #0]

S32DS V1.3 + Win10

ラベル(1)
0 件の賞賛
1 解決策
1,275件の閲覧回数
stanish
NXP Employee
NXP Employee

Hi elvan,

One solution could be to declare the const as a volatile. This way you basically disable compiler optimizations  for this const.

C: volatile  const u16  a = 200

Or access the value of the constant via pointer:

C:

const unsigned short a = 200;
unsigned short *pa = &a;


b=*pa;

Hope it helps.

S.

元の投稿で解決策を見る

0 件の賞賛
3 返答(返信)
1,276件の閲覧回数
stanish
NXP Employee
NXP Employee

Hi elvan,

One solution could be to declare the const as a volatile. This way you basically disable compiler optimizations  for this const.

C: volatile  const u16  a = 200

Or access the value of the constant via pointer:

C:

const unsigned short a = 200;
unsigned short *pa = &a;


b=*pa;

Hope it helps.

S.

0 件の賞賛
1,275件の閲覧回数
elvan
Contributor I

Hi Stanislav.

Thank you very much , it's very useful.

0 件の賞賛
1,275件の閲覧回数
elvan
Contributor I

Developing on the KEAZ128

0 件の賞賛