共2条
1/1 1 跳转至页
DSP 大虾们帮忙看看一个DSP程序语句的问题吧

问
在ccs中调试DSP系统
程序运行到下面这段时总是没有执行!
for(i=0;i<256;i++)
{
temp=*(Uint8 *)(ADDRESS + i);
*(pointer + i)=temp;
}
ADDRESS是前面定义的一个SDRAM地址
在for处设置了一个断点,
调试时,程序运行到断点处停止
这个时候如果把光标移到temp=*(Uint8 *)(ADDRESS + i)语句
并选择将程序运行到此处时,提示错误:
这不是一个有效行(it is not a valide command line )!
如果直接运行,这个语句就没有执行,c语言好像没什么问题,但就是不知道为什么,大虾们帮我分析一下吧!
bow 答 1: temp 被优化掉了, 变成
*(pointer + i)= *(Uint8 *)(ADDRESS + i); 答 2: temp前面加一个 volatiletemp前面加一个 volatile 就不会优化掉了 答 3: 顶上边两楼的很是厉害 答 4: volatile 嵌入开发程序有用的说
程序运行到下面这段时总是没有执行!
for(i=0;i<256;i++)
{
temp=*(Uint8 *)(ADDRESS + i);
*(pointer + i)=temp;
}
ADDRESS是前面定义的一个SDRAM地址
在for处设置了一个断点,
调试时,程序运行到断点处停止
这个时候如果把光标移到temp=*(Uint8 *)(ADDRESS + i)语句
并选择将程序运行到此处时,提示错误:
这不是一个有效行(it is not a valide command line )!
如果直接运行,这个语句就没有执行,c语言好像没什么问题,但就是不知道为什么,大虾们帮我分析一下吧!
bow 答 1: temp 被优化掉了, 变成
*(pointer + i)= *(Uint8 *)(ADDRESS + i); 答 2: temp前面加一个 volatiletemp前面加一个 volatile 就不会优化掉了 答 3: 顶上边两楼的很是厉害 答 4: volatile 嵌入开发程序有用的说
共2条
1/1 1 跳转至页
回复
打赏帖 | |
---|---|
【STM32F769】AI之与本地deepseek对接被打赏50分 | |
Buck电路工作在CCM模式下电感电流的计算公式是什么?被打赏5分 | |
buck电路工作原理被打赏5分 | |
基于MSPM0L1306的MODBUS-RTU协议通讯实验被打赏100分 | |
我想要一部加热台+多合一调试工具被打赏18分 | |
每周了解几个硬件知识+485硬件知识分享被打赏10分 | |
【换取手持数字示波器】树莓派PICO调试器官方固件本地化部署实践被打赏24分 | |
【换取手持数字示波器】分享一个KEIL无法识别CMSIS-DAP调试器的解决办法被打赏20分 | |
【换取手持数字示波器】分享一个自制的ArduinoNano扩展板底板被打赏23分 | |
【换取手持示波器】树莓派PICOW网页烟花被打赏18分 |