0

我正在使用 NanoPi Neo Air,我发现无法让任何代码在任何其他内核上运行。我没有使用操作系统。这个例子展示了如何让多核代码在 Raspberry Pi 上运行。但是,除了Linux 源代码之外,我还没有找到任何关于 NanoPi 等效代码的信息。我试图在 ARM 程序集中编写一个等效的 smp_boot_secondary 函数,但这不起作用。

LDR  r0, =multicore_start @ Func ptr
MOVW r11, #0x1DA4 @ Set ptr
MOVT r11, #0x01F0
STR  r0, [r11]

MOVW r1, #0x1C80
MOVT r1, #0x01F0
MOV  r11, #0      @ Reset core
STR  r11, [r1]

MOVW r2, #0x0003 @ Mask to reset L1 for CORE1
MOVT r2, #0x0000

MOVW r11, #0x1D84 @ Turn off L1
MOVT r11, #0x01F0
LDR  r10, [r11]
BIC  r10, r10, r2
STR  r10, [r11]

MOVW r11, #0x1500 @ Clear power off
MOVT r11, #0x01F0
LDR  r10, [r11]
BIC  r10, r10, r2
STR  r10, [r11]

MOVW r11, #0x1C80
MOVT r11, #0x01F0
MOV r11, #3       @ Power up the core
STR r11, [r1]

我是以错误的方式接近这个吗?

4

0 回答 0