周报------FMC接口的移植、LED驱动

昵称:桥                    时间:2014年10月17日 21:36:23
本周已完成:
LED驱动从FPGA到Linux
 
  
本周未完成的任务: AD模块的FMC接口IP核的移植生成*.bit的硬件配置信息文件下周计划:
把本周未完成的任务做完,进一步熟悉驱动。。
关键技术说明
主要根据《Embedded LinuxHands-on Tutorial -- ZedBoard》这篇文档进行的.
里面的错误有:1、第1-17 步,要在xps_proj/pcores/myled_v1_00_a/hdl/verilog/user_logic.v   文件中加入几个端口:
代码如下

54 module user_logic
55 (
56 // -- ADD USER PORTS BELOW THIS LINE ------------------
57 // --USER ports added here
58 LED,
59 // -- ADD USER PORTS ABOVE THIS LINE ------------------
...
74 );
...
86 // -- ADD USER PORTS BELOW THIS LINE -----------------
87 // --USER ports added here
88 output [7 : 0] LED;
89 // -- ADD USER PORTS ABOVE THIS LINE -----------------
...
120 // USER logic implementation added here
121 LED = slv_reg0[7:0];


红色部分应该改为:assign LED = slv_reg0[7:0];


在修改myled.v 文件要多加入一句在268行左右加一条

------------------------------------------
 2 -- Component declaration for verilog user logic
 3 ------------------------------------------
 4 component user_logic is
 5   generic
 6   (
 7     -- ADD USER GENERICS BELOW THIS LINE ---------------
 8     --USER generics added here
 9     -- ADD USER GENERICS ABOVE THIS LINE ---------------
10 
11     -- DO NOT EDIT BELOW THIS LINE ---------------------
12     -- Bus protocol parameters, do not add to or delete
13     C_NUM_REG                      : integer              := 1;
14     C_SLV_DWIDTH                   : integer              := 32
15     -- DO NOT EDIT ABOVE THIS LINE ---------------------
16   );
17   port
18   (
19     -- ADD USER PORTS BELOW THIS LINE ------------------
20     LED                                : out std_logic_vector(7 downto 0);
21     -- ADD USER PORTS ABOVE THIS LINE ------------------
22 
23     -- DO NOT EDIT BELOW THIS LINE ---------------------
24     -- Bus protocol ports, do not add to or delete
25     Bus2IP_Clk                     : in  std_logic;
26     Bus2IP_Resetn                  : in  std_logic;
27     Bus2IP_Data                    : in  std_logic_vector(C_SLV_DWIDTH-1 downto 0);
28     Bus2IP_BE                      : in  std_logic_vector(C_SLV_DWIDTH/8-1 downto 0);
29     Bus2IP_RdCE                    : in  std_logic_vector(C_NUM_REG-1 downto 0);
30     Bus2IP_WrCE                    : in  std_logic_vector(C_NUM_REG-1 downto 0);
31     IP2Bus_Data                    : out std_logic_vector(C_SLV_DWIDTH-1 downto 0);
32     IP2Bus_RdAck                   : out std_logic;
33     IP2Bus_WrAck                   : out std_logic;
34     IP2Bus_Error                   : out std_logic
35     -- DO NOT EDIT ABOVE THIS LINE ---------------------
36   );
37 end component user_logic;

否则编译不过去提示

 HDLCompiler:806 - "E:/XILINX/ZedBoard_Linux_Design/hw/xps_proj/pcores/myled_v1_00_al/ verilog/user_logic.v" Line 119: Syntax error near "=".            

接这跟文档继续做到挂载myled.ko时提示

root@linaro-ubuntu-desktop:~# mount /dev/mmcblk0p1 /mnt/
root@linaro-ubuntu-desktop:~# cd /mnt/
root@linaro-ubuntu-desktop:/mnt# ls
BOOT.BIN        led_test.sh   logo.bin  oled_test.sh
devicetree.dtb  led_test.sh~  myled.ko  zImage
root@linaro-ubuntu-desktop:/mnt# insmod myled.ko 
insmod: error inserting 'myled.ko': -1 Invalid module format

到这里感觉可能是内核源码的问题i。。。。只能明天继续

最后真是内核源码的问题,最后重新下载 了V3.6版的源码重新编译的Zimage文件和设备数文件,

root@linaro-ubuntu-desktop:/mnt# insmod myled.ko 
root@linaro-ubuntu-desktop:/mnt# echo 0x0f > /proc/m
meminfo  misc     modules  mounts   mtd      myled    
root@linaro-ubuntu-desktop:/mnt# echo 0x0f > /proc/m
meminfo  misc     modules  mounts   mtd      myled    
root@linaro-ubuntu-desktop:/mnt# echo 0x0f > /proc/myled 
root@linaro-ubuntu-desktop:/mnt# echo 0xaa > /proc/myled   
root@linaro-ubuntu-desktop:/mnt# ^C
root@linaro-ubuntu-desktop:/mnt# 


对应灯就会亮起。。。



你可能感兴趣的:(zedboard)