ZYNQ PL中断PS驱动

ZYNQ linux驱动PL中断PS
虚拟机:Ubuntu 16.04
Vivado:2017.04
Petalinux:2017.04
开发板:黑金7z020
1.Vivado硬件配置
参考:course_s2_ALINX_ZYNQ(AX7Z020_AX7Z010)开发平台SDK应用教程V1.02.pdf->第七章通过BRAM实现PS与PL数据交互
2.关于中断号说明
对于SPI中断,则对应到Linux 的中断标号,为芯片datasheet的中断号 -16。例如中断号为30,则对应的linux 中断号为30-16=14。
对于非 SPI 中断,则对应的 linux 中断标号,为芯片 datasheet 的中断号-32。例如:IRQ_F2P中断,中断号为 61,则对应的 linux 中断号为61-32=29。
3.设备树配置
3.1.vivado/sdk自动生成设备树
Linux4.9.0版本需要从设备树获取硬件中断的中断号,设备树使用设备树生成器自动生成。
下载设备树工具
Ubuntu环境终端输入命令:
##下载设备树工具
git clone https://github.com/Xilinx/device-tree-xlnx.git
##切换版本
cd device-tree-xlnx
git checkout xilinx-v2018.3
还可以从网址添加链接描述直接获得,注意选择版本应与Vivado版本一致。
3.2 SDK配置,生成设备树
参考添加链接描述
pl.dtsi内容为:

/ {
   
	amba_pl: amba_pl {
   
		#address-cells = <1>;
		#size-cells = <1>;
		compatible = "simple-bus";
		ranges ;
		axi_bram_ctrl_0: axi_bram_ctrl@40000000 {
   
			compatible = "xlnx,axi-bram-ctrl-4.0";
			reg = <0x40000000 0x1000>;
			xlnx,bram-addr-width = <0xa>;
			xlnx,bram-inst-mode = "EXTERNAL";
			xlnx,ecc = <0x0>;
			xlnx,ecc-onoff-reset-value = <0x0>;
			xlnx,ecc-type = <0x0>;
			xlnx,fault-inject = <0x0>;
			xlnx,memory-depth = <0x400>;
			xlnx,s-axi-ctrl-addr-width = <0x20>;
			xlnx,s-axi-ctrl-data-width = <0x20>;
			xlnx,s-axi-id-width = <0x1>;
			xlnx,s-axi-supports-narrow-burst = <0x0>;
			xlnx,select-xpm = <0x1>;
			xlnx,single-port-bram = <0x1>;
		};
		pl_bram_ctrl_0: pl_bram_ctrl@43c00000 {
   
			compatible = "xlnx,pl-bram-ctrl-1.0";
			interrupt-parent = <&intc>;
			interrupts = <0 29 4>; 
			reg = <0x43c00
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值