完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我正在使用 CY8CKIT-148 (PSoC CY8C4147AZI-S475),并且我正在尝试在不使用DFU库的情况下使固件更新正常工作。 唯一的区别是我没有使用 DFU 协议。下载应用程序可以正常工作,我正在使用 SHA256 哈希来验证写入 Flash 的图像。但是,当我在 ram common 中设置应用程序编号后重置系统时,应用程序无法启动引导加载程序。
有几个问题: 1) 处理器如何知道 APP 1 在闪存中从哪里开始? 我知道闪存末尾有 DFU 元数据 (0x0001Fa00) 确实包含这些信息,但是处理器会使用这些信息吗? 2) 使用设备固件更新主机工具 2.0 加载.cyacd2 时 文件,应用程序的起始地址和 len 由 @APP_INFO 行标识。 我假设这是写入闪存元数据的。 这是对的吗? |
|
相关推荐
2个回答
|
|
没有在 cy_onResetUser () 中包含必要的代码
|
|
|
|
应用程序无法启动可能是由于以下原因:
1) 处理器如何知道应用程序在闪存中的位置? 处理器不会直接使用DFU元数据来确定应用程序在闪存中的位置。您需要在固件中显式地告诉处理器应用程序的起始位置。您可以在固件中定义一个常量,以存储应用程序在闪存中的起始地址,并在重置后告知处理器。例如,您可以在bootloader中使用一个全局变量来存储应用程序的起始地址,然后在重置后从这个全局变量中读取应用程序的地址,并跳转到该位置执行应用程序。 2) 使用设备固件更新主机工具2.0加载.cyacd2文件时出现问题。 加载.cyacd2文件时,可能发生以下问题: a) 文件格式错误:确保您的固件文件以正确的格式保存,并且能够被设备固件更新主机工具正确解析。 b) 通信错误:检查你的连接,确保设备正确连接到主机,并且在加载固件时没有通信故障。 如果应用程序无法启动,可以进行以下调试步骤: 1) 检查应用程序的起始地址是否正确设置,并且在重置后可以正确读取。 2) 检查固件文件的格式是否正确,以及加载固件时是否出现通信问题。 3) 使用调试工具,如PSoC Creator或JTAG调试器,检查应用程序的执行和跳转是否正常。 注意:如果您不使用DFU库来进行固件更新,您需要自己实现一个类似的功能,以正确处理固件更新和应用程序的跳转。这可能涉及到解析固件文件、验证哈希校验和、在重置后加载和跳转到应用程序等步骤。确保您正确理解相关概念和实现细节,以确保固件更新过程和应用程序的正确执行。 |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-初识设备树之Makefile修改
710 浏览 0 评论
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-初识设备树之设备组织架构
1617 浏览 0 评论
1092 浏览 0 评论
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-初识设备树之设备树组成和结构
1326 浏览 0 评论
【敏矽微ME32G070开发板免费体验】点亮WS2812B灯板
1783 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
12172 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-1-13 22:44 , Processed in 0.651767 second(s), Total 77, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (威廉希尔官方网站 图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号