週報------FMC接口的移植、LED驅動

暱稱:橋                    時間:2014年10月17日 21:36:23
本週已完成:<pre name="code" class="csharp">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   文件中加入幾個端口:
代碼如下</p><p></p><pre name="code" class="cpp">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<span style="color:#ff0000;"> LED = slv_reg0[7:0];</span>


紅色部分應該改爲: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    <span style="color:#ff0000;"> LED                                : out std_logic_vector(7 downto 0);</span>
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# 


對應燈就會亮起。。。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章