硬汉嵌入式论坛

 找回密码
 立即注册
查看: 3269|回复: 13
收起左侧

[脱机烧录] 国产芯片脱机烧录问题记录 2020-05-11

  [复制链接]

747

主题

1049

回帖

3295

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3295
发表于 2020-5-2 00:32:25 | 显示全部楼层 |阅读模式
正在调试脱机烧录新唐的片子。型号 M0518LD2AE,  68K FLASH。
可以正常读取core id,  但是读取寄存器、内存都返回0值。是芯片被锁了还是有啥机关需要开启后才能读取。

等待购买NU-LINK之后再试试。


2020-05-11 灵动的MCU已经可以解除读保护、正常烧录。现在正在优化速度,提高查空和校验的效率。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107031
QQ
发表于 2020-5-2 09:10:05 | 显示全部楼层
这个感觉有必要看下他们的参考手册
QQ截图20200502090835.png
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107031
QQ
发表于 2020-5-2 09:22:52 | 显示全部楼层
不知道是不是这个:

QQ截图20200502092254.png
回复

使用道具 举报

747

主题

1049

回帖

3295

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3295
 楼主| 发表于 2020-5-5 21:36:56 | 显示全部楼层
灵动的MM32烧录也存在很多问题待解决

1. MM32103VET6: 读写保护,写OPTION BYTES失败。无保护时烧写正常。有保护时,无法成功解除保护。   
  - 用J-LINK可以解除保护。但是芯片进入某种状态后,JLINK也操作失败,必须对目标板断电一次才行、
  - 写保护问题统一留到最后解决。

2. MM32F103RB76 :  查空操作(每次读16KB)后,整片擦除失败;不执行查空直接全片擦除可以成功。   
  - 解决办法:查空操作完成后,重新初始化SWD接口,重新装载算法文件执行init. 之后不要有其他操作,直接擦除整片。

3. MM32F031x6 按扇区擦除时会失败
   - 解决办法:查空操作完成后,先延迟5ms,再开始循环擦除扇区,下次擦除扇区也需要延迟5ms,才能正常继续。

3. MM32L373PF : 128KB Flash,查空操作(芯片全FF时)失败,读第一块16KB成功,紧接着读第2块16KB失败。
   - 解决办法:在读16KB操作之后,延迟1ms解决问题。

4. MM32SPIN27PS : 128KB Flash,FLM算法文件中的Device Size字段为0x1FFFF错误, MindMotion/MM32SPIN2x/MM32SPIN2x_128K.FLM
   - 解决办法:二进制编辑器将0x1FFFF字段修改为0x20000后烧录正确。

评分

参与人数 1金币 +20 收起 理由
byccc + 20 赞一个!

查看全部评分

回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107031
QQ
发表于 2020-5-6 08:53:35 | 显示全部楼层
armfly 发表于 2020-5-5 21:36
灵动的MM32烧录也存在很多问题待解决

1. MM32VET6: 读写保护,写OPTION BYTES失败。无保护时烧写正常。 ...

不知道直接在MDK端操作是否正常。
回复

使用道具 举报

0

主题

31

回帖

31

积分

新手上路

积分
31
发表于 2020-5-6 22:28:48 | 显示全部楼层
国产的不敢用了,用过stc的15W系列,被坑惨了,芯片内部有bug,有些io不能同时使用,有些引脚复位功能不正常,异常输出。……真的不敢用啦,我算是服了。
回复

使用道具 举报

747

主题

1049

回帖

3295

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3295
 楼主| 发表于 2020-5-7 10:34:59 | 显示全部楼层
ahu5 发表于 2020-5-6 22:28
国产的不敢用了,用过stc的15W系列,被坑惨了,芯片内部有bug,有些io不能同时使用,有些引脚复位功能不正 ...

芯片内部硬件BUG,进口的MCU也都存在的,只要知道如何规避BUG即可。
回复

使用道具 举报

36

主题

2040

回帖

2148

积分

至尊会员

积分
2148
发表于 2020-5-7 14:55:11 | 显示全部楼层
armfly 发表于 2020-5-5 21:36
灵动的MM32烧录也存在很多问题待解决

1. MM32103VET6: 读写保护,写OPTION BYTES失败。无保护时烧写正 ...

Ever tried. Ever failed. No matter. Try Again. Fail again. Fail better.
回复

使用道具 举报

0

主题

31

回帖

31

积分

新手上路

积分
31
发表于 2020-5-11 15:37:39 | 显示全部楼层
armfly 发表于 2020-5-7 10:34
芯片内部硬件BUG,进口的MCU也都存在的,只要知道如何规避BUG即可。

STC的抗干扰能力特别差,以前用f103的接电磁阀基本上没什么事,用这个就不行了,电磁阀动作串口就有乱码输出。以后我还是乖乖的用st的和nxp的芯片吧。
回复

使用道具 举报

747

主题

1049

回帖

3295

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3295
 楼主| 发表于 2020-5-11 22:41:05 | 显示全部楼层
2020-05-11 灵动的MCU已经可以解除读保护、正常烧录。现在正在优化速度,提高查空和校验的效率。

对于STM32芯片,因为keil下有FLM源码,我可以修改代码为每个FLM文件添加CheckBlank()和ST3M2_CRC32()函数,目前已实现。CRC32均使用STM32自带的硬件CRC32实现。
但是其他厂家的芯片只有FLM目标文件,无源码,就不能实现了。查空和校验需要一个字节一个字节读回来进行,这样做效率很低。

决定换一个思路实现查空和CRC校验功能。
1、查空时加载一个查空的算法到内存执行查空操作,擦除&编程时使用芯片厂家的FLM算法,校验时再加载一个校验的算法到内存执行校验操作。
2、查空算法实现比较简单,每个ARM芯片都可以共用这1个算法
3、校验算法分两个情况,MCU支持硬件CRC32的采用硬件CRC,不支持的话就采用软件计算CRC32。
   - STM32不同系列,硬件CRC寄存器的地址不同,因此需要区分,不能通用算法。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107031
QQ
发表于 2020-5-12 07:23:39 | 显示全部楼层
armfly 发表于 2020-5-11 22:41
2020-05-11 灵动的MCU已经可以解除读保护、正常烧录。现在正在优化速度,提高查空和校验的效率。

对于ST ...



有了灵动的经验,其他家的M内核只要区别不大,应该也可以很好的支持了。
回复

使用道具 举报

23

主题

1406

回帖

1475

积分

至尊会员

积分
1475
发表于 2020-5-12 10:27:47 | 显示全部楼层
好消息。
代码不规范,亲人两行泪!
回复

使用道具 举报

0

主题

31

回帖

31

积分

新手上路

积分
31
发表于 2020-10-10 11:37:38 | 显示全部楼层
eric2013 发表于 2020-5-12 07:23
有了灵动的经验,其他家的M内核只要区别不大,应该也可以很好的支持了。

安富莱两位大佬都出现了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-14 17:05 , Processed in 0.394111 second(s), 32 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表