processor_sdk_rtos_am335x_5_01_00_11里面的例程rtos_template_app时(编译器选择的是GNU v6.3.1)如下几行代码有的地方不能打断点:
uint16_t *p16;
p16=(uint16_t *)(0x08000000);
*(p16+0x555)=0x00aa;
*(p16+0x2aa)=0x0055;
*(p16+0x555)=0x0080;
*(p16+0x555)=0x00aa;
*(p16+0x2aa)=0x0055;
该段代码是擦除flash的代码,在本工程里面不能在第一行和第四行打断点,程序运行不正常,不能擦除flash。但是我重新建立了一个裸机程序,编译器选择了TI v18.1.1。flash擦除代码和上面的一样,程序可以正常打断点,flash擦除成功。可以确定是GNU编译器引起的问题,请问应该如何修改工程中GNU编译器的设置?
fegnlin he:
修正上面的问题,是第三行和第6行处不能打断点
Shine:
试试升级一下GNU版本,请看一下release note里对编译器版本的要求7.2.1
software-dl.ti.com/…/Release_Specific.html
fegnlin he:
回复 Shine:
7.2.1也不行,一样的现象,我觉得是不是可以在哪里配置编译器的参数?
yongqing wang:
使用GNU v6.3.1远行别的例程 是否正常?打断点是否成功?
fegnlin he:
回复 yongqing wang:
别的例程可以正常运行,断点也没问题,而且,这个工程里面除了这里访问flash的地方不能正常打断点,其他地方都可以正常打断点
yongqing wang:
回复 fegnlin he:
是否开了优化等级?使用最低的编译优化看看呢
fegnlin he:
回复 yongqing wang:
感谢yonng qiang大神!!!就是这个问题,原工程里优化等级是—og关闭优化后,问题就解决了!!
yongqing wang:
回复 fegnlin he:
解决了将我的回答设置了答案,方便别人看到