AT32F413RCT7的串口iap升级问题
同样的程序,同样的mcu型号。有一片一升级就死,必须flash全部擦除之后,重新烧录才可以正常用,但还是不能iap升级。其他的又都正常, 说明程序应该没有问题。 有问题的那一片mcu是flash坏了吗? 可以debug一下,看程序死在哪里吗? 看是不是有可能这款芯片的flash 某个sector erase时间超过了典型值。 muyichuan2012 发表于 2021-4-29 14:23看是不是有可能这款芯片的flash 某个sector erase时间超过了典型值。
都是用的库函数, 需要改哪里可以避免这种可能? muyichuan2012 发表于 2021-4-29 14:23
看是不是有可能这款芯片的flash 某个sector erase时间超过了典型值。
我是在app1段,通过串口传输,将升级的bin文件写到flash的app2段。 写完后,复位进入到iap,再将app1段擦除,复制app2段到app1段。 413RC默认ram是32K,需要设置一下才能用到64K,你的程序是不是用的超过32K了啊。可以在IAP程序里面设置,我就是这样做的。
void RunApp(void)
{
unsigned int lTemp;
lTemp = *(unsigned int *)(0x1FFFF810);
if((lTemp & 0x00000003) == 0x03)
{
MCU_Init();
FLASH_Unlock();
FLASH_EraseOptionBytes();
FLASH_ProgramOptionByteData(0x1FFFF810,SRAM_64K);
FLASH_Lock();
}
lJumpAddress = *(vu32*) (APPLICATIONADDRESS + 4);
Jump_To_Application = (pFunction) lJumpAddress;
Jump_To_Application();
} 20062516 发表于 2021-4-30 10:20
413RC默认ram是32K,需要设置一下才能用到64K,你的程序是不是用的超过32K了啊。可以在IAP程序里面设置,我 ...
如果是这个问题,不应该其他没问题,独独这一片不行吧。 20062516 发表于 2021-4-30 10:20
413RC默认ram是32K,需要设置一下才能用到64K,你的程序是不是用的超过32K了啊。可以在IAP程序里面设置,我 ...
这个问题最大的麻烦之处就是,出货之前必须试一下iap升级, 不然有问题的mcu出到客户手上,只要一升级,产品就废了。 @muyichuan2012
页:
[1]