Các tập lệnh trong EDK:

Một phần của tài liệu Nghiên cứu và triển khai hệ thồng nhúng trên kit Spartan-3E (Trang 35 - 40)

XGpio_mSetDatarReg(BaseAddress, Channel, Data) Chức năng:

Xác định thanh ghi dữ liệu của kênh GPIO đã được xác định.

Các thông số:

BaseAddress: chứa địa chỉ nền của thiết bị GPIO.

Channel: bao gồm 2 kênh (1 hoặc 2). Data: giá trị để ghi lên thanh ghi dữ liệu.

XGpio_SetDataDirection(XGpio * InstancePtr, unsigned Channel, u32 DirectionMask)

Chức năng:

Chương 2: Cấu trúc kit SPARTANT-3E, vi điều khiển MICROBLAZE và phần mềm EDK 28

Các thông số:

InstancePtr: là con trỏ chỉ tới ngoại vi đang làm việc.

Channel: bao gồm 2 kênh (1 hoặc 2).

DirectionMask: là một mặt nạ bit, xác định hướng của dữ liệu là hướng vào hay ra, khi các bit được set lên 1 thì đó là ngõ vào, khi các bit được set về 0 thì đó là ngõ ra.

Chú ý:

Nếu hàm này không sử dụng kênh 1, thì phần cứng phải được xây dựng ở chế độ kênh đôi.

XGpio_DiscreteRead(XGpio *InstancePtr, unsigned Channel)

Chức năng:

Đọc dữ liệu tại vị trí con trỏ đang chỉ tới, ở kênh GPIO được xác định.

Các thông số:

InstancePtr: là con trỏ chỉ tới ngoại vi đang làm việc.

Channel: bao gồm 2 kênh (1 hoặc 2).

Chú ý:

Hàm trả về giá trị 32 bits chứa trong thanh ghi mà con trỏ đang chỉ tới.

Nếu hàm này không sử dụng kênh 1, thì phần cứng phải được xây dựng ở chế độ kênh đôi.

XGpio_Initialize(XGpio * InstancePtr, u16 DeviceId)

Chức năng:

Khởi động con trỏ, trỏ tới một thiết bị. Mỗi thiết bị được đặt cho một tên riêng duy nhất.

Thông số:

InstancePtr: là con trỏ chỉ tới một ngoại vi nhất định. Vùng nhớ của con trỏ phải được phân phát bởi người dùng.

DeviceId:là tên riêng duy nhất của thiết bị được đặt bởi người dùng để phân

biệt với các thiết bị khác. Thiết bị này được điều khiển bởi con trỏ.

Chú ý: (adsbygoogle = window.adsbygoogle || []).push({});

Mọi thao tác muốn thực hiện trên thiết bị thì đầu tiên phải khởi động con trỏ, trỏ tới thiết bị đó, nếu không chương trình sẽ báo lỗi.

Chương 2: Cấu trúc kit SPARTANT-3E, vi điều khiển MICROBLAZE và phần mềm EDK 29

Hàm không có gái trị trả về.

XGpio_DiscreteWrite(XGpio * InstancePtr, unsigned Channel, u32 Data)

Chức năng:

Ghi dữ liệu vào vị trí (thiết bị) con trỏ đang chỉ tới,tương ứng với một kênh đã được xác định.

Thông số:

InstancePtr: là con trỏ chỉ tới ngoại vi đang làm việc.

Channel: bao gồm 2 kênh (1 hoặc 2)

Data: giá trị để ghi lên thanh ghi dữ liệu tạ vị trí con trỏ đang trỏ tới.

Chú ý:

Hàm không có gái trị trả về.

Nếu hàm này không sử dụng kênh 1, thì phần cứng phải được xây dựng ở chế độ kênh đôi.

XGpio_Discreteset(XGpio * InstancePtr, unsigned Channel, u32 Mask)

Chức năng:

Định các đầu ra riêng biêt lên mức logic 1, tương ứng với 1 kênh được chon của thiết bị.

Thông số:

InstancePtr: là con trỏ chỉ tới ngoại vi đang làm việc.

Channel: bao gồm 2 kênh (1 hoặc 2)

Mask:set các bit ngõ ra lên mức cao, các bit khác của thanh ghi dữ liệu không

bị ảnh hưởng.

XGpio_Discreteclear(XGpio * InstancePtr, unsigned Channel, u32 Mask)

Chức năng:

Định các đầu ra riêng biệt xuống mức logic 0, tương ứng với 1 kênh được chọn của thiết bị.

Thông số:

InstancePtr: là con trỏ chỉ tới ngoại vi đang làm việc.

Channel: bao gồm 2 kênh (1 hoặc 2)

Mask:set các bit ngõ ra xuống mức thấp, các bit khác của thanh ghi dữ liệu

Chương 2: Cấu trúc kit SPARTANT-3E, vi điều khiển MICROBLAZE và phần mềm EDK 30

XGpio_mGetDataReg(BaseAddress, Channel) Chức năng: (adsbygoogle = window.adsbygoogle || []).push({});

