我一直在使用Petalinux在Zynq芯片上开发一个系统。有一件事对我来说仍然是一个谜,那就是从petalinux向芯片的逻辑侧发出重置的方法。在Vivado中,当添加内存映射外设时,会自动插入处理器复位模块,并将复位连接到FCLK_ARESETx_N引脚。有没有办法从用户空间驱动这个重置?我可以很高兴地从内存映射模块控制逻辑重置,但我对此一直很好奇。
发布于 2016-01-29 20:16:30
在this commit中,slcr.c中曾经有一个sysfs接口就是为了这个目的,但它被删除了。删除的原因是“不应该使用外围设备的重置控件,因为设备驱动程序控制外围设备”……
此时,您可以通过向/sys/class/xslcr_reset/fpgax_out/reset写入1来断言FCLK_ARESETx_N信号。
如果您仍然想使用来自用户空间的复位信号,您可以使用devmem命令(或mmap等)手动与SLCR寄存器通信。对我来说,合适的寄存器是0xf8000240。这来自于..。
来自.dts的
。
第n位将控制第n个复位信号。要在用户空间的所有行上重置,请使用:
devmem 0xf8000240 32 0xf #Raise reset
devmem 0xf8000240 32 0x0 #Lower reset希望这能有所帮助!
https://stackoverflow.com/questions/33909806
复制相似问题