主题:controlSUITE中讨论的其他部件
工具/软件:Code Composer Studio
您好,
当我将我的代码加载到RAM而不是闪存时,main条目中的第一个指令将被ESTOP0替换。 被覆盖的指令移动了stackpointer。 由于RAM执行中缺少此项,所以栈指针会移动,堆栈会下移并覆盖其他代码。 最终应用程序崩溃。
调试时,MCU也会在主条目处停止两次。
装入RAM时拆卸:
主要():
1.4405万: 7625 ESTOP0
40 volatile boole_T runModel =1;
1.4406万: 56BF0141 MOVB *-SP[1],#0x01,UNC
41 float modelBaseRate = 0.2 ;
1.4408万: 2844CCCD MOV *-SP[4],#0xcccd
0.144万a: 2.8433万E4C MOV *-SP[3],#0x3e4c
42 浮点系统时钟=200;
0.144万c: E8021A40 MOVIZ R0,#0x4348
0.144万e: E203.0046万 MOV32 *-SP[6],R0H
43 c2000_flash_init();
装入闪存时拆卸:
主要():
0816eb: FE06 ADDB SP,#6
40 volatile boole_T runModel =1;
0816ec: 56BF0141 MOVB *-SP[1],#0x01,UNC
41 float modelBaseRate = 0.2 ;
0816ee: 2844CCCD MOV *-SP[4],#0xcccd
0816f0: 2.8433万E4C MOV *-SP[3],#0x3e4c
42 浮点系统时钟=200;
0816f2: E8021A40 MOVIZ R0,#0x4348
0816f4: E203.0046万 MOV32 *-SP[6],R0H
43 c2000_flash_init();
代码是使用Simulink和嵌入式编码器生成的。 CCS版本是6.2。
据我所见,构建过程中的唯一区别是--define=boot_fby_flash=0/1。
原因可能是什么?
此致,
Thomas。
