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

Alex77

Участник
  • Постов

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

  • Посещение

  • Победитель дней

    1

Сообщения, опубликованные Alex77


  1. Да я честно говоря не знаю как линкскрипты писать. Все настройки по умолчанию стоят.

     

    Попытался использовать динамическое выделение памяти:

     

    u8 *DataBuf;

    DataBuf = (u8 *)malloc(1500 * sizeof(u8));

    if(DataBuf == NULL) XGpio_DiscreteSet(&Gpio0, GPIO_0_CHANNEL1, 0x07);

     

    память не выделилась. Указатель нулевой возвращается. Да чтож такое. Нет в жизни счастья!

     

    Видимо линкскрипт в этом окне надо править. Вопрос что и где?

    1) Вы я так вижу "не программист" в принципе. :05:

    2) ISE/EDK которой версии (вер 9 ???)? Не приципиально - но всё же лучше пользоваться более свежей верией (вер 13.4).

    3) функция malloc() берёт память из heap, а его размер по умолчанию гораздо меньше чем Вам надо. Подробности в документации.

    4) Так же не понятен вид массивов: глобальное или локальное размещение. Требуется полный текст исходников.

  2. Доброго времени суток. Интересует вопрос. Как изменить настройки XST для какого-либо модуля в проекте Xilinx EDK (к примеру моудля созданного руками)? При сборке в прокте появляется папка synthesis, где лежат .scr файлы для каждого модуля. Интересуется каким образом он их генерирует и можно ли как-нибудь изменить их. Руками естественно нельзя, ибо после того как поменял руками и пытаемся собрать проект, он их перезаписывает.

    Заранее спасибо за ответ.

    Никогда не задавался этим вопросом.

    Если очень "припёрло" делайте проект в ISE, а в EDK подпроект.

  3. Доброго времени.

    где в Eclipse можео увидеть размер кода и даных занимаемых написанной программой?

    Заранее благодарю...

     

    В окошке CONSOLE в Eclipse по окончанию компиляции.

     

    Finished building target: test_rom.elf

    ' '

    Invoking: MicroBlaze Print Size

    mb-size test_rom.elf |tee "test_rom.elf.size"

    text data bss dec hex filename

    3710 456 2090 6256 1870 test_rom.elf

    Finished building: test_rom.elf.size

  4. т.е и константы и массивы и статические и динамические переменные размещаются кто куда? Или всё же за их размещением кто-то следит и прежде они группируются?

     

    понял

     

    Не, это понятно) Еще раз повторюсь размеры не пользовательских, а те что автоматом генерит bsp, секций задаются где то?

    Повторяю:

    1) Память (ОЗУ/SDRAM/FLASH итд) не может иметь "несколько секций" - это всего лишь место где размещается информация.

    Уточняю:

    3) Линковщик (в частности ld из gcc) размещает "секции" так как задано в "linker script"

    Как пример (первое что попалось в гугле)

    http://www.bravegnu.org/gnu-eprog/lds.html

    Более полно надо смотреть на сайте gcc + сайте поставщика порта gcc.

    PS А чем собственно секция .bss отличается от .text в плане размещения в адресном пространстве ?

  5. Привет Всем!

    известно что память имеет несколько секций(.text, rodata и т.д). Каким образом можно управлять их размещением и размерами? Есть ли способ?

    Заранее благодарю

    1) Память не может иметь несколько секций. :wacko:

    2) Секции есть в *.elf (или *.exe), который в последствии отображается на память.

    3) "управлять" можно с помощью линковщика.

  6. obj/prj/Font.o(.sdata+0x0): multiple definition of `Font_name_1'

    obj/Font.o(.sdata+0x0): first defined here

    obj/prj/Font.o(.rodata+0x0): multiple definition of `L10447'

    obj/Font.o(.rodata+0x0): first defined here

    obj/prj/Font.o(.sdata+0x8): multiple definition of `Font_name'

    obj/Font.o(.sdata+0x8): first defined here

    obj/prj/Font.o(.rodata+0x3e0): multiple definition of `L13318'

    obj/Font.o(.rodata+0x3e0): first defined here

    я так понимаю памяти мало? Но массив то маленький. Как решить проблему? Возможно ли увеличить размеры секций? Если да то как?

    Английский выучить. ;-)

    У Вас множественное определение переменных ( см. файлы *.h ) или двойное использование файла Font.o при линковке.

  7. Тема подвисла в воздухе. Хочу добавить пару строк как начинающий разработчик.

    В этой теме большое количество реплик и ответов высказано опытными ПЛИСоводами и состоявшимися специалистами. "Пути" проектирования у таких спецов давно отработаны, каждый привык к определенному софту, к определенным семействам и необходмые операции и этапы проектирования они часто делают по-разному ("по-своему"), можно это назвать своего рода "капризами опытных плисоводов" :)

    Любой опыт "мыканья" и поиска будет полезен и неизбжен для начинающего. Altera или Xilinx? - думаю нужно уметь готовить и то и другое, просто торопиться нужно медленно. Удачи всем!

    За альтеру не скажу, а вот за Xilinx:

    Есть плюсы:

    Полный цикл от написания HDL, компиляции, симуляции, отладки в железе реализовано "в единой" среде разработки. те весь необходимый и достаточный софт в наличии. А вот если требуются "изыски"- тогда да - берется сторонний софт.

    В плане лицензии: Дешевле купить ISE (или webISE), чем весь "зоопарк" (ISE + сторонний софт).

  8. У меня к AXI шине подключена корка, которая имеет внутренню память и, соответственно, диапазон адресного пространства для чтения/записи. При включенном Dcache запись/чтение из MicroBlaze хорошо работает, но приходится делать постоянный Flush кэша, чтобы заставить MicroBlaze обновить данные в корке. После исключения диапазона адресного пространства корки из кэширования и попытке чтения/записи обращений к корке по AXI шине нет. Из окошка Memory в Eclipse (среда SDK) по всему адресному пространству - нули и попытка записать туда что-либо ни к чему не приводит. Данные не изменяются, обращений к корке нет.

    EDK проект в студию...

    "Рабочий" и "не рабочий" вариант проекта.

  9. Это, я так понимаю здесь задается? Пробовал так делать - запись в память вообще не проходит. Сейчас заметил чекбокс Use Cache Links for All Memory Accesses. Он меня спасет?

    2YMycuqD.png

    Да - здесь.

    Что значит "Пробовал так делать - запись в память вообще не проходит" ?

     

    Use Cache Links for All Memory Accesses

    Согласно документации - это доступ ко всей памяти по шине XCL/AXI вне зависимости от вкл/выкл кеша процессора (функции типа microblaze_enable_icache(); )

  10. Вы хотите просто включить кэш инструкций или что-то другое? У меня в программе для этого две функции по умолчанию. Работает, никто не жалуется.

        microblaze_invalidate_icache();
        microblaze_enable_icache();

     

    А у меня другая проблема: как отключить кэширование данных для части адресного пространства MicroBlaze. Подскажите, кто знает.

    Никак.

    Надо заранее указывать (еще перед синтезом FPGA) диапазон памяти который будет под кешем работать.

  11. Это из рассылки новостей:

    "introducing the new MicroBlaze™ Micro Controller System (MCS) - now the power of a MicroBlaze-based processing system is available in both ISE® WebPACK and ISE Logic Edition"

     

    Это "CORE GEN" для ISE. Проше говоря: это IP-корка используется для создания SoC (простых систем на базе MicroBlaze) и при этом не требуется EDK.

    PS: Просто я привык к EDK поэтому и пропустил этот момент (в EDK можно создавать любой сложности ситемы).

     

     

    PS:PS:

    Core Summary:

     

    MicroBlaze Micro Controller System (MCS) is a light-weight general purpose micro controller system, based on the MicroBlaze processor. It is primarily intended for simple control applications, where a hardware solution would be less flexible and more difficult to implement. Software development with the Xilinx Software Development Kit (SDK) is supported, including a software driver for the peripherals. Debugging is available either via SDK or directly with the Xilinx Microprocessor Debugger.

     

    The MCS consists of the processor itself, local memory with sizes ranging from 4KB to 64KB, up to 4 Fixed Interval Timers, up to 4 Programmable Interval Timers, up to 4 32-bit General Purpose Output ports, up to 4 32-bit General Purpose Input ports, and an Interrupt Controller with up to 16 external interrupt inputs.

     

  12. Пока для "этого нашего всего" не вышел хоть какой-нибудь DevKit смысл в поддержке "этого всего" в ПО стремится к нулю.

    Что такое DevKit ?

    Демо-плата ? типа sp601 ? только на ZINQ вместо spartan-6 ?

    Так будет в этом году. Вроде бы обещали...

    Компилятор есть. линукс есть. микросхемы вот вот пойдут валом в продажу... Что ещё надо ?

  13. "The Simple MicroBlaze™ Microcontroller (SMM) is a small form-factor 32-bit microcontroller based on the MicroBlaze processor"

     

    Zinq конечно хорошо, но для тех кто смотрит далеко вперед :)

    1) Нету там такого IP.

    Есть только визард (появился в ISE/EDK 13.х) для создания этого SMM из уже имеющихся IP блоков.

    2) Это наше "ВСЁ". Весь мир живёт либо с Intel либо с ARM.... (Остальные 3 % населения пользуются другими СРU)

  14. Как я понял самое вкусное в новой версии это ногодрыгалка на базе микроблейза в IP cores. Как кто-нибудь попробует - отпишитесь, понравилось или нет.

    Что есть такое "ногодрыгалка на базе микроблейза" я не знаю.

    А вот поддержка zinq появилась...

  15. Я полный чайник в этих делах, поэтому, прошу Вас, великие гуру, объяснять (если до этого дойдет) мне как чайнику и не злиться, если я буду задавать глупые вопросы =)

    Проблема следующая. У меня есть ДатаШит на LAN91C111, но я не понимаю что в нем написано в связи с тем, что не могу перевести... Если кто имеет уже переведенную версию этого ДШ, то прошу скинуть мне его! Очень! Буду очень благодарен.

    Есть плата, на которой есть плисина. Она должна общаться по шине ISA с LAN91C111

    Но сама LAN91C111 не реализована пока что на плате...и к 15 ноября я должен уже знать как подключить эту LAN91C111 к шине ISA, чтобы она общалась с ПЛИС. Добрые гуру, прошу Вас, поддайте свету в мое темное царство!

    П.С.: прилагаю к своей мольбе ДШ LAN91C111.pdf

    1) Студент ?

    2) Проще найти человека знающего английский, чем найти перевод давно устаревшего документа.

    3) рядом с ДШ LAN91C111.pdf на сайте производителя есть примеры её использования.

  16. Может еще есть какие нибудь подсказки мне? :crying:

    Описание платы.

    http://www.xilinx.com/support/documentatio..._kits/ug230.pdf

    Разъём USB присутствует на плате, но он предназначен только для программирования FPGA/FLASH. те он НЕ предназначен для "эмуляции" USB-устройства.

    Без паяльника (и доп. микросхемы ?) не получится USB-устройства.

  17. Ну прочитал, а попутно еще узнал что это можно делать, как бы, в iMpact е, хотя на самом деле почему-то не делает.

    Согласно xapp482 надое еще xapp482.exe! гдеж его взять? На официальном сайте не нашел, просто так тоже не валяется.

    Рядом с pdf есть xapp482.zip

    http://www.xilinx.com/support/documentatio...gn_configur.htm

  18. "Для более тяжеловесных программ, в брам помещают загрузчик (bootloader), который вытягивает из флеэшки штатную программу и переписывает в оперативную память."

    - так как это сделать всетаки?

    Прочитать xapp482

  19. А если она не влазит в блочную память, что делать?

    "В трёх литровую банку не налить четыре литра пива"

    Вопрос: Что делать ???

    Ответ: искать бутыль или пить меньше пива.

  20. да, так и есть, но когда полностью прописываю путь не к XIlinx каталогу, он так же не находит файл....ну может это уже местные глюки какие

    поменяйте слеши на другие

    К примеру:

    dow ../soft/obj/demo.bin

    Это последствия линукса.....

×
×
  • Создать...