zhjerry 发表于 2020-12-29 20:15

421死了,还有救吗?(已解决)

本帖最后由 muyichuan2012 于 2020-12-31 19:21 编辑

RT 补字

muyichuan2012 发表于 2020-12-29 21:15

用icp加at link试试

zhjerry 发表于 2020-12-29 21:26

谢谢回答。
现在没有ATLINK,板子设计BOOT0固定接地无法ICP,只有JLINK一条路。使用JLINK UNLOCKER工具模拟STM32F030去擦除也无法完成任务说是改写OPT字节失败。别家的030都是可以的。
我的JLINK/SWD使用硬件复位还没有遇到解不了的片子,现在使用ArteryICPProgrammer都无法复原说不过去呀。就是试了一次读保护然后--,看来421死了,

muyichuan2012 发表于 2020-12-29 23:50

本帖最后由 muyichuan2012 于 2020-12-29 23:51 编辑

还有种办法 使用jlink commander,可以留个qq或微信吗?我们技术和你沟通怎么操作

zhjerry 发表于 2020-12-30 08:54

muyichuan2012 发表于 2020-12-29 23:50
还有种办法 使用jlink commander,可以留个qq或微信吗?我们技术和你沟通怎么操作 ...

芯片内部程序已经没有了。请看私信QQ

触觉的爱 发表于 2020-12-31 18:55

刚买了样品,正准备开工呢……看来还要缓缓

muyichuan2012 发表于 2020-12-31 19:20

触觉的爱 发表于 2020-12-31 18:55
刚买了样品,正准备开工呢……看来还要缓缓

这个芯片已经烧掉,换了一颗就好了。

zhjerry 发表于 2021-1-2 11:31

muyichuan2012 发表于 2020-12-31 19:20
这个芯片已经烧掉,换了一颗就好了。

虽然到目前为止对AT32比较满意(包括对AT32F413/AT32F403A的测试和试验),但对这个评论不得不说一句。
首先芯片从来没有被烧,开始工作正常并加了读保护,然后希望重新改写CODE解除读保护失败,进入锁死状态。原厂技术支持很快地联系了我,由于我没有ATLINK原厂技术支持也无法判断芯片处于什么状态。也许我会寄给他们分析。
我对AT32还是有信心的,昨天高价新买的正在到来的路上,估计明后天可以换下来继续测试。后面对这个AT32F421的读保护会再次专门进行测试。

muyichuan2012 发表于 2021-1-2 17:41

感谢批评指正,我们会努力把服务做到更好。

084425 发表于 2021-1-4 09:45

zhjerry 发表于 2021-1-2 11:31
虽然到目前为止对AT32比较满意(包括对AT32F413/AT32F403A的测试和试验),但对这个评论不得不说一句。
...

换下来的芯片,如果有必要,寄厂商分析下吧

zhjerry 发表于 2021-1-4 10:54

本帖最后由 zhjerry 于 2021-1-4 10:56 编辑

084425 发表于 2021-1-4 09:45
换下来的芯片,如果有必要,寄厂商分析下吧
新的芯片到了,换上后的确好了。
再次重复前面的加读保护试验,再次出现问题(再次杯具一块421!), 证明这个问题是可以重复的,所以厂家可以自己测试。
简化的代码如下,将EnableFlashRDP定义为1就可以将芯片进入读保护而代码继续在运行的状态,复杂的折腾可以把代码搞掉但是芯片还是处于无法恢复的状态。请原厂验证。

int main(void)
{   
RCC_Configuration();
NVIC_Configuration();
GPIO_Configuration();
                                                
      #if EnableFlashRDP                           
                if(FLASH_GetReadProtectStatus() != SET) {      
                        FLASH_Unlock();
                        FLASH_ReadProtectConfig(ENABLE);
                        }
      #endif
      #if EnableWatchDog
                //Set the WDT for 1000 ms!
                IWDG_KeyRegWrite(IWDG_KeyRegWrite_Enable);
                IWDG_SetPrescaler(IWDG_Psc_32);      // IWDG counter clock: 40KHz(LSI) / 32 = 1.25 KHz
                IWDG_SetReload(40000 / 128);                // Set counter reload value to 1250 for 1000ms WDT!
                IWDG_ReloadCounter();                        // Reload IWDG counter
                IWDG_Enable();                                       // Enable IWDG (the LSI oscillator will be enabled by hardware)
      #endif

      while(1) {
                extern uint8_t BottomTask(void);
                BottomTask();
                }
}

请原厂验证后判断这段代码的问题所在并告知在代码中正确加入读保护的方法。另外如果我这里出问题的2块片子有办法救回来最好不过。


单片小菜 发表于 2021-1-4 11:18

虽然主题结掉了,但是里面的经验还是值得学习的。

触觉的爱 发表于 2021-1-4 14:23

如果是应用上有技巧,原厂应该提供相应例程才对,总不能都等客户去摸索吧……希望是保护功能过于强大,强大到……

084425 发表于 2021-1-4 15:37

初步判断是程序中看门狗不停复位导致jlink连接异常,后续推荐使用ATLink加ICP来处理类似芯片非常规操作后的连接,可以参考官网里边的AT32恢复下载办法说明http://www.arterytek.com/download/ConfigJLink_V1.0.1.zip

zhjerry 发表于 2021-1-4 16:13

本帖最后由 zhjerry 于 2021-1-4 16:27 编辑

在原厂技术支持下问题终于解决了。
实践证明把BOOT0引脚拉高后接入JLINK运行ARTERY的ICP可以有效解除读保护如图所示。2块芯片都恢复了。
同意084425的观点,可能是看门狗的开启造成了JLINK解锁的失败。
做了11年多的SXX32一直都把读保护和看门狗的代码这么放,从来没有遇到看门狗对解锁读保护造成问题。
暂时没有测试http://www.arterytek.com/download/ConfigJLink_V1.0.1.zip方法是否有效。
觉得ARTERY的ICP工具有改进的空间,可在解锁期间把芯片一直置于RESET状态?
我作STM32不用STLINK,不希望作AT32必须使用ATLINK。{:smile:}

084425 发表于 2021-1-4 19:31

zhjerry 发表于 2021-1-4 16:13
在原厂技术支持下问题终于解决了。
实践证明把BOOT0引脚拉高后接入JLINK运行ARTERY的ICP可以有效解除读保护 ...

ICP搭配ATLINK才能发挥最大功效,jlink属于第三方工具,在ICP上也只能调用其命令行,当初做到ICP里也是考虑有不少用户用jlink,其实参考GD,新唐等厂商,自己的上位机软件都是只支持自家调试器的。

另外SXX有钱呀,跟JLINK有合作,内部会专门为SXX做操作,比如检测到读保护这些会有专门操作
页: [1]
查看完整版本: 421死了,还有救吗?(已解决)