Мало инфы, от задачи зависит. Если аккуратно работать с указателями и размерами, то microblaze и ваше ядро спокойно уживутся в одной памяти при обоих подходах. Выделяете кусок в .heap, делаете с ним что надо, потом ядру своему передаёте указатель на этот кусок и его размер. Чтобы не было коллапса нужно на момент работы вашего ядра с этим куском памяти приостановить все телодвижения с .heap, чтобы исключить порчу данных. Я имею ввиду ситуации, когда менеджер памяти вдруг сделает дефрагментацию и буфер, с которым сейчас работает ваше AXI ядро вдруг куда-то уплывёт. Если есть возможность подождать, то второй вариант просто каноничнее. Если нет, тогда безопаснее класть данные туда, где их точно не испортят.
Сообщение отредактировал Inanity - Nov 1 2015, 22:47
|