EDK 14.1 Zynq-7000  – 如何为第二个CPU内核创建存根?-Xilinx-AMD论坛-FPGA CPLD-ChipDebug

EDK 14.1 Zynq-7000 – 如何为第二个CPU内核创建存根?

描述

如何为第二个CPU核心创建存根?

附加的tcl脚本(stub.tcl)为第二个CPU核心创建存根。第二个CPU内核执行wfe(等待事件)指令并等待第一个CPU内核唤醒。

如果第一个处理器想要唤醒第二个内核,则只需要在位置0xFFFFFFF0写入所需的pc值并发送sev(发送事件)指令。

如果没有这个,Linux可能无法启动,因为启动ROM在jtag模式下有一个针对芯片rev1的错误。因此,当Linux直接加载到RAM而不从闪存引导时,需要执行此步骤。

以下是第二个CPU核心执行的汇编代码:

0xFFFFFF00:mvn r0,#15
0xFFFFFF04:mov r1
0xFFFFFF08:str r1,[r0]
0xFFFFFF0C:wfe
0xFFFFFF10:ldr r2,[r0]
0xFFFFFF14:cmp r2,r1
0xFFFFFF18:beq 0xc
0xFFFFFF1C:mov pc

附件

相关附件

名称 文件大小 文件类型
stub.tcl 723字节 TCL
请登录后发表评论

    没有回复内容