Как использовать ассемблер, чтобы написать консоль (или просто как функцию printf ()) в uboot перед настройкой среды C? - PullRequest
0 голосов
/ 23 сентября 2019

Я пытаюсь использовать ассемблер для записи консоли в потоке uboot перед настройкой среды c.Я ссылался на драйвер прошивки UART производителя микросхемы для перевода в сборку в начале процесса загрузки (при перезагрузке).Вопрос 1: работает ли mmio-адрес SOC в начале uboot? Например: #define UART_BASE 0x11000000 в спецификации SOC, могу ли я использовать этот адрес для управления uart?2. где работают эти ассемблерные коды, если для загрузки используется nand?Nand SPL UBOOT для оперативной памяти не в попрошайничестве ...

(эти адреса получены от поставщика SPEC SOC)

_UART_Init_and_write_a_char:


mov r11, #0x00
ldr r12, =0xf1012004
str r11, [r12]


mov r11, #0x80
ldr r12, =0xf101200c
str r11, [r12]


mov r11, #0x87
ldr r12, =0xf1012000
str r11, [r12]


mov r11, #0x0
ldr r12, =0xf1012004
str r11, [r12]


mov r11, #0x3
ldr r12, =0xf101200c
str r11, [r12]



mov r11, #0x7
ldr r12, =0xf1012008
str r11, [r12]

1 Ответ

0 голосов
/ 23 сентября 2019

MMIO - это (аппаратный) ввод-вывод с отображением памяти, поэтому он уже работает.Однако, прежде чем вы сможете писать символы, вам, вероятно, нужно будет правильно настроить регистры для UART.Как правило, они включают настройки UART, такие как, например, скорость передачи данных, управление потоком и т. Д. Вы можете обратиться к справочному руководству по микросхемам, чтобы узнать значения и адреса.

...