当前位置:网站首页>mpc5744p烧录到98%无法继续下载程序
mpc5744p烧录到98%无法继续下载程序
2022-07-26 17:34:00 【子氚】
mpc5744p烧录到98%无法继续下载程序
ref :MPC5744 烧录一直停留在 98% 的解决方法
突然debug无法下载程序, 表现为右下角进度卡在98%, Console窗口信息如下
...
Loading programming algorithm ...
WARNING - Selected .PCP file has been modified. CRC16 = $5A63
Done.
CMD>VC
Verifying object file CRC-16 to device ranges ...
block 00FA0000-00FA0007 ...
Ok.
block 00FA0010-00FA0017 ...
Ok.
block 01000000-0100026D ...
但这时烧录到RAM是没有问题的, 应该是flash有点问题
解决步骤
- 从历程新建一个工程
hello_world_mpc5744p, 编译测试烧录到ram没有问题 - 从
components添加flash_c55, 生成代码 - 参考MPC5744 烧录一直停留在 98% 的解决方法
- 添加代码到
led初始化前面, 这样擦除完了led就会闪烁, 我们就知道擦除完成了
上面有三行注释代码, 从MPC5744 烧录一直停留在 98% 的解决方法拷贝出来是报错的, 直接注释掉发现也能用status_t ret = STATUS_SUCCESS; // 操作状态变量 uint32_t buffer[1024]; // 缓存数组 flash_block_select_t blockSelect; // 块选择 flash_state_t opResult; // 禁用缓存 //DisableFlashControllerCache(FLASH_PFCR1, FLASH_FMC_BFEN_MASK, &pflash_pfcr1); //DisableFlashControllerCache(FLASH_PFCR2, FLASH_FMC_BFEN_MASK, &pflash_pfcr2); // 初始化 Flash ret = FLASH_DRV_Init(); DEV_ASSERT(ret == STATUS_SUCCESS); // 不对 UTEST 块进行操作 ,直接上锁 ret = FLASH_DRV_SetLock(C55_BLOCK_UTEST, 0x1U); if (STATUS_SUCCESS != ret) { return ret; } // 对要擦除的块解锁 ret = FLASH_DRV_SetLock(C55_BLOCK_LOW, 0x00); if (STATUS_SUCCESS != ret) { return ret; } ret = FLASH_DRV_SetLock(C55_BLOCK_MID, 0x00); if (STATUS_SUCCESS != ret) { return ret; } ret = FLASH_DRV_SetLock(C55_BLOCK_HIGH, 0x00); if (STATUS_SUCCESS != ret) { return ret; } ret = FLASH_DRV_SetLock(C55_BLOCK_256K_FIRST, 0x00); if (STATUS_SUCCESS != ret) { return ret; } ret = FLASH_DRV_SetLock(C55_BLOCK_256K_SECOND, 0x00); if (STATUS_SUCCESS != ret) { return ret; } // 选择要擦除的块 // Low address space 是分区 0 和 1 ,共 4 块 blockSelect.lowBlockSelect = 0xFU; // Mid address space 是分区 2 和 3 ,共 2 块 blockSelect.midBlockSelect = 0x2U; // High address space 是分区 4 和 5 ,共 6 块 blockSelect.highBlockSelect = 0x3FU; // 256KB address space 是分区 6 和 7 ,共 8 块 blockSelect.first256KBlockSelect = 0xFFU; blockSelect.second256KBlockSelect = 0x0U; //g_usrCnt = 0U; // 进行擦除操作 ret = FLASH_DRV_Erase(ERS_OPT_MAIN_SPACE, &blockSelect); // 擦除指令操作成功 ,等待擦除完成 if (STATUS_SUCCESS == ret) { // 直到退出擦除正在进行才可以退出此循环 do { // 检查此时 falsh 的擦除状态 ret = FLASH_DRV_CheckEraseStatus(&opResult); }while(ret == STATUS_FLASH_INPROGRESS); } if (STATUS_SUCCESS != ret) { return ret; } - led闪烁说明完成了, 这时下别的工程到flash就没问题了
边栏推荐
- The third day of SSM practice_ Paging assistant_ Security framework
- 数据仓库:详解维度建模之事实表
- If the recommendation effect is not satisfactory, it's better to try to learn the propeller chart
- SSM练习第五天
- 更安全、更健康、无续航焦虑,魏牌拿铁DHT-PHEV来了
- 8.1 Diffie Hellman key exchange
- 【英雄哥七月集训】第 25天: 树状数组
- LeetCode 0139. 单词拆分
- Linked list - the first common node of two linked lists
- Data warehouse: fact table of detailed dimensional modeling
猜你喜欢
随机推荐
SQL determines whether a column contains Chinese characters, English characters, pure numbers, and data interception
openssl
Is it safe for me to open the securities account of CITIC and find the channel manager?
继续卷技术 埋头苦学,越学越会
Leetcode 50 day question brushing plan (day 1 - add two numbers 11.00-12.30)
PS_1_认识主界面_新建文档(分辨率)_打开保存(序列动画)
数据库索引的原理,为什么要用 B+树,为什么不用二叉树?
剑指offer 正则表达式匹配
202. Happy number
[brother hero July training] day 25: tree array
7月30号PMP考试延期后我们应该做什么?
IrrKlang音频库的下载和配置
[ Kitex 源码解读 ] 服务发现
8.1 Diffie-Hellman密钥交换
.net CLR GC dynamic loading transient heap threshold calculation and threshold excess calculation
推荐效果不如意,不如试试飞桨图学习
During the oppo interview, 16 questions were thrown over. I was stupid
Drools basic grammar
Sign up now | cloud native technology exchange meetup Guangzhou station has been opened, and I will meet you on August 6!
Apartment rental system based on JSP









