Allwinner H3上的多核组装

时间:2017-05-19 02:15:24

标签: assembly arm smp nanopi

我正在使用NanoPi Neo Air,我发现无法在任何其他内核上运行任何代码。我没有使用操作系统。 This example展示了如何在Raspberry Pi上运行多核代码。除了Linux source code之外,我无法找到有关该代码的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]

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

0 个答案:

没有答案