Я разрабатываю систему на чипе Zynq, используя Petalinux. Одна вещь, которая осталась для меня загадкой, - это средство для сброса логической стороны чипа из петалинуса. В Vivado, когда добавляется периферийное устройство с отображением памяти, модуль сброса процессора автоматически вставлен, а сброс связан с выводом FCLK_ARESETx_N. Есть ли способ управлять этим сбросом из пользовательского пространства? Я могу с радостью управлять логическим сбросом из модуля с отображением памяти, но мне было интересно об этом.petalinux issue reset to logic on zynq
ответ
Для этой цели раньше использовался интерфейс sysfs в slcr.c, но он был удален в this commit. Причина удаления потому, что «никогда не следует использовать сброс управления для периферийных устройств, так как устройство драйверы управления периферийными устройствами» ...
В то время вы могли бы утверждать, сигнал FCLK_ARESETx_N путем записи 1 в /sys/class/xslcr_reset/fpgax_out/reset
.
Если вы все еще хотите использовать сигналы сброса из пользовательского пространства, вы можете вручную разговаривать с регистрами SLCR с помощью команды devmem
(или mmap
и т. Д.). Для меня соответствующий регистр находится в 0xf8000240. Это происходит от ...
- SLCR базового адреса из .dts является 0xf8000000
- смещения для FPGA сбрасывается из slcr.c является 0x240
п-й бит будет контролировать п-й сигнал сброса. Для сброса на всех линий из пользовательского пространства, используйте:
devmem 0xf8000240 32 0xf #Raise reset
devmem 0xf8000240 32 0x0 #Lower reset
Надеется, что это помогает!