0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

C2000 MCU flash报错的解决方案

电子设计 来源:电子设计 作者:电子设计 2022-06-30 17:01 次阅读

在使用C2000MCU产品的时候,有可能会碰到仿真器连上目标板以后报“flash is not available on this device”,详细报错信息如下,而事实上芯片本身是有Flash的。

C28xx_CPU1: GEL Output:

RAM initialization done

C28xx_CPU1: GEL Output:

Memory Map Initialization Complete

C28xx_CPU1: GEL Output: ... DCSM Initialization Start ...

C28xx_CPU1: GEL Output: ... DCSM Initialization Done ...

C28xx_CPU1: Error initializing flash programming: Interface returned from dll, but flash is not available on this device.

这时针对芯片Flash的所有操作(擦除,编程,校验,读取)都会报图一所示错误。

pYYBAGK9VZ-AK0YDAAAgs7vd5xc294.png

图一

出现这种情况的原因可能是芯片Flash的代码不完整或者有错误,导致CPU工作不正常。虽然能连上仿真器,但仿真器读取到的芯片信息可能会出错,从而导致上面的报错。

如果没有有效办法去解决这个错误,则针对芯片Flash的所有操作都无效,只有换芯片才能让板子正常工作。

本文将以C2000 F28002x系列及CCS11为例,介绍针对“flash is not available on this device”问题的两种解决方案。其它C2000系列芯片如F28003x/F28004x/F2837x/F2838x遇到这个问题,也可以使用本文方法来解决。

方法一:更改引导模式。

如图二所示,将引导模式管脚跳线为Wait Boot Mode, 这样上电时CPU会停留在芯片内部自带的BOOT ROM区,而不会进入到用户自己的Flash代码。

pYYBAGK9VaGAZMG5AAAlMkZiS4Q528.png

图二

这时连上仿真器,可以正常读取芯片信息,不会报之前的错误,接下来如图三所示,我们通过“ToolsàOn-Chip Flash”,在“Erase Settings”里面选择“Entire Flash”,然后点击“Erase Flash”把芯片整个Flash 擦除掉,此时芯片将变成空片。

poYBAGK9VaOAWTuQAACTeDWzLNA646.png

图三

方法二:更改XML文件。

第一步:生成CCS logs 文件。

1a. 如图四所示,点击 “Help”,然后选择 “CCS Support”。

pYYBAGK9VaiAOGMKAABjTAGY-OY462.png

图四

1b. 如图五所示,选择“Debug Server Log”,然后点击“Properties”。

poYBAGK9VaqAIm-_AAB-pXBfCgs041.png

图五

1c. 如图六所示,勾上“Enable Debug Server Logging”,然后选择存储log 文件路径并命名,例如命名为test.log,然后点击OK。

pYYBAGK9VauAcemjAABWQYvKbvg250.png

图六

1d.启动CCS 仿真, 这时将生成log文件。

1f.用CCS 或者文本编辑器打开log 文件,如图七所示,查找Device ID, 把这个ID 号记下来,如(0x771923)。

poYBAGK9Va2AbYtGAABlu_p_J4w619.png

图七

第二步:更改xml 文件。

2a. 在下面路径下找到TMS320F28002x.xml 文件。建议先备份好这个文件,后面需要用到这个备份文件。

C:\ti\ccs1100\ccs\ccs_base\c2000\nowFlash\configs

2b.用文本编辑器或者CCS打开TMS320F28002x.xml文件, 如图八所示,查找DeviceId,,将1f步骤里面记录下来的Device ID 号替换TMS320F28002x.xml文件里的DeviceId值。也就是将0x771973改成0x771923。然后保存更改并关闭CCS(记得一定要关闭CCS,因为xml更改只有在下一次CCS启动时才会生效)。

pYYBAGK9Va-AZRvxAAAk82dMDow084.png

图八

第三步:启动CCS,进入仿真界面。

这时CCS不再报之前的错误, Flash 可以正常操作了。接下来我们通过“ToolsàOn-Chip Flash”,在“Erase Settings”里面选择“Entire Flash”,然后点击“Erase Flash”把芯片整个FLASH 擦除掉,此时芯片将变成空片。

第四步:恢复xml 文件。

可以将2a步骤里备份的TMS320F28002x.xml文件恢复,或者把现有TMS320F28002x.xml 里的DeviceId 从0x771923改回0x771973。

至此,芯片已经可以正常操作Flash 了, 问题得到解决。相比第一种方法,第二种方法的好处在于不需要硬件跳线, 对于客户实际操作来说会更加便捷。另外,如果第一种方法无效的话,也可以尝试第二种方法。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • mcu
    mcu
    +关注

    关注

    146

    文章

    16010

    浏览量

    343529
  • FlaSh
    +关注

    关注

    10

    文章

    1549

    浏览量

    146637
  • 仿真器
    +关注

    关注

    14

    文章

    988

    浏览量

    82987
  • C2000
    +关注

    关注

    5

    文章

    148

    浏览量

    39820
