Trang chủ

Thứ Hai, 15 tháng 8, 2011

Môi trường lập trình C của Altera


Tìm hiểu môi trường lập trình C của Altera.
Các câu hỏi nhỏ: Tập trung tìm hiểu 1 thư mục project được tạo ra bởi Altera để xây dựng 1 application.

1) Cách viết, biên dịch và nạp chương trình nhỏ "Hello! World" trên môi trường phát triển phần mềm của Altera.
- Các bước sử dụng tool. Chú ý không chỉ vào các bước sử dụng tool
2)  Tìm hiểu các bước sử dụng tool tương ứng gọi nhưng command line biên dịch nào:
   + Tạo ra một application bằng câu lệnh create-this-app: Kết quả của việc chạy lệnh đó là các file gì? (Makefile, linker script...?).
    + Cách để thêm nhiều hơn 1 file .c vào project.
 
   + Tìm hiểu makefile để biết khi nào thì gọi compiler gcc để dịch các file C thành file OBJ, khi nào gọi linker để liên kết các file OBJ và thư viện thành file chạy .ELF. Xác định file thư viện (vị trí, tên, chức năng của từng file thư viện được liên kết với chương trình). Xác định file chỉ ra bản đồ bộ nhớ linker script (tên, từng thành phần trong file đó). Search về make tutorial để đọc kỹ hơn về make và makefile.
    + Cách để cấu hình các thư viện HAL trong project? Cách thêm bớt các module thư viện trong syslib.
    + Cách để chỉ ra file mô tả phần cứng .sopc .sopcinfo.

3) Các chạy một chương trình .ELF đã biên dịch bằng trình mô phỏng mã máy (Instruction Set Simulator), bằng trình mô phỏng logic, và bằng cách nạp lên kit DE1, DE2.

Tài liệu tham khảo:
- Using C with Altera DE2 Board (Để trả lời câu hỏi 1)
- Rapid Prototyping Digital System: SoPC Edition, Chapter 16: Tutorial III.

- NIOS II Software Developer's Handbook, Section I. (Để trả lời mục câu hỏi 2)

Lập trình điều khiển led, phím bấm trên Altera DE1 (Due date 08/08/2011)


1) Xây dựng SoPC dựa trên NIOSII gồm: CPU-NIOSII, Internal RAM, JTAG, LED. Gắn các LED với địa chỉ 0x0001000.
2) Lập trình các hàm bật tắt các led: led_on(int led_nr), led_off(int led_nr)
3) Xây dựng SoPC dựa trên NIOSII gồm: CPU-NIOSII, Internal RAM, JTAG, LED, các phím bấm, các phím gạt.
4) Lập trình các hàm xử lý ngắt để nhận trạng thái bấm phím.
5) Xử dụng hàm led_on, led_off để bật tắt ngắt theo các phím bấm.

Tài liệu tham khảo:

1) Quartus II Version 7.2 Handbook Volume 4: SOPC Builder
2) Nios II Software Developer’s Handbook
3) Introduction to the Altera SOPC Builder Using Verilog Design
4) Low-Level C Programming, CSEE W4840, Prof. Stephen A. Edwards.
5) Using C with Altera DE2 Board.

Báo cáo:https://docs.google.com/a/edabk.org/leaf?id=0ByxtizZRVJMLYzBkNzVlZTUtNjVkMS00OGFiLWFhODEtYzE4NWQwMGQ5YWVk&hl=en_US

Kiến trúc tập lệnh RISC


1) Trả lời các câu hỏi:
- Cách mã hóa các lệnh của CPU MIPS bằng chuỗi 32 bit
- Các bước thực hiện 1 lệnh của CPU
- Các chế độ địa chỉ trong kiến trúc tập lệnh
- Ý nghĩa các lệnh assembly cơ bản
- Cách chuyển 1 lệnh C thành lệnh Assembly và thành mã máy
 + Lệnh C thông thường
 + Lệnh C truy cập mảng
 + Lệnh if, while, switch
2) Quá trình dịch chương trình C thành mã máy. Liên kết các tệp mã máy và thư viện thành 1 tệp chạy.
3) Bản đồ bộ nhớ. Cách quy định bản đồ bộ nhớ bằng tệp linker script.
4) Quá trình nạp một tệp chạy vào bộ nhớ.

Tài liệu tham khảo:
Slide chương 2 môn kiến trúc máy tính.
Chương 2 quển "Computer Organization and Design" của Patterson và Hennessy.
Nios II Software Developer’s Handbook, Section I

Các thành phần phần cứng của máy tính nhúng


Trả lời các câu hỏi sau:
- Máy tính gồm 5 thành phần nào.
- Chức năng của mỗi thành phần.
- Dữ liệu trong máy tính được biểu diễn thế nào?
- Các bước để máy tính thực hiện lệnh.
- Cách để đo hiệu năng của một máy tính
Tài liệu tham khảo: Slide chương 1 môn KTMT, chương 1 quyển sách "Computer Organization and Design" của Patterson và Hennessy

Lập trình điều khiển VGA (Due date 28/08/2011)


Lập trình điều khiển VGA. Xây dựng các hàm ghi ký tự và chuỗi ký tự, đặt mầu ký tự, đặt mầu nền ký tự.
1) Làm bài lab9 trên trang web: http://www.altera.com/education/univ/materials/comp_org/labs/unv-labs.html
Hiểu rõ phần thiết bị ngoại vi điều khiển VGA trên board DE2. 
Hiểu rõ bản đồ bộ nhớ màn hình của thiết bị điều khiển VGA. Cách thiết lập để tạo mầu.
2) Xây dựng các hàm sau:
- setcolor(int color): đặt mầu cho ký tự được đưa ra màn hình
- setbgcolor(int color): đặt mầu nền cho ký tự được đưa ra màn hình.
- goto(int x, int y): đưa con trỏ màn hình đến vị trí x,y. 
- putchar(char c): ghi 1 ký tự ra màn hình ở vị trí con trỏ hiện tại
- puts(char* c): ghi một xâu ký tự ra màn hình. Chú ý: xâu này kết thúc bằng ký tự NULL: "\0"