Giới thiệu; 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
Trang 1BÁ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
Trang 4• Môi trường debug chậm và khó sử dụng
Hills… không miễn phí
Trang 7• Java IDE
Trang 8• 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
Trang 10• 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
Trang 11• Vi xử lý 32 bit, kiến trúc ARMv5TE
phức tạp, tiết kiệm năng lượ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)
Trang 13• 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
Trang 14• 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ữ
Trang 15• 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
Trang 16• 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
Trang 17Hệ thống giao diện trong ARMStudio gồm có:
• Giao diện người dùng được cải tiến:
• Template project cho các vi xử lý ARM7, ARM9
• Giao diện cấu hình thông tin chip (*.s và *.ld)
• New Project Wizard
• Giao diện Debug
Trang 18• Template Project trong ARMStudio sử dụng “Project
Template Engine” do CDT cung cấp
• Cơ chế “Project Template Engine” cho phép người dùng thêm các project mẫu vào New Project Wizard để tạo ra các project có sẵn tập tin mã nguồn và cấu hình.
• Hai bước tạo ra Template Project
• Bước 1: Tạo tập tin Template.xml theo cấu trúc do CDT quy định
• Bước 2: Đăng ký tập tin Template.xml với Eclipse
Trang 19ARMStudio xây dựng các template mẫu
phong phú, giúp
người dùng không cần quan tâm đến cấu hình thông tin biên dịch và thông tin chip mà vẫn xây
dựng được chương trình
Trang 20• Mở rộng thông tin cấu hình bộ nhớ
• Cấu hình chiều dài vùng nhớ ROM, RAM
• Kiểm tra dữ liệu cấu hình do người dùng nhập vào
• Phân biệt được template của mỗi loại vi xử lý được tạo để từ đó
có cảnh báo thích hợp khi người dùng cấu hình vùng nhớ
• Hỗ trợ cấu hình đầy đủ các thông số và kiểm tra dữ liệu nguời dùng nhập vào chặt chẽ hơn so với hệ thống cũ
• Giao diện cấu hình được trình bày dưới dạng cây với sự kết hợp
đa dạng các control: combo box, check box, textbox
Trang 22• Trong New Project Wizard, người dùng chỉ cần chọn vi xử lý cần thiết, ARMStdio sẽ tự động tạo và phát sinh project với các cấu hình thích hợp tương ứng
• Ngoài ra, có thể cấu hình địa chỉ bộ nhớ ROM, RAM, Heap size, ROM size và RAM size lúc tạo mới project
Trang 23• Hệ thống giao diện debug trong ARMStudio gồm 2 phần
chính:
• Giao diện cấu hình debug.
• Giao diện điều khiển, xem kết quả trong quá trình debug
thông tin trước khi phiên debug diễn ra Các thông tin liên
quan tới project, tập tin thực thi, debugger, debug server,
target…
cho phép người dùng điều khiển, xem kết quả hiển thị khi quá
breakpoint, debug, diassembly, register…
Trang 24Giao diện cấu hình Debug Server Giao diện điều khiển quá trình Debug
Trang 25• Hệ thống Debug trong ARMStudio được xây dựng trên cơ sở kế thừa từ CDT Debugger
Trang 26CDI là giao diện lập trình ứng
dụng Java bao gồm các lớp và
interface thực hiện các chức năng
truy xuất tới CDT debug
framework Một plugin sử dụng
CDI có thể thêm mới một trình gỡ
lỗi vào quy trình xử lý và hiển thị
kết quả gỡ lỗi trên Eclipse/CDT
Trang 27GDBCDIDebugger2 ICDISession
OutputStream
in_cmdQueue
ghi lệnh ghi lệnh
Trang 28step, resume, continue…
ViewContent Provider
cung cấp nội dung
ICDIEvents
CDebugTarge
t
Trang 29• Hệ thống gỡ lỗi trong ARMStudio hoạt động theo cơ chế Remote Debugging
dụng được gỡ lỗi chạy trên các vi xử lý khác nhau, phần vật lý và logic tách biệt với nhau, giao tiếp thông qua
• IDE
• GDB
• Debug Server
• Debug Stub
Trang 30số từ DB Server
Phát sinh giao diện từ các tham số
Danh sách các tham số
Gõ lệnh
Gởi lệnh
Nhận lệnh và thực thi
Lắng nghe
Gọi thực hiện các phương thức
Tác động lên Board/Simulator
Nhận trả lời
từ DLL
Nhận kết quả trả lời từ DB Server Show kết quả
Start, thiết lập tham số
Trang 31• Hệ thống biên dịch
Trang 32• Hệ thống biên dịch ARMStudio trên Linux bao gồm bộ cấu hình toolchain “Linux GNUARM” , Project Type “ARM Linux Application” và GNUARM toolchain cho Linux
• Toolchain “Linux GNUARM” được kế thừa từ hệ thông quản
lý biên dịch của CDT và kết hợp danh sách các tool để tạo
ra tập tin thực thi.
• GNUARM toolchain cho Linux: ARMStudio sử dụng
GNUARM toolchain cho Linux 32 bit của tổ chức Sourcery
Trang 34Giao diện cấu hình thông tin
chip trên Linux
Project Template trên Linux
Trang 35• Flash Magic là phần mềm của hãng NXP dùng để nạp chương trình lên board sử dụng cổng COM Tuy nhiên, Flash Magic chỉ chạy được trên môi trường Window
• Để có thể chạy Flash Magic trên môi trường Linux cần cài đặt Wine để giả lập môi trường Window trên Linux
Trang 36• Về cơ chế, hệ thống debug Linux không có sự khác biệt so với
hệ thống debug trên Windows Java với tính chất “code one, run any where” cho phép sử dụng lại các gói, các lớp một
cách dễ dàng Chỉ cần thêm một số hàm/lớp để phân tích,
chuyển đổi đường dẫn cho phù hợp với môi trường hệ điều hành, ta có thể tái dựng lại cơ chế hoạt động của hệ thống debug đã có trên Windows trên nền Linux một cách dễ dàng
giao diện chính:
– Giao diện cấu hình debug.
– Giao diện điều khiển, xem kết quả trong quá trình debug
Trang 37• “Quốc tế hóa” (internationalize) là một quy trình tạo ra phần mềm cho thị trường toàn cầu Ngoài các lợi ích về kinh tế, một số quốc gia đòi hỏi sản phẩm phải đạt một
số tiêu chuẩn nhất định để có thể lưu hành trong thị
trường
ra một sản phẩm cho dù có mang tính thương mại hay không
nền Window và Linux
Trang 38Window
Trang 40Xin chân thành cám ơn sự quan tâm theo
dõi của anh Nguyễn Long Thịnh