收藏 人收藏

    评论

    相关推荐

    CY5C4147MCU在编译的时候Flash报错的原因?怎么解决?

    CY5C4147MCU在编译的时候Flash报错
    发表于 01-19 07:35

    如何把ADUCM320 MCU里面所有flash区都擦除干净?

    今天我在使用ADUCM320的评估版 优化、调试代码的时候,添加了一些data在flash:0x1F800-0x1FFFF的地方,可能导致MCU保留区域的一些数据被我修改。 导致结果就是当前我无法
    发表于 01-11 06:00

    RX231系列MCU旧工程打开编译报错问题解决方法

    RX231系列MCU旧工程打开编译报错,使用新版本为Renesas e² studio,Version: 2023-04 (23.4.0)
    的头像 发表于 01-03 12:32 550次阅读
    RX231系列<b class='flag-5'>MCU</b>旧工程打开编译<b class='flag-5'>报错</b>问题解决方法

    使用CS+ CCRL编译RL78系列MCU引起flash空间浪费的错误问题解析

    客户使用IDE CS+ CCRL编译瑞萨RL78系列MCU R5F1027A(flash空间16K),出现报错信息,“data”地址超出范围。而实际使用的flash约8K,还不到16
    的头像 发表于 12-08 13:57 530次阅读
    使用CS+ CCRL编译RL78系列<b class='flag-5'>MCU</b>引起<b class='flag-5'>flash</b>空间浪费的错误问题解析

    Nor Flash作为存储解决方案的优势与限制

    选择Nor Flash作为存储解决方案的一个主要原因就是Nor Flash的并行访问结构可实现快速读取速度和低读取延迟。
    的头像 发表于 12-05 14:32 327次阅读

    32位C2000实时MCU电源管理解决方案

    电子发烧友网站提供《32位C2000实时MCU电源管理解决方案.pdf》资料免费下载
    发表于 11-16 11:24 0次下载
    32位<b class='flag-5'>C2000</b>实时<b class='flag-5'>MCU</b>电源管理<b class='flag-5'>解决方案</b>

    基于瑞萨RL78 MCU的智能马桶量产级解决方案

    基于瑞萨RL78 MCU的智能马桶量产级解决方案
    的头像 发表于 10-30 18:27 831次阅读
    基于瑞萨RL78 <b class='flag-5'>MCU</b>的智能马桶量产级<b class='flag-5'>解决方案</b>

    如何使用 C2000™ 实时 MCU 实现功能安全和网络安全的电动汽车动力总成

    如何使用 C2000™ 实时 MCU 实现功能安全和网络安全的电动汽车动力总成
    的头像 发表于 10-26 16:37 272次阅读
    如何使用 <b class='flag-5'>C2000</b>™ 实时 <b class='flag-5'>MCU</b> 实现功能安全和网络安全的电动汽车动力总成

    使用MCU Flash模拟EEPROM

    使用MCU Flash模拟EEPROM
    的头像 发表于 10-18 18:01 448次阅读

    FLASH擦写操作非法操作解决方案-HK32F030M应用笔记(二十四)

    FLASH擦写操作非法操作解决方案-HK32F030M应用笔记(二十四)
    的头像 发表于 09-18 10:56 375次阅读
    <b class='flag-5'>FLASH</b>擦写操作非法操作<b class='flag-5'>解决方案</b>-HK32F030M应用笔记(二十四)

    在完成FLASH的配置后编译报错怎么处理呢?

    1、在完成FLASH的配置后,编译报错,确实不明白为什么会报这个错,Keil的编译已经勾选了-C99。报错信息如下: 对应的源文件内容如下: 2、补充内容: 相当无语,把改的还原回去,
    发表于 09-08 17:35

    基于C2000内部集成的模拟比较器功能

    1. 介绍 C2000系列芯片在数字电源和电机控制中有着广泛的应用,在这些应用中,过流过压保护是必不可少的。传统的方法是使用外部比较器,但是会存在滤波电路不好设计,不同版本需要不同的BOM来提供
    的头像 发表于 08-24 15:51 638次阅读
    基于<b class='flag-5'>C2000</b>内部集成的模拟比较器功能

    使用C2000™ DCC功能监控系统时钟

    使用C2000™︎ DCC功能监控系统时钟
    的头像 发表于 08-24 13:37 373次阅读
    使用<b class='flag-5'>C2000</b>™ DCC功能监控系统时钟

    MCU200T如何通过PC向MCU_FLASH写入数据,如何在E203运行中恰当读取这一FLASH

    几个方案中我首先选择了考察MCU_FLASH,并得知应该是可以通过APB总线访问QSPI0寄存器的方式读取这颗FLASH的。所以现在的疑问就是如何在程序运行之前把数据从PC端写入这颗FLASH
    发表于 08-16 08:14

    Flash基本操作——Flash基础(1)#多媒体技术

    FlaSh
    未来加油dz
    发布于 :2023年05月24日 10:43:53