BÀI THÍ NGHIỆM SỐ 5: LẬP TRÌNH CHO NIOS II SỬ DỤNG NGÔN NGỮ C

Một phần của tài liệu thực hiện các ứng dụng nhúng cơ bản trên board altera de2 115 (Trang 78 - 85)

NGỮ C

Mục đích:

 Hướng dẫn cách tạo và lập trình cho board DE2-115 sử dụng ngôn ngữ C.

Yêu cầu:

 Tạo một hệ thống gồm: CPU, RAM, JTAG UART, System ID, Switches (PIO), LEDs (PIO).

 Sử dụng gói phần mềm Nios II Software Builder Tool for Eclipse để viết chương trình ứng dụng bằng ngôn ngữ C cho hệ thống.

68

3.5.1 Sơ đồ hệ thống

3.5.2 Các bước thực hiện và kết quả

Tạo hệ thống phần cứng trong QSys:

Sau khi thực hiện tạo một project mới trên phần mềm Quartus II 11.0 với chip Cyclone IV EP4CE115F29C7, tạo một hệ thống QSYS mới với tên là nios_sys.

a) Tạo các thành phần của hệ thống QSYS này bao gồm: CPU (Nios II Processor), RAM (On-chip Memory), JTAG_UART, System ID, PIO.

 CPU (Nios II Processor):là bộ nhớ trung tâm, điều khiển hoạt động của hệ thống, chọn cấu hình của Nios II Processor là Nios II/s và cấp độ JTAG Debug Module ở level 1.

 RAM (Onchip Memory): cấu hình bộ nhớ là 32k.

 Giao thứ PIO được sử dụng 2 lần để thiết kế Switches (ngõ vào 8 bit) và LEDs (ngõ ra 8 bit) sẽ hiển thị trên LED xanh.

 JTAG_UART: dung để kết nối PC với Board DE2-115, các thông số trong cửa sổ này được để mặc định.

Nios II Processor JTAG Debug Module JTAG UART Interface

Avalon Switch fabric

On-chip Memory System ID CYCLONE IV E FPGA CHIP Host Computer USB-Blaster Interface Reset_n Clock Switches parallel input interface LEDs parallel output interface SW7 SW0 LEDG7 LEDG0 Hình 3.47 Sơ đồ khối hệ thống ứng dụng

69

 System ID: Dùng để xác định cấu hình phần cứng, các thông số trong cửa sổ cũng được để mặc định.

b)Sau đó kết nối các thành phần đã thiết kế với nhau trong cửa sổ QSys ở cột “Connections”.

 Kết nối các thành phần đã tạo với nguồn xung clock input và output đã tạo.

 Kết nối Avalon memory mapped slave với Avalon memory mapped trong Onchip_memory.

 Mở CPU (Nios II Processor) và thay đổi reset vector và exception vector thành onchip_memory.s1 trong tab Core Nios II.

c) Trong cửa sổ QSys ở cột “Export” ở thành phần được tạo ra từ PIO như Switches và LEDs nhấp vào “Click to export” để kết nối với các thành phần bên ngoài ( kết nối với các thành phần trên board DE2-115.

d)Ở cột IRQ kết nối IRQ 31 với Avalon Mapped Slave trong jtag_uart để tạo ưu tiên ngắt.

e) Đặt địa chỉ nền cho hệ thống bằng cách vào System/ Auto- Assign Base Addresses.

f) Lưu lại hệ thống với tên nios.

g)Hoàn tất việc tạo phần cứng bằng cách nhấp vào Gernerate.

Hệ thống QSys ở bài thí nghiệm này kết quả sẽ như hình sau: (adsbygoogle = window.adsbygoogle || []).push({});

70

Viết chương trình ứng dụng cho hệ thống phần cứng bằng phần mềm Nios II Software Build Tool for Eclipse:

Trong Workspace chọn Browse dẫn đến thư mục chứa project là Lab7, tạo thêm thư mục software trong Lab7 để làm workspace như hình sau rồi click OK.

Hình 3.49 Giao diện Workspace Launcher

Trong Nios II – Eclipse vào File > New > Nios II Application and BSP

from Template để tạo project mới.

Hình 3.50 Giao diện tạo project mới

Xuất hiện cửa sổ Nios II Application and BSP from Template:

 Trong mục “SOPC Information File name” chọn đường dẫn đến file nios.sopcinfo chứa thông tin phần cứng hệ thống đã được tạo ra trước đó.  Đặt tên cho project (Lab7) trong Project name ở mục Application

project.

 Trong Templates của mục Project template chọn project mẫu là Hello

World Small.

71

Hình 3.51 Cửa sổ Nios II Application and BSP for Eclipse

Nhấp chuột phải vào Lab7_bsp[nios] chọn Properties > Nios II BSP Properties, thiết lập các thông số như hình sau rồi chọn Apply > OK.

72

Trở lại thư mục Lab7, vào file hello_world_small.c và đánh đoạn code sau vào để thay thế cho chương trình có sẵn.

#include <stdio.h> #include <system.h> #include <io.h> int main() { int status; printf ("Beginning.\n"); while (1) { status = IORD_8DIRECT (0x00011000, 0x0); IOWR_8DIRECT (0x00011010, 0x0, status); } return 0; }

Nhấp chuột phải vào thư mục Lab7 ấn Build Project. Để tiến hành biên dịch chương trình, nhấp phải chuột vào Lab7 > Run As > Run Configurations…

73

Hình 3.54 Giao diện cài đặt New_configuration

Cửa sổ Run Configuration xuất hiện, nhấp đúp vào Nios II Hardware để tạo New_configurations, chọn tab Target Connection, mục System ID Check

chọn Ignore mismatched system IDIgnore mismatched system timestamp

tiếp theo chọn ApplyRun để nạp chương trình ứng dụng xuống phần cứng (Hình 3.55)

Kết quả của chương trình là hiển thị chuỗi ký tự “Beginning” trong cửa sổ Nios II Console.

74

CHƯƠNG 4: KẾT LUẬN

Một phần của tài liệu thực hiện các ứng dụng nhúng cơ bản trên board altera de2 115 (Trang 78 - 85)