2014-11-01 3 views
0

Я хочу написать код, который будет загружать имитированный (на OVPsim) процессор Microblaze.Загрузка Microblaze (на OVPsim)

Я построил платформу, которая поистине голая, т.е. Но я не знаком с написанием файлов .S, в отличие от некоторых небольших бит встроенной сборки.

Итак, я хочу, чтобы указать, что мой ассемблер .text участок расположен на физический адрес 0x00000000

В Linux ядре head.S файла, код загрузки предшествуют два макроса:

__HEAD 

и

ENTRY(_start) 

Из того, что я вижу по оглавлению источников ни в MicroBlaze конкретны:

__HEAD 

появляется расшириться до:

.section  ".head.text","ax" 

, и я не могу увидеть, что

ENTRY(_start) 

расширяется, но, похоже, ничего особенного (??)

Любой способен объясните мне, что мне нужно предисловие к моему загрузочному файлу .text?

ответ

1

Необходимо начать с обучения crt0.s (а также других crt*.s файлов) от Xilinx. Эти файлы инициализируют среду выполнения C для автономной, не-Linux-программы, запущенной на MicroBlaze.

В основном эти загрузочные файлы сделать необходимый минимум:

  • предоставить адреса для сброса MicroBlaze, прерывания, векторы исключения, инициализирует;

  • инициализировать стек и другие регистры ABI Xilinx (.bss, .sbss, .rodata);

  • initialize .bss раздел с нулями;

  • вызов функции main().

Для Xilinx 14.3 их местоположение Xilinx/14.3/ISE_DS/EDK/sw/lib/microblaze/src/. Или просто найдите crt0.s над вашей папкой Xilinx или зайдите в Google.

 Смежные вопросы

  • Нет связанных вопросов^_^