-
Постов
52 -
Зарегистрирован
-
Посещение
-
Осреднение
Dvorkin ответил whale тема в Программирование
Зачем вы на каждой итерации проверяете флаг? Быстрее будет if(Flag_3x3) {for() } -
Как компилятор ищет заголовочные файлы?
Dvorkin ответил juvf тема в Программирование
На сайте https://elixir.bootlin.com/linux/v4.14/source выбираете версию ядра и ищете timeval (в поле поиска Search Identifier). Или открываете файл mxc.c и, кликнув по #include "time.h", медитируете до просветления. -
"break to out" from for/switch
Dvorkin ответил sunjob тема в Программирование
Ну, если за год никто не предложил разумного решения - значит, задача чрезвычайно трудна, нельзя было оставить без ответа 😀 -
"break to out" from for/switch
Dvorkin ответил sunjob тема в Программирование
Здесь или goto или ввести булевский флаг выхода из цикла: bool fl_exit=false; for(int i=0; (i<N) && !fl_exit; i++) {switch(i) {case 0: break; case 1: break; case 10: fl_exit=true; break; }//switch }//for -
Да книжек-то много, кому какая нравится... Посмотри в истории браузера, за месяц история ссылок должна же остаться.
-
Модули и так грузятся вместе с ядром, т.к. они часть ядра. А скрипты /etc/rcS уже потом. Вроде в /lib/modules есть modules.order, он и определяет порядок загрузки модулей. Но в разных ОС может быть по-другому, конечно.
-
Можно писать в fifo, а под screen в именованной сессии (screen -mdUS my_log) запустить скрипт, который печатает прочитанное из fifo, что-то наподобие: tail < fifo Тогда, переключившись в эту сессию (screen -rdU my_log), можно читать ваш лог.
-
Да, в Zynq нет ресурсов, а драйвер на компе должен же знать.
-
В device tree описываются устройства, которые обслуживают драйвера ОС. И неважно, где эти устройства, ведь у каждого есть адрес и прочие ресурсы.
-
Так я не делал, ничего сказать не могу. Xilinx SDK генерил не совсем правильно dt, а с деревом от petalinux проблем никогда не было.
-
device tree чем генерирован? В нем address-cells=3, а reg явно формата address-cells=1. То же и к прерываниям относится, и номера прерываний странные - с 1 по 4. petalinux, например, device-tree правильно делает обычно.
-
В таких случаях лучше использовать Userspace I/O (uio). Описываете устройство в дереве устройств: my_dev0: @43C40000 { compatible = "generic-uio","uio"; reg = <0x43C40000 0x1000>; }; Оно отображается в sysfs: > ls /sys/class/uio uio0 uio1 uio2 uio3 uio4 uio5 Найти его можно по имени: > cat /sys/class/uio/uio4/name my_dev Открываете /dev/uio4 один раз, ожидание прерывания в read(). Подробнее в https://www.kernel.org/doc/html/v4.12/driver-api/uio-howto.html#waiting-for-interrupts Надо включить в bootargs строку uio_pdrv_genirq.of_id=generic-uio
-
Данные в ПЛИС не надо накапливать, передавайте их по мере поступления. Принятые 64-битные слова пишутся в FIFO, если в FIFO есть данные, то TVALID=1, можно передавать по DMA.
-
Есть вектор, все работает. Может, файл у вас не .cpp а .c?
-
Для petalinux 2020.1 применял такой патч ядра (project-spec/meta-user/recipes-kernel/linux/linux-xlnx/xilinx_uartps_patch.patch): Ну, и надо включить патч в project-spec/meta-user/recipes-kernel/linux/linux-xlnx_%.bbappend: SRC_URI_append += " file://xilinx_uartps_patch.patch"