sc3000, c代码定义了const数组,数组被放在rom区,但是反汇编代码看,确回写了const数组的地址,编译器有bug吗?

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

sc3000, c代码定义了const数组,数组被放在rom区,但是反汇编代码看,确回写了const数组的地址,编译器有bug吗?

2,500 Views
qiongzhang
Contributor I

sc3000, c代码定义了const数组,数组被放在rom区,但是反汇编代码看,确回写了const数组的地址,编译器有bug吗?

工具LSI/SC_IDE/plugins/com.starcoredsp.tools.win32_2.5.8

 

/* 0x00000f0c */    LOOPSTART3

                        moveu.w (r4),d8 ; 1 word prefix (1WHR)   //从常量数组中取值

/* 0x00000f10 */        [ ; 2 word prefix (2W)

                        tfr d8,d3                              

                        cmpeq d8,d2                            

                        tfr d8,d9                              

                        ]

/* 0x00000f1a */        [ ; 1 word prefix (1WHR)

                        add #<7,d3                             

                        tfrf d9,d11                            

                        btd <(*+44) /* L241 */                 

                        ]

/* 0x00000f22 */        [ ; 1 word prefix (1WHR)

                        asrr #<3,d3                            

                        add #<7,d11                            

                        ]

/* 0x00000f28 */        [ ; 1 word prefix (1WHR)

                        moveu.w (r4+>2),d3                     

                        asrr #<3,d11                           

                        ]

/* 0x00000f30 */        [ ; 1 word prefix (1WHR)

                        add d9,d3,d3                           

                        tfr d3,d9                              

                        ]

/* 0x00000f36 */        [ ; 1 word prefix (1WHR)

                        cmpeq d3,d2                            

                        add #<7,d9                             

                        ]

/* 0x00000f3c */        [ ; 1 word prefix (1WHR)

                        bf <(*+16) /* L242 */                  

                        asrr #<3,d9                            

                        ]

/* 0x00000f42 */        add d9,d11,d3 ; 1 word prefix (1WHR)   

/* 0x00000f46 */;  L241:

/* 0x00000f46 */;  L240:

/* 0x00000f46 */        [

                        tfr d3,d1                           

                        sub d0,d0,d0                        

                        ]

/* 0x00000f4a */        iadd d4,d1                          

/* 0x00000f4c */;  L242:

/* 0x00000f4c */        [ ; 2 word prefix (2W)

                        tfr d2,d3                           

                        move.w d8,(r4)                         //回写常量数组,导致异常                 

                        extractu #13,#3,d0,d8               

                        tfra r0,r1                          

                        and

Labels (1)
0 Kudos
5 Replies

1,915 Views
lunminliang
NXP Employee
NXP Employee

qiong zhang,

你好,你的芯片是LSI的产品,不是NXP的,请联系他们的技术支持吧。

Regards

Lunmin

0 Kudos

1,915 Views
lunminliang
NXP Employee
NXP Employee

请问你用的什么芯片啊,SC3000好像很老 了

0 Kudos

1,915 Views
qiongzhang
Contributor I

是比较老的芯片了,使用的芯片是SP2612,不知道是否有已知问题了

0 Kudos

1,915 Views
lunminliang
NXP Employee
NXP Employee

这个现在很少用了,不知道还有没有支持,抱歉我只能试一试,不知道是否能够回答,我晚一点再回复。

0 Kudos

1,915 Views
qiongzhang
Contributor I

非常感谢,使用O0/O1优化都没有问题,使用O2和O3有问题,从反汇编代码看就有问题

0 Kudos