共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 跳转至页
回复
| 有奖活动 | |
|---|---|
| 2026年“我要开发板活动”第三季,开始了! | |
| 硬核工程师专属补给计划——填盲盒 | |
| “我踩过的那些坑”主题活动——第002期 | |
| 【EEPW电子工程师创研计划】技术变现通道已开启~ | |
| 发原创文章 【每月瓜分千元赏金 凭实力攒钱买好礼~】 | |
| 【EEPW在线】E起听工程师的声音! | |
| 高校联络员开始招募啦!有惊喜!! | |
| 【工程师专属福利】每天30秒,积分轻松拿!EEPW宠粉打卡计划启动! | |
我要赚赏金打赏帖 |
|
|---|---|
| 以启明云端ESP32P4开发板实现TF卡读写功能被打赏¥28元 | |
| 【分享开发笔记,赚取电动螺丝刀】树莓派5串口UART0配置被打赏¥25元 | |
| 【STM32F103ZET6】17:分享在Rtos项目中断管理的使用经验被打赏¥23元 | |
| 【STM32F103ZET6】16:分享在中断中恢复串口任务,遇到的问题被打赏¥31元 | |
| 在FireBeetle2ESP32-C5上实现温度大气压检测及显示被打赏¥21元 | |
| 【分享开发笔记,赚取电动螺丝刀】SAME51双串口收发配置被打赏¥27元 | |
| Chaos-nano操作系统在手持式VOC检测设备上的应用被打赏¥37元 | |
| 【分享开发笔记,赚取电动螺丝刀】关于在导入第三方库lib时,wchart类型冲突的原因及解决方案被打赏¥30元 | |
| 在FireBeetle2ESP32-C5上实现温湿度检测和显示被打赏¥20元 | |
| 在FireBeetle2ESP32-C5上实现光照强度检测及显示被打赏¥21元 | |
我要赚赏金
