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

    

sonycman

Свой
  • Публикаций

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

  • Посещение

Весь контент sonycman


  1. Внешний вид, тормоза - это ещё куда ни шло, но вот когда оно у вас откровенно глючить начнёт, падать и отваливаться - тогда самая веселуха начинается. Добро пожаловать в вивадо 2018.2 :(
  2. SDK постоянно падает без всяких ошибок, работать невозможно. На форуме Xilinx тема с тремя страницами, решения так и нет :( Откатился на 2017.4 - проблемы нет.
  3. Приветствую. Интересует, есть ли разница по нагреву чипа между двухъядерными и одноядерными цинками? Корпус маленький, CLG225. Судя по даташиту разницы по потреблению тока нет, значит, чип будет такой же горячий, как сковородка, одно ядро ARM там или два - без разницы? Может, кому то доводилось сравнивать на практике?
  4. Спасибо! То есть до 50 градусов кристалл не нагревается? Но там крупный чип, а на ArduZynq поменьше, и плата меньше - греться будет, вероятно, сильнее. Рука держит, как я понимаю, где-то до 65 градусов - дальше уже обжигает. И у меня на DE10-Nano Cyclone V SoC греется здорово - даже на холостом ходу, без прошивки кристалл очень теплый, а под линуксом палец уже не держит долго. Да, по поводу одноядерных цинков заметно по даташиту, что они не отличаются по статическому потреблению, кристаллы одинаковые с двухъядерными. Жаль. Вот и думаю - если запустить процессор на минимальной частоте, мегагерц 100-200, с небольшим использованием логики FPGA, может нагрев не превысит 50 градусов?
  5. Ну кто-нибудь, скажите - как нагреваются маленькие цинки (7010 и меньшие)? На холостом ходу, без прошивки - тоже греются сильно? Думаю вот - в маленький непроветриваемый корпус можно установить ZYNQ-7007S без вентилятора, при условии незначительной нагрузки на процессор? Платка типа ArduZynq: PS: может, тему стоит перенести в раздел SoPC?
  6. Кодranges = <0x00000001 0x00020000 0xff220000 0x00000008>, <0x00000001 0x00030000 0xff230000 0x00000100>, <0x00000001 0x00001000 0xff201000 0x00000008>, <0x00000001 0x00005000 0xff205000 0x00000010>, <0x00000001 0x00004000 0xff204000 0x00000010>, <0x00000001 0x00003000 0xff203000 0x00000010>; <0x00000001 0x00010000 0xff210000 0x00000080>; Бросается в глаза точка с запятой в конце предпоследней строки. Наверное, надо исправить на запятую.
  7. Цитата(chirik @ Oct 23 2017, 17:48) То правильно ли я понимаю, что даже если я сделаю свои .dtb их нельзя будет использовать под более свежие версии линукса? Думаю, что неправильно понимаете. Новые версии линукса, как правило, совместимы с софтом, написанным под старые версии. Тем более это должно относится к файлам Device Three. Это, в конце концов, простые текстовые описания, без указания версии ядра.
  8. Мне удобнее всего ручками править .dts файл, добавляя в него нужную периферию. Несложный и хорошо читаемый синтаксис, к примеру: Код            i2c_fpga: i2c_fpga@0x100000000 {                 compatible = "mycore,i2c-master-0.1";                 reg = <0x00000001 0x00000000 0x00000010>;                 interrupt-parent = <&hps_0_arm_gic_0>;                 interrupts = <0 40 4>;                 clocks = <&clk_0>;                 speed-mode = <100000>;             }; в отличие от нечитаемых .xml
  9. Что касается включения мостов ПЛИС, у меня плата DE10-Nano, использую такой u-boot.script: Кодecho Programming FPGA... fatload mmc 0:1 $fpgadata soc_system.rbf; fpga load 0 $fpgadata $filesize; run bridge_enable_handoff; echo Setting Env Variables... setenv fdtimage soc_system.dtb; setenv mmcroot /dev/mmcblk0p2; setenv mmcload 'mmc rescan;${mmcloadcmd} mmc 0:${mmcloadpart} ${loadaddr} ${bootimage};${mmcloadcmd} mmc 0:${mmcloadpart} ${fdtaddr} ${fdtimage};'; setenv mmcboot 'setenv bootargs console=ttyS0,115200 root=${mmcroot} rw rootfstype=ext4 rootwait; bootz ${loadaddr} - ${fdtaddr}'; echo Loading Kernel... #run mmcload; #run mmcboot; U-boot собирал по инструкции Embedded Linux Beginners Guide, раздел Configure and Compile U-Boot. По этому гайду собрал полностью подсистему линукс и работает она без проблем, по крайней мере для моих нужд на данный момент. Мосты активны, sys/class/fpga_bridge/br->state->enabled (ядро 4.1).
  10. Цитата(chirik @ Oct 20 2017, 15:23) но я начинаю думать на socfpga.dtb... Просто возьмите файл .dtb с исправно загружающегося образа SD, для проверки.
  11. Цитата(chirik @ Oct 20 2017, 13:51) Не, с той же SD картой. Тогда смотрите, что изменилось. Под юбутом проверьте область памяти, откуда запускается ядро линукса - точно там лежит файл zImage, или нет? Используйте образ, который исправно грузится прелоадером на epcs. Прогоните тест памяти, могут быть сбои если неправильно настроены параметры в проекте.
  12. Цитата(chirik @ Oct 20 2017, 13:22) Интересно, а почему когда MSEL стояли на загрузку из EPCS, то ядро линукса начинало грузиться? Это когда совсем без SD карты? Значит, в EPCS лежат правильные образы ядра и т.п., а на SD карте у вас что-то не так.
  13. Цитата(RadiatoR @ Oct 20 2017, 09:47) В настройках hps 54 и 53 пины настроены как gpio. Собственно это в голд референсе было изначально. Это дело прошивается в плис, соответственно настраиваются тамошние свзяи (или не настраиваются?). Далее я запускаю baremetal приложение (SD карта вообще не вставлена). Код загружается в 64кб RAM и стартует оттуда. Там уже сбрасывается ресет с гпио и инициализируется ножка на выход. Получается прелоадера нет никакого, т.к. нет сд карты. Я сегодня попробую перенастроить ножку кнопки на выход, ее включить и посмотреть что у нее там будет. Мало ли чего могло произойти с ногой светика, хотя вряд ли. Ну я так и понял, что вы занимаетесь ерундой. Без прелоадера ничего у вас нормально работать не будет.
  14. А что у вас в настройках HPS в квартусе? Нужные пины GPIO настроены верно? Я же выше говорил уже про это: ЦитатаК примеру, пины GPIO настраиваются в свойствах HPS на вкладке Peripheral Pins. Затем генерируете прелоадер с настройками своей системы, и он проведет необходимую низкоуровневую настройку - pinmux, reset manager и т.п. Вы как свое приложение запускаете вообще?
  15. Тогда надо разбираться, почему отсутствует нужная сигнатура в памяти по адресу загрузки образа ядра.
  16. Проверьте, почему образ zimage побился. Вы используете уже готовые файлы прелоадера, юбута и линукса или собирали сами?
  17. Сорри, вы же про включение моста... Приведите полностью текущий скрипт u-boot.scr Судя по логу, прошивка ПЛИС загружается нормально, вот в этом месте: Кодreading soc_system.rbf 7007204 bytes read in 331 ms (20.2 MiB/s) ## Starting application at 0x3FF79584 ... ## Application terminated, rc = 0x0 Если пины bootsel выставлены правильно на загрузку с SD карты, то флеш epcs не должна считываться никоим образом.
  18. Настроить пины надо будет всё равно: Код    // Setup GPIOs     // Reset GPIO module     alt_gpio_init();     ALT_GPIO_CONFIG_RECORD_t gpio_init_pins[] =     {         // HPS_LED         { ALT_GPIO_1BIT_53, ALT_GPIO_PIN_OUTPUT, ALT_GPIO_PIN_LEVEL_TRIG_INT, ALT_GPIO_PIN_ACTIVE_LOW, ALT_GPIO_PIN_NODEBOUNCE, ALT_GPIO_PIN_DATAZERO },         // HPS_KEY         { ALT_GPIO_1BIT_54, ALT_GPIO_PIN_INPUT, ALT_GPIO_PIN_LEVEL_TRIG_INT, ALT_GPIO_PIN_ACTIVE_LOW, ALT_GPIO_PIN_DEBOUNCE, ALT_GPIO_PIN_DATAZERO }     };     status = alt_gpio_group_config(gpio_init_pins, ARRAY_COUNT(gpio_init_pins));     assert(status == ALT_E_SUCCESS); И затем уже можно будет изменять значение на пине функцией alt_gpio_port_data_write
  19. Что значит "в fpga прошивка по умолчанию"? Сгенерируйте свою прошивку и положите её на карту памяти под именем soc_system.rbf, затерев таким образом оригинальную. Скрипт uboot изменять не нужно.
  20. Можно отбросить Yocto и попробовать Buildroot. Я делал сборку по этому гайду. Плата тоже DE10-Nano. Проблем особых не было.
  21. Попробуйте выполнить на хосте: Код$ sudo apt-get install gawk wget git-core diffstat unzip texinfo gcc-multilib \      build-essential chrpath socat cpio python python3 python3-pip python3-pexpect \      xz-utils debianutils iputils-ping Required Packages for the Host Development System
  22. Ну а если проверить, почему компилятор на хост машине даёт ошибку? Попробуйте скомпилировать любой исходник для хоста.
  23. Так от конденсатора хуже не будет для FPGA, у которых нет триггеров шмидта на входах? Кондёр сделает фронты более пологими, что может привести к многократному переключению на входе в момент перехода сигнала через пороговый уровень.
  24. Цитата(Stolbov @ Aug 5 2017, 22:02) Друзья, добрый вечер! Доброго! Да, как уже подсказали, нужен антидребезг. Это либо простой фильтр с достаточным временным периодом (десяток-другой миллисекунд), либо просто считывание состояния кнопки с ещё большим периодом, к примеру - один раз в 100 миллисекунд.
  25. Цитата(Stewart Little @ Jul 28 2017, 13:01) ПМСМ, профессионал первым делом должен знать цифровую схемотехнику. Инструментарий описания тут вторичен. Казалось, что современный инструментарий как раз всё больше уходит от рисования схем. Я за Verilog.