[技术问题解答] FXTH87 flash 擦写函数问题

[复制链接]
1628|7
 楼主| fuhuiming 发表于 2015-11-3 16:27 | 显示全部楼层 |阅读模式
TPMS_FLASH_ERASE() 和 TPMS_FLASH_WRITE() 执行后,flash的内容没有变化,代码如下:

fosc = 8MHz, fbus = 4MHz
FCDIV = 21;                                         // Fclk = 4MHz / (21+1) = 181.18KHz  -> 150KHz~200KHz

//----------------------------------------------------------------------------------
const BYTE CParaAddr[] @ 0xD200u =
{
0x44, 0x55, 0x66, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
};

......

FCDIV = 21;
SendDebugContent(CParaAddr[0], CParaAddr[1], CParaAddr[2]);          // 收到 { 44 55 66 }
mRfData1 = TPMS_FLASH_ERASE((WORD)CParaAddr);                      // 返回值为0,成功了?
mCommonBuffer[0] = 0x77;
mCommonBuffer[1] = 0x88;
mCommonBuffer[2] = 0x99;
TPMS_FLASH_WRITE_1A((WORD)CParaAddr, &mCommonBuffer[0], 10);
SendDebugContent(CParaAddr[0], CParaAddr[1], CParaAddr[2]);          // 还是收到 { 44 55 66 }

FSL_TICS_ZJJ 发表于 2015-11-3 16:55 | 显示全部楼层
楼主你好。非常感谢你的技术问题。
关于sensor的问题,我们建议您将此技术问题提交到飞思卡尔的英文论坛。网址是https://community.freescale.com/welcome 谢谢。
春风的暖暖 发表于 2015-11-3 21:00 | 显示全部楼层
flash有没有初始化成功呢
 楼主| fuhuiming 发表于 2015-11-4 09:06 | 显示全部楼层
春风的暖暖 发表于 2015-11-3 21:00
flash有没有初始化成功呢

谢谢回复!
Flash没有保护,但不知道要怎样初始化?不是只需要设置 FCDIV 寄存器吗?
 楼主| fuhuiming 发表于 2015-11-4 09:13 | 显示全部楼层
FSL_TICS_ZJJ 发表于 2015-11-3 16:55
楼主你好。非常感谢你的技术问题。
关于sensor的问题,我们建议您将此技术问题提交到飞思卡尔的英文论坛。 ...

英文论坛没人理。
FSL_TICS_ZJJ 发表于 2015-11-4 09:30 | 显示全部楼层
fuhuiming 发表于 2015-11-4 09:13
英文论坛没人理。

到官网提交一个技术服务请求SR吧,那边会有专门的人处理的。
 楼主| fuhuiming 发表于 2015-11-4 15:13 | 显示全部楼层
解决了,CParaAddr定义为常量数组,
SendDebugContent(CParaAddr[0], CParaAddr[1], CParaAddr[2]);
编译器会直接丢三个常数作为参数给函数当入参,而不是重新去访问数组的内容。
FSL_TICS_ZJJ 发表于 2015-11-4 15:20 | 显示全部楼层
fuhuiming 发表于 2015-11-4 15:13
解决了,CParaAddr定义为常量数组,
SendDebugContent(CParaAddr[0], CParaAddr[1], CParaAddr[2]);
编译器 ...

好的,感谢楼主的解决方案分享!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

4

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部