pointer to_flash char 错误

[复制链接]
482|10
手机看帖
扫描二维码
随时随地手机跟帖
llljh|  楼主 | 2017-4-23 21:56 | 显示全部楼层 |阅读模式
出现什么pointer to_flash char 错误
zyf部长| | 2017-4-23 21:59 | 显示全部楼层
楼主程序可以公开吗?贴程序看下吧,这么说看不出什么原因

使用特权

评论回复
llljh|  楼主 | 2017-4-23 22:01 | 显示全部楼层

#include <m8c.h>        // part specific constants and macros
#include "PSoCAPI.h"    // PSoC API definitions for all User Modules
#include <string.h>

void main(void)
{int i;
char *r;
char k;
char  *strPtr;// Parameter pointer
unsigned char AT_Buffer[9];
unsigned char Command_AT[3] ={0x41,0x54,0x0D};
UART_2_CmdReset(); // Initialize receiver/cmd
UART_2_EnableInt(); // Enable RX interrupts
Counter8_1_WritePeriod(155); // Set up baud rate generator
Counter8_1_WriteCompareValue(77);
Counter8_1_Start(); // Turn on baud rate generator
UART_2_Start(UART_2_PARITY_NONE); // Enable UART
M8C_EnableGInt ; // Turn on interrupts

LED_1_Start();
LED_2_Start();
LED_1_Off();
LED_2_Off();
UART_2_CPutString("AT");
UART_2_PutCRLF();
strPtr = UART_2_szGetParam();
k=UART_2_cReadChar();
r=strstr(strPtr,"OK");
if(r)
{
LED_1_On();
LED_2_Off();
while(1){
UART_2_CPutString("at");
UART_2_PutCRLF();
}
}
}
再PSOC designer编译时r=strstr(strPtr,"OK");这句会出现什么pointer to_flash char 错误,求高手解答。

使用特权

评论回复
zwll| | 2017-4-23 22:02 | 显示全部楼层
是不是感觉很多C语言的语句比如给char k 赋初值好像都不行?

使用特权

评论回复
llljh|  楼主 | 2017-4-23 22:03 | 显示全部楼层
是啊

使用特权

评论回复
stly| | 2017-4-23 22:04 | 显示全部楼层

导致这个Error 的原因是"OK"被定义在了ROM中了,这是你用的compiler决定的。

使用特权

评论回复
zwll| | 2017-4-23 22:07 | 显示全部楼层

strstr 的两个参数必须从ram中取

使用特权

评论回复
llljh|  楼主 | 2017-4-23 22:09 | 显示全部楼层
咋办

使用特权

评论回复
juventus9554| | 2017-4-23 22:11 | 显示全部楼层
解决办法是定义"OK" 到RAM中

使用特权

评论回复
dingy| | 2017-4-23 22:12 | 显示全部楼层
char ok[]="OK";
...
r=strstr(strPtr,ok);

使用特权

评论回复
llljh|  楼主 | 2017-4-23 22:15 | 显示全部楼层
搞定了,呵呵,犯了低级错误……结贴啦,多谢各位

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

855

主题

11301

帖子

6

粉丝