Tải bản đầy đủ (.doc) (5 trang)

Báo cáo thực hành hệ thống nhúng

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (128.19 KB, 5 trang )

NOI DUNG THUC HANH
Bai 1 : Lam quen voi Embest IDE
1. Co so ly thuyet
+ La phan mem co ban tren ngon ngu ASB
+ Yeu cau khi su dung chuong trinh:
- Bat dau chuong trinh bang: _start
- Dia chi mac dinh bat dau chuong trinh la 0x8000
- .equ: cho phep dinh nghia mot bien gia tri, nha~n ten cua chuong trinh
- .esp: dia chi thanh ghi, gia tri 32bit hay dia chi
.global va .globl: dung de khai bao gia tri chung co the su dung tu file khac
.global nhan~
.global ham_chuc_nang: su dung ham chuc nang trong file khac
.text: la hoat dong bat dau doan code cua chuong trinh chinh hay con
.text {chuong trinh con}
.end: ket thuc chuong trinh
2. Cac buoc thuc hien
B1. tao mot New project:
- Chay chuong trinh Embest IDE / New workspace / Hop thoai
- Luu y: tao ten folder khong dau, khong ki tu trong
B2. tao file nguon: File / New: xuat hien cua so editor. Tao chuong trinh bang ngon ngu
C hay ASB luu file *.s hay *.c
B3. add file nguon vao project: click vao project source file / add to project / file
B4. cai dat cau hinh cho project:
Project / setting hay Alt + F7 / xuat hien hop thoai
Nhap chuong trinh lab a sau vao chuong trinh nguon:
sp con tro-thanh ghi R13
gan gia tri r0 = 45
B5. Build / Build asm_a hay an F7 de tao object code. Hay click bieu tuong tren toolbar
Xuat hien “command(s) successfully executed” co nghia chuong trinh khong co loi cau
truc.
B6. Alt + F7 chon Remote


B7. Alt + F7 chon Debug
Sau do F8 (Debug / Remote connect)
Click right chon Register va Memory
Debug / Download
Chon gia tri Address la 0x8000
Báo cáo thực hành số 1

Chương trình nguồn như sau:
Định biến x giá trị 45
y giá trị 64
z giá trị 87
Mov r0,sp Đưa con trỏ vào vị trí thanh ghi r0
Giá trị thanh ghi R15 là : 0x00008004
Mov r0,#45 Đưa giá trị 45 vào thanh ghi r0
Thanh ghi r0 bây giờ: 0x0000002d
Giá trị thanh ghi R15 là : 0x00008008
Mov r0,r0,lsl#8 Dịch trái thanh ghi r0 8bit
Mov r1,#y Đưa giá trị 64 vào thanh ghi r1
Add r0,r0,lsl#8 Lấy r0 + r1 dịch 1bit
Mov sp,#stack_top Sau câu lệnh con trỏ sp nhận giá trị địa chỉ 0x8000
Ldr r2,[sp] Lấy giá trị của sp trỏ đến đưa vào thanh ghi r2
Mov r0,#z Đưa giá trị 87 vào thanh ghi r0
Add r0,r0,#0xff
Mov r1,#y Đưa giá trị 64 vào thanh ghi r1
Add r2,r0,r1,lsl#1 Lấy r0 + r1 dịch 1 rồi sau đó lưu vào r2
Ldr r0,[sp] Lấy giá trị dữ liệu sp trỏ đến đưa vào thanh ghi r0
Mov r1,#0x01 Đưa giá trị 1h vào thanh ghi r1
Orr r0,r0,r1 Thực hiện lệnh Or cho 2 thanh ghi r0 và r1 sau đó lưu kết quả
có được vào thanh ghi r0
Mov r2,r1 Đưa giá trị hiện thời của thanh ghi r1 vào r2

Add r2,r0,r1,lsl#1 Lấy r0 + r1 dịch trái 1bit sau đó lưu giá trị vào thanh ghi r2
Sinh viên: Nguyễn Minh Quỳnh – K13TVT

×