完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
如果 ROM CODE 在 BOOT_MODE 寄存器中看到“0xFF”,那么它将不会继续进入 TF-A,而是进入闪烁模式。
还提到了波纹管: “Linux 内核可以通过写入 BOOT_MODE 寄存器来强制重启模式。 此写入是通过“reboot”Linux 命令完成的, 这是通过设备树中兼容的“syscon-reboot-mode”配置的。 如果可能的话,我想要实现/理解的是运行 Linux 用户空间命令以将 0xFF 写入 BOOT_MODE 并重新启动系统。 我找不到办法做到这一点... 另外,只是为了确保,如果我能够实现上述目标,设备会启动到 DFU 模式吗? 一些背景:
|
|
相关推荐
1个回答
|
|
您非常了解 TAMP_REG[20] 别名 BOOT_MODE 的行为。如果此寄存器备份中的值是 0xFF,您将在下次重新启动时以串行模式启动。
是的,这可以在 linux 用户空间上下文中修改此寄存器。为了方便地测试它,我建议你在你的板上安装devmem2 此维基页面将为您提供帮助。 然后这里的步骤: I - 找到 TAMP_REG[20] 的地址进行修改
由于 TAMP 寄存器的基地址为 0x5C00A000(第 157 页): 备份寄存器TAMP_REG[20]的地址为:
来自文件:arch/arm/include/asm/arch/stm32.h
必须启用寄存器 RCC_MP_APB5ENSETR 的位 8。您可以在 refman 的第 831 页找到此信息: 默认情况下,这通常是生态系统 v3.1 的情况,但您可以使用 devmem2 验证 bit8 的值:
如参考手册第 2512 页所述,这些寄存器受两个寄存器的写保护。 通过 DBP: 和 BKPWDPROT: 我使用生态系统 v3.1 的 linux 5.10.61 在 stm32mp157C-DK2 上进行了测试,默认情况下这些寄存器允许编辑 TAMP_REG 20。 IV - 在 TAMP_REG[20] 寄存器中写入 0xFF 现在你确定一切正常,你可以在寄存器中写入值:
V - 重启你的开发板,你必须处于串行启动模式 只需键入“重启”。 开发板必须重新启动,如果拔下 USB 电缆,您将看到 LD6 呈红色闪烁,这意味着您处于串行启动模式。 要返回 SD 卡模式,您只需再次重启开发板(例如使用重置按钮)。 -------------------------- 关于 u-boot 的第二个问题:
你可以在“abortboot”函数中读到这个命令的代码(文件:common/autoboot.c),如果bootdelay值为0,你不能中止自动引导:
|
|
|
|
只有小组成员才能发言,加入小组>>
请教:在使用UDE STK时,单片机使用SPC560D30L1,在配置文件怎么设置或选择?里面只有SPC560D40的选项
2644 浏览 1 评论
3209 浏览 1 评论
请问是否有通过UART连接的两个微处理器之间实现双向值交换的方法?
1784 浏览 1 评论
3613 浏览 6 评论
5990 浏览 21 评论
940浏览 4评论
1317浏览 4评论
在Linux上安装Atollic TRUEStudio的步骤有哪些呢?
585浏览 3评论
使用DMA激活某些外设会以导致外设无法工作的方式生成代码是怎么回事
1304浏览 3评论
1362浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-25 22:20 , Processed in 1.026788 second(s), Total 48, Slave 41 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号