当前位置:网站首页>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就没问题了
边栏推荐
- ICML 2022 (Part 4) | | graph hierarchical alignment graph kernel to realize graph matching
- .Net CLR GC 动态加载短暂堆阈值的计算及阈值超量的计算
- 线性回归——以一道等差数列的题为例
- quartz触发器规则
- Efficiency increased by 98%! AI weapon behind operation and maintenance inspection of high altitude photovoltaic power station
- Vector CANoe Menu Plugin拓展入门
- [a little knowledge] thread pool
- 链表-倒数最后k个结点
- Shader code of parallax map in OpenGL
- J9数字论:如何避免踩雷多头陷阱?
猜你喜欢

Kindergarten system based on SSM

Efficiency increased by 98%! AI weapon behind operation and maintenance inspection of high altitude photovoltaic power station

How to assemble a registry

Redis persistent rdb/aof

2020美亚个人赛复盘

【Unity3D】摇杆

LeetCode50天刷题计划(Day 4—— 最长回文子串 14.00-16:20)

8.2 一些代数知识(群、循环群和子群)

ICML 2022 (Part 4) | | graph hierarchical alignment graph kernel to realize graph matching

面试OPPO,16道题甩过来,我人傻了
随机推荐
Baidu PaddlePaddle easydl x wesken: see how to install the "eye of AI" in bearing quality inspection
The Agile Manifesto has four values and twelve principles
Greedy - 455. Distribute cookies
.Net CLR GC 动态加载短暂堆阈值的计算及阈值超量的计算
《敏捷宣言》四大价值观,十二大原则
剑指offer 正则表达式匹配
How to assemble a registry
Leetcode 0137. number II that appears only once
Leetcode 50 day question brushing plan (day 2 - the longest substring without repeated characters 10.00-12.00)
Download and configuration of irrklang audio library
openssl
2020美亚个人赛复盘
Kindergarten system based on SSM
LeetCode 0139. 单词拆分
Sword finger offer regular expression matching
俄语翻译的就业前景怎样 如何做好俄语翻译工作
SSH based online mall
BulletGraph(子弹图、项目符号图)
隐私计算基础组件系列-混淆电路
8.1 Diffie Hellman key exchange