bsp;wb_ack_o<=!wb_ack_o; end else if(wb_ack_o) wb_ack_o<=0;
endmodule
2》定义mycore中用到的parameters:修改orpsoc-params.v,共3个地方需要修改,如图:
1>修改1
2>修改2-3
3》增加arbiter的slave或者mater接口(本小节是slave):修改arbiter_dbus.v,共13个地方需要修改,如图:
1>修改1
1>修改2
1>修改3
1>修改4
1>修改5
1>修改6-7
1>修改8
1>修改9
1>修改10
1>修改11
1>修改12
1>修改13
4》在顶层module例化这个ipcore:修改orpsoc_top.v,共4个地方需要修改,如图:
1>修改1
1>修改2
1>修改3
1>修改4
自此,可以通过quartusII进行综合,生成orpsoc_top.svf文件,将其burn到FPGA板子里面。此步请参考:
http://blog.csdn.net/rill_zhen/article/details/8535317
http://blog.csdn.net/rill_zhen/article/details/8558463
21.4 driver 有了硬件电路,想让她工作,还要编写她的driver才行:ip_mkg.c ip_mkg.h Makefile
1》ip_mkg.c
[html] view plaincopyprint? 01./* 02.* 03.* rill mkg driver 04.* 05.*/ 06.#include <linux/vmalloc.h> 07.#include <linux/slab.h> 08. 09.#include <linux/kernel.h> 10.#include <linux/module.h> 11.#include <linux/fs.h> 12.#include <asm/uaccess.h> /* get_user and put_user */ 13.//#include <linux/clk.h> 14.//#include <linux/ioport.h> 15.#include <asm/io.h> /*ioremap*/ 16.#include <linux/platform_device.h> /*cleanup_module*/ 17. 18.#include "ip_mkg.h" 19. 20. 21.void __iomem *g_mkg_mem_base = NULL; 22. 23.static int device_open(struct inode *inode, struct file *file) 24.{ 25. g_mkg_mem_base = ioremap(MKG_MEM_BASE,MKG_MEM_LEN); 26. if(NULL == g_mkg_mem_base) 27. { 28. printk(KERN_ERR "mkg open ioremap error!\n"); 29. return -1; 30. } 31. else 32. { 33. printk("mkg ioremap addr:%d!\n",(int)g_mkg_m 上一页 [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] ... 下一页 >>
|