打印
[其它产品/技术]

如果SPI启动失败,如何创建可通过USB启动的两阶段启动加载程序?

[复制链接]
395|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
flycamelaaa|  楼主 | 2024-8-12 16:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
------ 开发环境 ------
处理器:CYUSB3064-BZXC
参考资料:FX3BootAppGcc
(该示例展示了如何使用引导 API 实现自定义引导加载程序应用。
支持的启动模式包括 SPI 启动和 USB 启动。 选择 USB 启动时,该应用程序
支持加载和运行完整的固件应用程序;无需通过 USB 设备
重新枚举。 位置: firmware/boot_fw/src)
-------------------------------------------
你好,我想创建一个引导加载程序,在 SPI 启动失败时通过 USB 启动。 如果闪存中的固件不正确,设备应能通过 USB 启动。 我使用 CRC 验证了我的固件。
因此,我首先定义了 USB_BOOT,并将其下载到处理器的 RAM 中,以此来测试参考实现。 我本以为 USB 控制中心会将该设备识别为 "赛普拉斯 FX3 USB 引导加载器设备",但它却显示为 "赛普拉斯 FX3 USB BulkloopExample 设备"。 如何将设备识别为 "赛普拉斯 FX3 USB 引导加载器"? 或者,如何将磁盘映像文件上传到 "赛普拉斯 FX3 USB BulkloopExample 设备"?

使用特权

评论回复
沙发
Candic12e| | 2024-8-23 12:03 | 只看该作者
创建一个可通过USB启动的两阶段启动加载程序涉及多个步骤,包括编写启动代码、配置硬件和准备USB设备

使用特权

评论回复
板凳
Belle1257| | 2024-8-23 13:05 | 只看该作者
确定您的硬件平台和SPI Flash的规格。了解CPU的启动流程和内存映射。编写第一阶段启动加载程序(Bootloader Stage 1):第一阶段代码通常非常小,直接在CPU的启动ROM中运行。主要任务是初始化硬件(如设置堆栈指针、关闭中断等),并加载第二阶段启动加载程序到内存中

使用特权

评论回复
地板
Allison8859| | 2024-8-23 14:09 | 只看该作者
一般需要编写启动加载程序,使用C语言编写,因为代码量更大,需要更好的可读性和可维护性。主要任务是从USB设备加载操作系统内核或进一步的启动加载程序

使用特权

评论回复
5
Emily999| | 2024-8-23 15:11 | 只看该作者
确保CPU和USB控制器支持从USB启动。配置USB控制器,使其能够识别和读取USB设备

使用特权

评论回复
6
Charlene沙| | 2024-8-23 16:15 | 只看该作者
格式化USB设备,创建必要的分区(如FAT32分区)。将第二阶段启动加载程序和操作系统内核文件复制到USB设备中

使用特权

评论回复
7
Annie556| | 2024-8-23 18:10 | 只看该作者
将USB设备插入目标系统。复位系统,观察是否能够从USB启动。使用调试工具(如串口调试)跟踪启动过程,确保每个阶段都能正确执行

使用特权

评论回复
8
B1lanche| | 2024-8-23 19:00 | 只看该作者
如果启动失败,检查硬件配置和启动代码。使用调试工具捕获错误信息,逐步排查问题

使用特权

评论回复
9
Carmen7| | 2024-8-24 09:10 | 只看该作者
不同硬件平台的启动流程和硬件配置可能不同,需要根据具体硬件进行调整。

使用特权

评论回复
10
alxd| | 2024-8-24 10:03 | 只看该作者
使用串口调试、JTAG调试等工具帮助排查问题。

使用特权

评论回复
11
Betty1299| | 2024-8-24 12:21 | 只看该作者
建议参考硬件和操作系统的官方文档,加入相关社区获取帮助。

使用特权

评论回复
12
Amazingxixixi| | 2024-10-30 16:23 | 只看该作者
在应用程序里面首先做校验

使用特权

评论回复
13
小夏天的大西瓜| | 2024-10-31 08:10 | 只看该作者
这个想法非常新颖实用

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

667

主题

2847

帖子

0

粉丝