我正在使用 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]
我是以错误的方式接近这个吗?