Многоядерная сборка на Allwinner H3
Я использую NanoPi Neo Air и считаю невозможным заставить какой-либо код работать на любом из других ядер. Я не использую ОС. В этом примере показано, как запустить многоядерный код на Raspberry Pi. Я не смог найти никакой информации о NanoPi-эквиваленте этого кода, за исключением исходного кода Linux. Я попытался написать эквивалент функции smp_boot_secondary в сборке ARM, но это не работает.
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]
Я подхожу к этому неправильно?