Lấy dữ liệu của một thanh ghi của một kênh đã được xác định.

Thông số:

BaseAddress: chứa địa chỉ nền của thiết bị GPIO.

Channel: bao gồm 2 kênh (1 hoặc 2).

Chú ý:

Hàm trả về giá trị dữ liệu 32bits

XGpio_mReadReg(BaseAddress, RegOffset) Chức năng:

Đọc một giá trị từ thanh ghi GPIO. Kết quả thu được một dữ liệu 32bits. Nếu thiết bị hoạt động với độ rộng bit nhỏ hơn 32bits thì chỉ có lấy những bit có trọng số nhỏ, các bit còn lại sẽ là bit 0.

Thông số:

BaseAddress: chứa địa chỉ nền của thiết bị GPIO.

RegOffset: địa chỉ của thanh ghi được đọc cách địa chỉ nền một khoảng

XGpio_mWriteReg(BaseAddress, RegOffset, Data) Chức năng:

Ghi một giá trị từ thanh ghi GPIO, một dữ liệu 32bits được ghi. Nếu thiết bị hoạt động với độ rộng bit nhỏ hơn 32bits thì chỉ có lấy những bit có trọng số nhỏ hơn mới được ghi.

Thông số:

BaseAddress: chứa địa chỉ nền của thiết bị GPIO.

RegOffset: địa chỉ của thanh ghi được ghi cách địa chỉ nền một khoảng.

Data: dữ liệu được ghi vào thanh ghi.

XUartLite_ClearStats(XUartLite *InstancePtr) Chức năng:

Đưa về không các số liệu của các phần cứng được chỉ tới.

Thông số:

Chương 2: Cấu trúc kit SPARTANT-3E, vi điều khiển MICROBLAZE và phần mềm EDK 31

XUartLite_DisableInterrupt(XUartLite *InstancePtr) Chức năng:

Hàm này có tác dụng vô hiệu hóa các ngắt khi truyền dẫn nối tiếp. Sau khi hàm này được gọi thì việc nhận các dữ liệu nối tiếp sẽ không gặp phải bất cứ ngắt nào.

Thông số:

InstancePtr: con trỏ chỉ tới thiết bị truyền dẫn nối tiếp.

XUartLite_EnableInterrupt(XUartLite *InstancePtr) Chức năng:

Hàm này cho phép các ngắt được hoạt động trong quá trình nhận và truyền dữ liệu nối tiếp. Đối với một thiết bị có chứa 16 byte để truyền nhận dữ liệu theo kiểu FIFO thì bất cứ lúc nào cũng có thể có ngắt được cho phép trong quá trình truyền nhận dữ liệu.

Thông số:

InstancePtr: con trỏ chỉ tới thiết bị truyền dẫn nối tiếp.

XUartLite_IsSending(XUartLite *InstancePtr) Chức năng: (adsbygoogle = window.adsbygoogle || []).push({});

Hàm sẽ xác định liệu thiết bị truyền dẫn nối tiếp được chỉ ra có đang gửi dữ liệu hay không. Nếu thanh ghi truyền dẫn không bỏ trống tức là nó đang gửi dữ liệu.

Thông số:

InstancePtr: con trỏ chỉ tới thiết bị truyền dẫn nối tiếp.

Chú ý:

Hàm trả về giá trị đúng khi thiết bị đang gửi dữ liệu, ngược lại là sai.

XUartLite_ResetFifos(XUartLite *InstancePtr) Chức năng:

Hàm có tác dụng reset bộ nhớ FIFO, việc truyền và nhận dữ liệu sẽ bị xóa. Hàm này có thể được sử dụng trong các ứng dụng nhằm xóa các dữ liệu không mong muốn trong bộ nhớ FIFO.

Thông số:

Chương 2: Cấu trúc kit SPARTANT-3E, vi điều khiển MICROBLAZE và phần mềm EDK 32

XUartLite_RecvByte(u32 BaseAddress) Chức năng:

Hàm nhận một byte đơn từ cổng truyền dẫn nối tiếp. Hàm đọc giá trị 8 bits từ thanh ghi nhận.

Thông số:

BaseAddress: là địa chỉ nền của thiết bị được xác định.

Chú ý:

Hàm trả lại giá trị byte mong muốn.

XUartLite_RecvByte(u32 BaseAddress, u8 Data ) Chức năng:

Hàm gửi đi một byte đơn qua cổng truyền dẫn nối tiếp. Hàm sẽ ghi giá trị 8 bits vào thanh ghi truyền.

Thông số:

BaseAddress: là địa chỉ nền của thiết bị được xác định. Data : byte dữ liệu gửi đi.

Tạo hệ thống phần cứng cơ bản trong XP S (Xilinx Platform Studio): khi các bạn cho chạy chương trình EDK thì một cửa sổ xuất hiên gọi là cửa sổ XPS, chúng ta sẽ bắt đầu tạo Project ở đây, màn hình khởi đông chương trình như sau :

Một phần của tài liệu Nghiên cứu và triển khai hệ thồng nhúng trên kit Spartan-3E (Trang 35 - 40)