intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Microblaze Tutorial

Chia sẻ: Nguyen Vinh | Ngày: | Loại File: PDF | Số trang:25

118
lượt xem
13
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Hệ thống nhúng là gì, nó như thế nào, hiện nay người ta thường nói từ "embedded" tức là nhúng. Từ trước đến giờ mình biết bao nhiêu là nhúng, bò nhúng giấm nè, bánh tráng nhúng nước Trảng Bàng nè... còn hệ thống nhúng như thế nào? Những sản phẩm làm ra từ hệ thống nhúng rất quen thuộc trong cuộc sống hằng ngày, ví dụ như cái tủ lạnh, máy giặt, máy điều hòa nhiệt độ đến cả những chiếc điện thoại di động mà mấy em gái thường vòi vĩnh bố mẹ mua cho bằng được, để...

Chủ đề:
Lưu

Nội dung Text: Microblaze Tutorial

  1. Microblaze Tutorial Hệ thống nhúng là gì, nó như thế nào, hiện nay người ta thường nói từ "embedded" tức là nhúng. Từ trước đến giờ mình biết bao nhiêu là nhúng, bò nhúng giấm nè, bánh tráng nhúng nước Trảng Bàng nè... còn hệ thống nhúng như thế nào? Những sản phẩm làm ra từ hệ thống nhúng rất quen thuộc trong cuộc sống hằng ngày, ví dụ như cái tủ lạnh, máy giặt, máy điều hòa nhiệt độ đến cả những chiếc điện thoại di động mà mấy em gái thường vòi vĩnh bố mẹ mua cho bằng được, để mỗi lần chuông điện thoại reng te te như dzế kêu. Những tín năng đó được hiểu đại khái như là kết quả xử lý Midi tạo ra âm thanh từ hệ thống nhúng, và là trái tim của chiếc điện thoại. kamejoko đã nghe nói nhiều về embedded nhưng cũng có lúc mơ hồ và lùng bùng cái lỗ tai. Trong hệ thống nhúng lại chia ra nhiều mảng khác nhau, tùy theo từng ứng dụng cụ thể. Mình muốn ôm tất cả, học luôn nguyên một thể "Tôi muốn ôm cả đất, tôi muốn ôm cả trời, mà sao em ơi, tôi không ôm nổi một con người" hehhe. Thế là mỗi tối kamejoko lại lang thang trên mạng, tìm kiếm lùng sục trên trang google để có thêm nhiều kiến thức. Embedded devices chắc có lẽ được chia ra thành 3 mảng chính, đó là ARM, DSP, FPGA. Cái mà kamejoko muốn đề cập ở đây chính là bộ vi xử lý processor, là trái tim của hệ thống nhúng. Kamejoko đã từng thử qua hệ thống ARM của Phillips, nhưng cũng chỉ dừng lại ở phần firmware mà thôi. Sau nhiều lần đắn đo, để tự học embedded thì cần phải trang bị cho mình những device nào? những kit ARM có sẳn giá tương đối khá cao, nhưng học embedded chỉ chuyên sâu vào firmware thì chưa đủ. Cơ duyên đưa mình đến với FPGA, để có được một kit FPGA thì cũng không khó, vì sản phẩm của Xilinx có nhiều mức giá khác nhau, cũng như có nhiều tiền thì ta có thể chọn được món ăn ngon, còn không thì chọn những nón ăn tàm tạm, nhưng vẫn đảm bảo mình no bụng. Và khi tìm hiểu kamejoko nhận ra một điều: Xillinx có nguồn resource rất lớn. Ý mình nói đến đó là các application notes, và các tool design của Xilinx luôn được update nhanh đến mức chóng mặt.Và kamejoko nghĩ rằng sự lựa chọn FPGA để học embbeded là đúng, vì khi đi sâu vào thiết kế đòi hỏi designer phải am hiểu cả hardware lẫn software. Ôi, lùng bùng lỗ tai quá rồi phải không!!! Microblaze là cái gì??? Nó là một processor, là tên một loại vi xử lý giống như VXL Intel vậy. Nhưng có điều, khi cần một con VXL Intel, anh có thể ra cửa hàng máy tính, bỏ ra vài chục đến
  2. vài trăm USD là có thể mang nó về. Đối với Microblaze, anh không thể ra cửa hàng mua nó mang về được, mà phải dùng tool của xilinx design thành một hệ thống Microbalze hoàn chỉnh. Chi tiết hơn, con chip FPGA của hãng Xilinx sản suất là một khối "rỗng". Nó là mạng của các cổng logic chưa được kết nối với nhau. Công việc của designer là dùng tool của Xilinx kết nối các cổng lại thành mạch điện cụ thể và nó phải chạy theo ý đồ của người thiết kế đặt ra. Cao hơn, một khi có Microblaze là trái tim của hệ thống, cần phải có những thiết bị ngoại vi (IO) đi theo. Cũng như những thiết bị ngọai vi chuột, bàn phím... Xilinx cung cấp cho designer một danh sách các ngoại vi được gọi là IP core cataloge. Designer chỉ việc chọn từng món mà mình thích, mà nhắc đến chọn món thì phải tính đến trả tiền. Tức là trong danh sách IP core đó có loại được khuyến mãi miễn phí (món tráng miệng), và có món phải trả tiền. Thú vị phải không, công việc design của một anh kỹ sư cũng giống công việc đi chợ hằng ngày của các chị em phụ nữ, cũng phải đắn đo xem xét xem giá thành của hệ thống giảm được bao nhiêu trong khi vẫn đảm bảo tính năng mà yêu cầu đặt ra. Còn nếu anh nghèo nhưng có ý tưởng thì có thể tự mình tạo ra IP, không chọn thứ nào trong IP cataloge cả. Cái mà kamejoko sắp trình bày dưới đây. Có người bảo mình tại sao không dám bỏ tiền ra mua những thức ăn ngon mà lại đầu tư vào nhửng thứ vô bổ như vầy, mình chỉ có thể trả lời mình rất "máu" về lĩnh vực này, ngòai ra không có gì cả. Và kamejoko muốn chia sẻ cho những người cũng có "máu" như mình. ---------------------------------------------------------------- ---- Sau đây là các bước thực hiện LCD demo cho microblaze. Tool : EDK 8.2 Demo trên board ML403, tuy nhiên vẫn có thể thay đổi chút ít cho board Spartan3E Starter Hướng dẫn step by step, hình hơi nhiều, thông cảm nhá. Chú ý: Vài bước được thông qua ( để mặc định và ấn nút next) thay vì post hình đầy đủ. ---------------------------------------------------------------- ------ PHAN 1 : Setup hardware ---------------------------------------------------------------- ------ 1> Start XPS 8.2i
  3. 2> Tạo thư mục chứa project 3> Creat new base system
  4. 4> Select Board (chú ý: một số board có nhiều revision khác nhau, nên chọn revison thích hợp) 5> Chọn món ăn tùy vào túi tiền
  5. 6> Creat Custom hardware (lcd port)
  6. Sau khi hoàn tất các bước trên, XPS tạo ra các file có cấu trúc như sau: Phần hardware chứa trong thư mục pcores, bao gồm tên (lcd_port) gắn với version hardware chỉ định (lcd_port_v1_00_a) Phần software chứa trong thư mục drivers (sẽ được trình bày trong phần sau)
  7. 7> Edit custom hardware Sau khi thực hiện xong thao tác creat custom peipheral (dùng bus OPB), XPS tạo ra 2 file source vhdl bao gồm name.vhd và user_logic.vhd chứa trong thư mục vhdl 8> Edit user_logic.vhd goto hàng (khoảng 100) add user port theo hình sau: XPS tạo thanh ghi "slv_reg0" cho truy xuất với customer ip core, trong trường hợp này ta gán cho port xuất lcd goto hàng (khoảng 208-209) add code như hình sau
  8. 9> Edit lcd_port.vhd goto hàng (khoảng 119) add user port theo hình sau: goto hàng (khoảng 388) map port Xong bước creat , edit customer OPB port 10> Import custom hardware Trên tool bar : Hardware -> Creat or import peripheral Đặt tên lcd_port
  9. Chọn yes for overwrite
  10. Check radio cho mục file .pao, browse đến đường dẫn thư mục hardware chứa file này
  11. 11> Add ipcore vào bus OBP Trên tab IP Catalog chọn Project Repository, click chuột phải vào lcd_port chọn add IP Trên mục system assembly view ta thấy custom ip core lcd_port_0 được add vào, lúc này lcd_port_0 chưa thật sự được gắn vào bus OPB, ta thực hiện bước connect vào OPB theo hình sau:
  12. Chọn nút radio của mục port , connection filters chọn all để hiển thị tất cả các đường kết nối. OPB_clk -> sys_clk_s : system clock source lcd_port_pin -> Make external Sau khi kết nối lcd_port_pin với external port, mục trên cùng External Ports xuất hiện đường kết nối lcd_port_0_lcd_port_pin, rename phần tên kết nối phía bên trái để tiện cho việc assign pin constrain. Chọn nút radio address, trong mục size (kích thước vùng nhớ cho ngoại vi) trong drop list chọn 64K, sau đó chọn Generate Addresses, Xillin tự động tính toán các đường địa chỉ và remap lại cho toàn bộ ngoại vi.
  13. Cuối cùng là bước assign constrain pins cho lcd_port, tùy theo kết nối của các board khác nhau ta có các khai báo gán pins khác nhau. Tool -> Hardware -> Generate Bitstream. Đến bước này ta có thể thong thả ngồi uống Coca chờ đợi XPS hoàn tất cho phần hardware.
  14. LCD Firmware Phần trước giới thiệu xong phần import customer hadware, phần này giới thiệu về driver cho LCD. Sau khi import lcd_port vào bus hệ thống, XPS tự động tạo ra thư viện hỗ trợ cho việc phát triển phần mềm. Ngoài ra các file hệ thống cũng được cập nhật. Driver được tạo ra trong đường dẫn : ...drivers/lcd_port_v1_00_a/src/ /lcd_port.c /lcd_port.h /lcd_port_selftest.c /Makefile File lcd_port_selftest.c được tạo ra với mục test sự hoạt động của thanh ghi reg0 (lcd_port), ta có thể tham khảo, sữa chữa tùy vào mục đích xử dụng. Các prototype cho các hàm truy xuất thanh ghi được khai báo trong lcd_port.h Sau đây là các bước tạo project mới dùng công cụ phát triển phần mềm SDK của xilinx. 1> Trên tool bar của XPS: Chọn Software -> Lauch Platform Studio SDK
  15. 2> Trong hộp thoại Application Wizard: Chọn Creat a New SDK Application Project -> Next 3> Trong mục New Project Đặt tên project -> Next
  16. Lấy thông số mặc định Xilinx MicroBlaze Executable -> Next Finish thao tác create new project Sau khi hoàn tất các bước trên xilinx tự động tạo các thư mục và các file trong thư mục có tên project name, và một danh sách các thư viện có liên quan đến microblaze. 4> Tạo Linker Script : Trong mục Navigator, click chuột phải lcd_disp -> Gnenerate Linker Script...
  17. Trong crop down list chọn DDRAM, dùng làm vùng nhớ data , text .... 6> Creat New Source file Click vào biểu tượng C+ trên tool bar
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2