Перейти к содержанию
    

shpongle

Новичок
  • Постов

    4
  • Зарегистрирован

  • Посещение

Репутация

0 Обычный
  1. После tcp_write надо сделать tcp_output, чтобы отправить данные. Следующую порцию можно отправить таким же образом, но лучше через функцию sent_callback, которая привязывается через функцию tcp_sent. Функция sent_callback вызывается всякий раз, когда приходит подтверждение данных и освобождается память в tcp_sndbuf. Условие if (tcp_sndbuf(tpcb) > p->len) не внятное, что программа будет делать? Инициировать передачу лучше в основной программе, в функции main. А в функции recv_callback устанавливать флаг запроса на передачу/чтение.
  2. В линкер скрипте много полей: .text .init .fini ... .bss .heap .stack Как я понимаю, размер каждой области памяти известен после сборки проетка. В моем случае 946560 байт и так как .heap и .stack идут после .bss, то их адрес и размер 946560+40К+40К, остальная память будет не доступна для проца и я могу писать и читать в нее напрямую. Вот зачем мне надо знать где кончается .heap и .stack. Подскажит где можно прочитать подробнее про память Microblaze?
  3. Спасибо за информацию. Мне нужно сохранить в память 10МБ данных, полученных по USB или ETH, после чего я буду их вычитывать своим ядром нонстоп. Где можно посмотреть адрес и размер .heap секции? Если открыть линкер скрипт, то в нем написано Heap size 0xA000, это значит то под кучу выделено 40960 байт? Как узнать с какого адреса начинается секция .heap? MEMORY { microblaze_0_local_memory_ilmb_bram_if_cntlr_microblaze_0_local_memory_dlmb_bram _if_cntlr : ORIGIN = 0x00000050, LENGTH = 0x00007FB0 mig_7series_0 : ORIGIN = 0x80000000, LENGTH = 0x40000000 } ELF файл: text data bss dec hex filename 190500 2276 753784 946560 e7180 bsp.elf
  4. Здравствуйте. Делаю проект (707 плата) в котором есть процессор Microblaze. Программа к процессору большая и линкер складывает ее в память DDR. Мне необходимо использовать память DDR для временного хранения информации. Как правильно это сделать? 1. Я могу использовать для этого прямой доступ к памяти из процессора и писать по определенному адресу, после чего читать из него при помощи своего ядра по AXI. 2. Я могу вызвать функцию malloc выделить кусок памяти и сохранить там информацию, после чего считать данные при помощи своего ядра по AXI. Но, насколько я знаю, этой функцией пользоваться не желательно. В первом случае, как я понимаю, я могу перезаписать данные относящиеся к программе Microblaze, во втором случае такого не должно быть. Поправьте если ошибаюсь.
×
×
  • Создать...