BÁO CÁO KHÓA LUẬN TỐT NGHIỆP
NGHIÊN CỨU VÀ XÂY DỰNG BỘ CÔNG CỤ
PHÁT TRIỂN PHẦN MỀM NHÚNG E-STUDIO,
PHẦN BARE PROJECT
Giới thiệu
•
Nền tảng phát triển hệ thống nhúng
•
Tổng quan về hệ thống ARMStudio
Eclipse và kiến trúc plug-in trong Eclipse
Kiến trúc vi xử lý ARM
Xây dựng hệ thống ARMStudio cho các vi xử lý họ ARM
•
Giới thiệu hệ thống
•
Các chức năng của hệ thống
•
Sản phẩm ứng dụng nhúng đa dạng
–
Tiêu dùng: DVD, TV kỹ thuật số, thiết bị cầm tay, GPS
–
Di động: Điện thoại, netbook, smartphone, tablet
–
Vệ tinh, tên lửa, tàu con thoi…
•
Đặc điểm
–
Nhỏ, nhiều chức năng, tiêu thụ năng lượng ít
–
Không sử dụng vi xử lý x86
–
Sử dụng nhiều hệ điều hành, thư viện khác nhau
•
Môi trường debug chậm và khó sử dụng
•
IDE phát triển phần mềm nhúng chưa nhiều
•
IDE phát triển phần mềm nhúng lớn: Keil, IAR, Green
Hills… không miễn phí
Giới thiệu
•
Nền tảng phát triển hệ thống nhúng
•
Tổng quan về hệ thống ARMStudio
Eclipse và kiến trúc plug-in trong Eclipse
Kiến trúc vi xử lý ARM
Xây dựng hệ thống ARMStudio cho các vi xử lý họ ARM
•
Giới thiệu hệ thống
•
Các chức năng của hệ thống
•
Java IDE
•
Mã nguồn mở, kiến trúc có thể mở rộng được
•
Bao gồm nhiều tầng, mỗi tầng đều là các plug-in
•
Plug-in: tập hợp các chức năng
–
Đơn vị nhỏ nhất của Eclipse
–
Ví dụ plug-in lớn: HTML editor
–
Ví dụ plug-in nhỏ: Action để tạo file zip
•
Extension point: thực thể được đặt tên đại diện
cho tập hợp các chức năng.
–
Extension point là 1 cơ chế cho phép 1 plug-in có thể
thêm các chức năng từ 1 plug-in khác.
–
Ví dụ: extension point cho giao diện người dùng
workbench
•
Extension: một chức năng
–
Ví dụ: các chức năng của HTML editor
Giới thiệu
•
Nền tảng phát triển hệ thống nhúng
•
Tổng quan về hệ thống ARMStudio
Eclipse và kiến trúc plug-in trong Eclipse
Kiến trúc vi xử lý ARM
Xây dựng hệ thống ARMStudio cho các vi xử lý họ ARM
•
Giới thiệu hệ thống
•
Các chức năng của hệ thống
•
Vi xử lý 32 bit, kiến trúc RISC
•
Kích thước nhỏ, tiêu thụ năng lượng ít
•
Hỗ trợ Debug tốt cho thiết kế hệ thống System on Chip
•
Gồm các vi xử lí: ARM7TDMI-S, ARM7TDMI, ARM7EJ-S
•
Lĩnh vực ứng dụng
•
Công nghiệp
: đồng hồ năng lượng, bộ ngắt mạch, UPS, tự động
hóa nhà máy.
•
Đầu đọc thẻ, máy ATM, máy tính tiền, máy bán hàng
•
Tiêu dùng
: đồ chơi điện tử, thiết bị cầm tay, GPS, MP3 Player,
máy thu phát cầm tay
•
Nhúng
: USB controllers, HDD controllers, Bluetooth controllers,
Networking/WiFi , máy quét y khoa
•
Vi xử lý 32 bit, kiến trúc ARMv5TE
•
ARM9 đem đến thị trường chip giá trẻ và giảm bớt sự
phức tạp, tiết kiệm năng lượng.
•
Gồm các vi xử lý: ARM968E-S, ARM946E-S, ARM926E-S.
•
Lĩnh vực ứng dụng:
•
Tiêu dùng
: Smartphones, PDA, Set top box, đồ chơi điện tử, máy quay
phim kĩ thuật số.
•
Mạng
: Wireless LAN, 802.11, Bluetooth, SCSI, 2.5G/3G, Baseband
•
Xe hơi :
Power train, ABS, Body systems, Navigation, Infotainment.
•
Nhúng
: USB controllers, Bluetooth controllers, máy quét y khoa
•
Lưu trữ :
HDD controllers, ổ cứng trạng thái rắn (solid state drive)
Giới thiệu
•
Nền tảng phát triển hệ thống nhúng
•
Tổng quan về hệ thống ARMStudio
Eclipse và kiến trúc plug-in trong Eclipse
Kiến trúc vi xử lý ARM
Xây dựng hệ thống ARMStudio cho các vi xử lý họ ARM
•
Giới thiệu hệ thống
•
Các chức năng của hệ thống
•
ARMStudio là môi trường phát triển tích hợp (IDE) hỗ trợ
phát triển các chương trình C/C++ chạy trên chip họ
ARM7, ARM9
•
Mã nguồn mở và hoàn toàn miễn phí cho cộng đồng
•
ARMStudio được xây dựng trên cơ sở kế thừa và cải tiến
các chức năng đã có ở hệ thống ARMStudio cũ, đồng thời
phát triển thêm các chức năng mới để hoàn thiện hệ
thống
•
Hệ thống ARMStudio gồm 3 phần chính: phần biên dịch,
phần giao diện và trình gỡ lỗi
•
Hệ thống giao diện cải tiến
•
Hệ thống gỡ lỗi
•
Hệ thống ARMStudio chạy trên Linux
•
Hỗ trợ đa ngôn ngữ
•
Hệ thống ARMStudio sử dụng bộ cài đặt GNUARM Toolchain
•
GNUARM Toolchain gồm: GNU binutils, GCC, Debugger (Insight cho
Window và Linux, GDB cho MacOS), Newlib
•
Toolchain là một chuỗi các tool được kết nối với nhau theo thứ tự
và output của tool này có thể là input của tool khác
•
Ví dụ: trình biên dịch nhận các tập tin nguồn C++ (*.cpp), biên
dịch thành các tập tin object (*.obj) và tất cả tập tin object là
input của trình liên kết để tạo ra tập tin thực thi (*.exe).
•
Hệ thống quản lý biên dịch của CDT được thiết kế có thể mở rộng
để người dùng có thể định nghĩa các bộ biên dịch bằng cách kết
hợp tool, định nghĩa các cấu hình, projectType…
•
Dựa vào các tool của bộ cài đặt GNUARM, ARMStudio xây dựng 2
bộ cấu hình Toolchain:
•
“Windows GNUARM” cho ARMStudio chạy trên nền Window
•
“Linux GNUARM” cho ARMStudio chạy trên nền Linux