共2条
1/1 1 跳转至页
LPC21XX,IAP,ADS1,BUG,LPC21xx,BUG LPC21XX奇怪的IAP问题!ADS1.2的BUG吗?LPC21xx的BUG吗?请教高人?
问
为什么用IAP写FLASH有部分数据,有部分不正确。每次写1024个字节!
第一次调用RamToFlash(0x00010000,comdatabuff, 1024)时候写FALSH,出现错误!
comdatabuff[]={
00 01 08 0B 00 01 01 00 01 01 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
}
写到FLASH中的数据为:
0x00010000 01 01 08 0B 01 01 08 0B 00 01 01 00 01 01 00 00
0x00010010 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00
正确的应该是:
0x00010000 00 01 08 0B 00 01 01 00 01 01 00 00 00 00 00 00
0x00010010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
请各位大侠指正!!为什么会出现这样的问题?
答 1: ! 答 2: 发现有错误! 答 3: 发现有错误!调用RamToFlash(0x00010000,comdatabuff, 1024)时候写FALSH,出现错误!
comdatabuff[]={
00 01 08 0B 00 01 01 00 01 01 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
}
写到FLASH中的数据为:
0x00010000 01 01 08 0B 01 01 08 0B 00 01 01 00 01 01 00 00
0x00010010 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00
正确的应该是:
0x00010000 00 01 08 0B 00 01 01 00 01 01 00 00 00 00 00 00
0x00010010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
请各位大侠指正!!为什么会出现这样的问题? 答 4: ads有问题!在ADS中对FLASH进行IAP后,在单步运行观察FLASH中的数据,发现程序走几步FLASH中的数据居然发生变化. 答 5: 最新发现! for(i=0;i<32;i++){
comdatabuff[i]=i;
}
IRQDisable();
SelSector(9,9);
RamToFlash(0x00010000,comdatabuff,1024); IRQEnable();
memcpy(checkbuff,0x00010000,256);
按照上面的程序,comdatabuff数组中的数据成功写到FLASH中,并从FLASH中读出,完全正确。但请看下面
IRQDisable();
SelSector(9,9);
RamToFlash(0x00010000,comdatabuff,1024); IRQEnable();
memcpy(checkbuff,0x00010000,256);
却不能正确地把comdatabuff[]数组中的数据写到FLASH中去,看ADS的MEMORY窗口所看到的数据一定是错误的,看checkbuff[]数据中的数据应该正确反映FLASH中的数据,可以看到数据并不是想写进去comdatabuff[]数组中的数据,有一些数据是错误的!一些是正确的!不知道何解?是LPC2134的BUG吗? 答 6: IAP操作时序对了么? _IAPWriteInit(sector, sector);
_IAPEraseSector(sector, sector);
擦、写之前都要初始化的,另,你可以检查函数返回值,是否是 CMD_SUCCESS
第一次调用RamToFlash(0x00010000,comdatabuff, 1024)时候写FALSH,出现错误!
comdatabuff[]={
00 01 08 0B 00 01 01 00 01 01 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
}
写到FLASH中的数据为:
0x00010000 01 01 08 0B 01 01 08 0B 00 01 01 00 01 01 00 00
0x00010010 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00
正确的应该是:
0x00010000 00 01 08 0B 00 01 01 00 01 01 00 00 00 00 00 00
0x00010010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
请各位大侠指正!!为什么会出现这样的问题?
答 1: ! 答 2: 发现有错误! 答 3: 发现有错误!调用RamToFlash(0x00010000,comdatabuff, 1024)时候写FALSH,出现错误!
comdatabuff[]={
00 01 08 0B 00 01 01 00 01 01 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
}
写到FLASH中的数据为:
0x00010000 01 01 08 0B 01 01 08 0B 00 01 01 00 01 01 00 00
0x00010010 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00
正确的应该是:
0x00010000 00 01 08 0B 00 01 01 00 01 01 00 00 00 00 00 00
0x00010010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
请各位大侠指正!!为什么会出现这样的问题? 答 4: ads有问题!在ADS中对FLASH进行IAP后,在单步运行观察FLASH中的数据,发现程序走几步FLASH中的数据居然发生变化. 答 5: 最新发现! for(i=0;i<32;i++){
comdatabuff[i]=i;
}
IRQDisable();
SelSector(9,9);
RamToFlash(0x00010000,comdatabuff,1024); IRQEnable();
memcpy(checkbuff,0x00010000,256);
按照上面的程序,comdatabuff数组中的数据成功写到FLASH中,并从FLASH中读出,完全正确。但请看下面
IRQDisable();
SelSector(9,9);
RamToFlash(0x00010000,comdatabuff,1024); IRQEnable();
memcpy(checkbuff,0x00010000,256);
却不能正确地把comdatabuff[]数组中的数据写到FLASH中去,看ADS的MEMORY窗口所看到的数据一定是错误的,看checkbuff[]数据中的数据应该正确反映FLASH中的数据,可以看到数据并不是想写进去comdatabuff[]数组中的数据,有一些数据是错误的!一些是正确的!不知道何解?是LPC2134的BUG吗? 答 6: IAP操作时序对了么? _IAPWriteInit(sector, sector);
_IAPEraseSector(sector, sector);
擦、写之前都要初始化的,另,你可以检查函数返回值,是否是 CMD_SUCCESS
共2条
1/1 1 跳转至页
回复
我要赚赏金打赏帖 |
|
|---|---|
| 【S32DS】S32K3 RTD7.0.1 HSE 组件配置报错问题解决被打赏¥27元 | |
| 【S32K3XX】MCME 启动 CORE1被打赏¥23元 | |
| AG32VH407下温度大气压传感器及其检测被打赏¥20元 | |
| AG32VH407下光照强度传感器BH1750及其检测被打赏¥22元 | |
| AT32VH407下使用温湿度传感器DHT22进行检测被打赏¥20元 | |
| DIY一个婴儿澡盆温度计被打赏¥34元 | |
| 【FreeRtos】FreeRtos+MPU region 配置规则被打赏¥23元 | |
| 【分享开发笔记,赚取电动螺丝刀】三分钟快速上手驱动墨水屏(ArduinoIDE)被打赏¥28元 | |
| 【S32K3XX】LIN 通讯模块使用被打赏¥31元 | |
| 【FreeRtos】FreeRtos + MPU模块的配置使用被打赏¥32元 | |
我要赚赏金
