Tải bản đầy đủ (.docx) (159 trang)

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

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 (2.09 MB, 159 trang )

TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN
KHOA CÔNG NGHỆ THÔNG TIN
BỘ MÔN CÔNG NGHỆ PHẦN MỀM
NGUYỄN THỊ HỒNG NHANH - NGUYỄN LONG THỊNH
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
KHÓA LUẬN TỐT NGHIỆP CỬ NHÂN CNTT
TP.HCM, NĂM 2010
1
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN
KHOA CÔNG NGHỆ THÔNG TIN
BỘ MÔN CÔNG NGHỆ PHẦN MỀM
NGUYỄN THỊ HỒNG NHANH - 0612302
NGUYỄN LONG THỊNH - 0612432
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
KHÓA LUẬN TỐT NGHIỆP CỬ NHÂN CNTT
GIÁO VIÊN HƯỚNG DẪN
ThS. NGUYỄN TẤN TRẦN MINH KHANG
CHÂU CHÍ THIỆN
KHÓA 2006 – 2010
2
NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN
…………………………………………………………………………………….
…………………………………………………………………………………….
…………………………………………………………………………………….
…………………………………………………………………………………….
…………………………………………………………………………………….
…………………………………………………………………………………….


…………………………………………………………………………………….
…………………………………………………………………………………….
…………………………………………………………………………………….
…………………………………………………………………………………….
…………………………………………………………………………………….
…………………………………………………………………………………….
…………………………………………………………………………………….
…………………………………………………………………………………….
…………………………………………………………………………………….
…………………………………………………………………………………….
…………………………………………………………………………………….
…………………………………………………………………………………….
…………………………………………………………………………………….
…………………………………………………………………………………….
…………………………………………………………………………………….
TpHCM, ngày … tháng …… năm …….
Giáo viên hướng dẫn
3
NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN
…………………………………………………………………………………….
…………………………………………………………………………………….
…………………………………………………………………………………….
…………………………………………………………………………………….
…………………………………………………………………………………….
…………………………………………………………………………………….
…………………………………………………………………………………….
…………………………………………………………………………………….
…………………………………………………………………………………….
…………………………………………………………………………………….
…………………………………………………………………………………….

…………………………………………………………………………………….
…………………………………………………………………………………….
…………………………………………………………………………………….
…………………………………………………………………………………….
…………………………………………………………………………………….
…………………………………………………………………………………….
…………………………………………………………………………………….
…………………………………………………………………………………….
…………………………………………………………………………………….
…………………………………………………………………………………….
Khóa luận đáp ứng yêu cầu của Khóa luận cử nhân CNTT
TpHCM, ngày … tháng …… năm ……
Giáo viên phản biện
4
LỜI CÁM ƠN
  
TpHCM, ngày 02 tháng 06 năm 2010
5
Khoa Công Nghệ Thông Tin
Bộ môn Công Nghệ Phần Mềm
ĐỀ CƯƠNG CHI TIẾT
Tên Đề Tài: 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áo viên hướng dẫn: Nguyễn Tấn Trần Minh Khang
Châu Chí Thiện
Thời gian thực hiện: 23/02/2010 đến 15/7/2010
Sinh viên thực hiện: Nguyễn Thị Hồng Nhanh – 0612302
Nguyễn Long Thịnh - 0612432
Loại đề tài: Nghiên cứu, xây dựng chương trình hoàn thiện
Nội Dung Đề Tài:

1. Mô tả chi tiết nội dung đề tài:
Đề tài gồm các nội dung sau:
 Tìm hiểu kiến trúc plug-in trong Eclipse
 Tìm hiểu kiến trúc và mô hình của các vi xử lý thuộc họ ARM7,
ARM9, Cortex-M3
 Tìm hiểu GNUARM Toolchain và các thành phần của GNUARM
Toolchain, đặc biệt là GNU Debugger (GDB).
 Tìm hiểu kiến trúc CDT (C/C++ Development Tooling), CDT
6
Debugger và CDT Project Template Engine.
 Tích hợp Debugger vào ARMStudio để hoàn chỉnh hệ thống và cải
tiến thêm một số chức năng mới.
2. Yêu cầu:
 Kiến thức về eclipse và plug-in trong Eclipse.
 Kiến thức về CDT, chủ yếu là CDT Debugger
 Nắm vững kiến trúc vi xử lý họ ARM
 Kiến thức về GNUARM Toolchain
 Kiến thức về Lập trình nhúng và Linux.
3. Phương pháp thực hiện:
 Tìm hiểu các kiến thức cần để phát triển plug-in: kiến trúc plug-in,
tạo, đặc điểm plug-in, chạy, debug và đóng gói plug-in…
 Tìm hiểu về tập lệnh của vi xử lý và tổ chức bộ nhớ, kiểu thao tác,
kiểu dữ liệu, thanh ghi… của các vi xử lý thuộc họ ARM7, ARM9
và Cortex-M3
 Tìm hiểu về kiến trúc CDT, CDT Debugger và CDT Project
Template Engine.
 Tìm hiểu cách biên dịch, cách tạo template, cách sử dụng toolchain
và cách debug trên Linux.
 Tìm hiểu cách quốc tế hóa một plug-in trong Eclipse
 Xây dựng ARMStudio hoàn chỉnh

4. Kết quả đạt được:
 ARMStudio có tính năng debug và các tính năng cải tiến khác.
 Xây dựng được ARMStudio chạy trên Linux
7
 Xây dựng được template cho nhiều vi xử lý ARM7, ARM9, Cortex-
M3.
 Quốc tế hóa sản phẩm hổ trợ đa ngôn ngữ: tiếng Việt, tiếng Nhật.
Kế Hoạch Thực Hiện:
STT Công việc Thời gian thực hiện
1.
1
Viết đề cương chi tiết
22/2 → 02/03
2. Tìm hiểu các kiến thức cần để phát triển
plug-in trong Eclipse
22/02 → 05/03
3. Tìm hiểu kiến trúc và mô hình của các vi xử lý
thuộc họ ARM7, ARM9, Cortex-M3
06/03 → 15/03
4. Tìm hiểu GNUARM Toolchain (GNU
Binutils, Compiler set (GCC), Debugger,
Newlib) và các thành phần của GNUARM
Toolchain, đặc biệt là GDB
16/03 → 25/03
5. Tìm hiểu kiến trúc CDT (C/C++ Development
Tooling), CDT Debugger và CDT Project
Template Engine.
26/03 → 09/04
6. Nghiên cứu các chức năng đã được xây dựng
trong hệ thống ARMStudio, các chức năng cần

cải tiến và các chức năng có thể phát triển
thêm để hoàn chỉnh hệ thống.
10/04 → 19/04
7. Tích hợp Debugger
20/04 → 19/05
8. Xây dựng được template cho nhiều vi xử lý
20/05 → 03/06
8
thuộc các họ ARM7, ARM9, Cortex-M3
9. Xây dựng hệ thống ARMStudio chạy trên
Linux
04/06 → 18/06
10. Quốc tế hóa sản phẩm
19/06 → 30/06
11. Viết báo cáo
20/04 → 04/07
12. Kiểm tra tổng thể đề tài
07/07 → 14/07
Xác nhận của GVHD Ngày……tháng……năm……
SV Thực hiện

Mục lục
9
Danh sách hình
10
TÓM TẮT KHÓA LUẬN
11
MỞ ĐẦU
12
TỔNG QUAN

13
14
Chương 1. ECLIPSE VÀ KIẾN TRÚC PLUGIN
TRONG ECLIPSE
1.1 Tổng quan về Eclipse
1.1.1 Giới thiệu Eclipse, download và cài đặt
Eclipse là một nền tảng phát triển mã nguồn mở dựa trên Java và có
thể mở rộng được. Eclipse bao gồm một tập hợp các dịch vụ để xây dựng
các ứng dụng từ các thành phần plug-in. Eclipse được tạo thành bởi một tập
hợp các plug-in chuẩn và thường được gọi là JDT (Java Development
Tools).
Trong khi hầu hết người dùng sử dụng Eclipse như là môi trường phát
triển tích hợp Java (IDE), một số khác còn có những nhu cầu sử dụng khác
hơn nữa. Do đó, Eclipse còn bao gồm PDE (Plug-in Development
Environment) dành cho người dùng muốn mở rộng Eclipse. Vì thế, Eclipse
cho phép người xây dựng các tool tích hợp vào môi trường Eclipse. Bởi vì
mọi thứ trong Eclipse đều là plug-in nên các nhà phát triển các tool đều
cung cấp các sân chơi để mở rộng Eclispe và để cung cấp một IDE thống
nhất và chắc chắn cho người dùng.
Mặc dù Eclipse được viết bằng ngôn ngữ Java, nhưng Eclipse có cung
cấp các plug-in hỗ trợ các ngôn ngữ lập trình khác như C/C++ và COBOL.
Eclipse framework có thể được sử dụng như là nền tảng cho các loại ứng
dụng khác không liên quan đến phát triển phần mềm, ví dụ như: hệ quản trị
nội dung.
Eclipse là cộng đồng mã nguồn mở mà các project của nó tập trung
vào việc xây dựng nền tảng mã nguồn mở bao gồm các framework có thể
15
mở rộng, các tool và runtime để xây dựng, triển khai và quản lý các phần
mềm trong chu kỳ sống của nó. Eclipse là một tổ chức phi lợi nhuận được
hỗ trợ bởi các thành viên, là nơi phát triển các dự án của Eclipse, và là nơi

phát triển cộng đồng mã nguồn mở và hệ thống các sản phẩm, dịch vụ.
Dự án Eclipse được IBM bắt đầu vào tháng 11 năm 2001 và được các
nhà bán phần mềm hỗ trợ. Tổ chức Eclipse được thành lập vào tháng 1 năm
2004 như là một tổ chức độc lập phi lợi nhuận để quản lý cộng đồng
Eclipse. Ngày nay, cộng đồng Eclipse gồm nhiều cá nhân và tổ chức từ các
nhánh tiêu biểu về công nghiệp phần mềm.
Eclipse là phần mềm mã nguồn mở, vì thế những người tạo ra plug-in
cho Eclipse hoặc những người sử dụng Eclipse như là nền tảng cho các ứng
dụng phát triển phần mềm cần release code Eclipse mà họ dùng hoặc sửa
chữa theo giấy phép EPL.
Download, cài đặt:

1.1.2 Kiến trúc Eclipse
Kiến trúc Eclipse platform gồm có nhiều thành phần và các chức
năng của thành phần lõi tách biệt với các chức năng của phần giao diện.
Kiến trúc Eclipse được thiết kế và xây dựng để đáp ứng các yêu cầu sau:
• Hỗ trợ việc xây dựng các tool khác nhau để phát triển ứng dụng
• Hỗ trợ không giới hạn các nhà cung cấp tool, bao gồm các phần
mềm độc lập người bán.
• Hỗ trợ các tool để thao tác trên bất kỳ loại nội dung nào
• Hỗ trợ tích hợp các tool một cách dễ dàng với các loại nội dung khác
nhau và nhà cung cấp tool khác nhau.
• Hỗ trợ môi trường phát triển ứng dụng giao diện và không giao diện
• Chạy được trên nhiều hệ điều hành, gồm Window và Linux
16
• Lợi dụng tính phổ biến của ngôn ngữ lập trình Java để viết ra các
tool.
Vai trò chính của platform là cung cấp các tool của các nhà sản xuất
khác nhau cùng với cơ chế sử dụng và những quy định phải tuân thủ để có
thể tích hợp các tool một cách dễ dàng. Những cơ chế này được trình bày

thông gia giao diện API, các lớp và phương thức. Ngoài ra, platform còn
cung cấp các framework và block để dễ dàng phát triển các tool mới.
Eclipse Platform không giới hạn số ứng dụng ngôn ngữ Java. Tuy nhiên,
Eclipse SDK gồm có Eclipse Platform, JDT và PDE. Trong đó JDT và PDE là
các plugin được gắn vào Platform. Eclipse Platform được xây dựng dựa trên cơ
chế phát hiện ra, tích hợp và chạy plug-in. Plug-in là đơn vị chức năng nhỏ
nhất có thể được phát triển và phân phối một cách riêng biệt. Thông thường,
một tool nhỏ được viết trong một plug-in riêng biệt, trong khi đó các tool phức
tạp có các chức năng được tách ra ở nhiều plug-in.
Hình 1-1 Kiến trúc Eclipse
17
1.1.2.1 SWT
Standard Widget Toolkit (SWT) cung cấp các API độc lập nền tảng
cho các widget và công cụ đồ họa bằng cách cho phép tích hợp chặt chẽ
với hệ điều hành bên dưới. Giao diện Eclipse Platform sử dụng SWT để
trình bày thông tin cho người dùng, cho dù người dùng đang làm việc trên
hệ điều hành Linux, Window hay hệ điều hành nào khác có giao diện đồ
họa.
Java AWT (Abstract Windowing Toolkit) cung cấp các widget đơn
giản như: list, text field và button, nhưng không có các widget cấp cao như:
tree hay rich text. Các widget của AWT sử dụng các widget sẵn có của tất
cả các hệ điều hành. Java Swing ra đời như là giải pháp để khắc phục các
vấn đề đó. Swing là một GUI Framework của riêng Java , không phụ thuộc
vào bất cứ nền tảng nào. Swing không sử dụng các thành phần sẵn có của
hệ điều hành , nó sử dụng các đối tượng được Sun xây dựng sẵn. Các ứng
dụng có giao diện bằng Swing sẽ trông không được phù hợp, tự nhiên trên
nền tảng mà nó đang chạy. Dù ở những phiên bản cuối cùng của JVM , các
ứng dụng Swing vẫn tồn tại sự khác biệt với nền tảng giao diện của các hệ
điều hành. Mặc dù người dùng có thể cài các bộ cảm quan (LookAndFeel )
những giao diện vẫn chưa được tự nhiên.

IBM đã tìm ra được giải pháp thích hợp khắc phục được những yếu
điểm trên của cả AWT và Swing, IBM đã tạo ra một GUI Framework mới
được gọi là Standard Widget Toolkit – SWT . SWT có thể truy cập vào các
thành phần giao diện tự nhiên của từng nền tảng thông qua JNI . Nếu như
một nền tảng nào đó không có thành phần đó , SWT sẽ cung cấp chúng
trong thư viện của nó. Người dùng hoàn toàn có thể chạy một ứng dụng
Java có giao diện chẳng khác gì giao diện được tạo bằng C# hay VB trong
Windows. SWT chạy cực nhanh với lượng tài nguyên chiếm dụng trong bộ
nhớ chỉ bằng một nửa so với Swing .
18
1.1.2.2 JFace
JFace là tookit để xây dựng giao diện người dùng cấp cao, JFace là
tầng trên cùng của SWT, cung cấp các lớp thuộc mô hình MVC để phát
triển các ứng dụng đồ họa dễ dàng hơn.
Những người muốn phát triển Eclipse sẽ sử dụng PDE (Plug-in
Development Environment) để bổ sung thêm các plug-in mới
Hình 1-2 Kiến trúc hỗ trợ phát triển plug-in trên eclipse
19
1.1.3 Cách thức quản lý các tập tin mã nguồn
1.2 Kiến trúc plug-in trong Eclipse
1.2.1 Giới thiệu về plug-in và extension point
Hình 1-3 Plugin và
extension point trong
Eclipse
Mỗi plug-in có một hay nhiều extension point và có thể tùy ý khai báo
một extension point mới. Mỗi plug-in phụ thuộc vào tập hợp các plug-in
khác, có thể chứa bất kỳ thư viện hoặc tập tin nào viết bằng Java và có thể
export các Java API cơ bản. Về lý thuyết thì số plug-in không bị giới hạn
và cơ chế platform phải hỗ trợ để làm gia tăng số lượng plug-in.
20

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
1.2.2 The plug-in manifest file
Chi tiết của plug-in được giải thích rõ ràng trong tập tin plug-in
manifest. Plugin manifest chính là tập tin plugin.xml, chứa thông tin mô tả
sẽ được Eclipse sử dụng để tích hợp plug-in vào framework. Mặc định,
plugin.xml mở khu vực editor của manifest khi nó được tạo ra lần đầu tiên.
ở bên dưới đáy của editor có các tab để hỗ trợ người dùng lựa chọn việc
thiết lập các thông tin khác nhau về plug-in. Ví dụ: tab Source hiển thị toàn
bộ nội dung tập tin plugin.xml ở dạng xml.
Tập tin manifest chứa những thông tin chung về plug-in bao gồm: tên
plug-in, phiên bản, tên lớp, tên file JAR. Ngoài ra, tập tin manifest còn
chứa danh sách những plug-in mà plug-in hiện tại cần dùng.
Plug-in đầu tiên là org.eclipse.core.resources là
workspace plug-in và Plug-in thứ hai là org.elipse.ui là workbench
plugin.
Một trong những extension cần tìm hiểu là extension có thuộc tính
point=org.eclipse.ui.actionSets. Một action set là một nhóm
các chức năng mà plug-in sẽ thêm vào giao diện workbench, ví dụ như là

menus, menu items, và toolbars. Action set sẽ gom nhóm các chức năng để
người dùng có thể quản lý chúng một cách dễ dàng.
Một action set có thể chứa 2 thẻ: thẻ menu mô tả nơi item xuất hiện
và cách hiển thị của nó trên workbench; thẻ action mô tả một item sẽ
thực hiện chức năng gì và lớp xử lý action để thực hiện chức năng đó.
21
1.2.3 Vòng đời của một plug-in
Plug-in có một chu trình sống được điều khiển bởi workbench. Khi
Eclipse khỡi động thì nó thêm plug-in vào mà không load ngay lập tức, chỉ
load plug-in khi cần thiết. Trong suốt quá trình load, Elipse gọi phương
thức startup() và trước khi unload thì gọi shutdown(). Hai phương thức
load và unload có thể được coi như là hàm khởi tạo và hàm hủy plug-in.
1.2.4 Đóng gói plug-in
Eclipse quyết định plug-in nào được load bằng cách kiểm tra thư mục
plugins vào thời điểm khỡi động. Để cài đặt một plug-in thì cần tạo một
thư mục con trong thư mục plugins và chép tất cả các tập tin chương trình
và manifest vào đó. Nên đặt tên thư mục chứa plug-in theo chuẩn: tên của
plug-in được theo sau bởi dấu gạch dưới và chỉ số phiên bản. Ví dụ:
C:\eclipse\plugins\com.example.hello_1.0.0. Sau đó, nén thư mục con
vừa được tạo thành tập tin JAR.
22
Để tạo được tập tin JAR bằng giao diện Elipcse thì gọi File->Export.
Sau đó chỉ cần khỡi động lại Eclipse để Eclipse có thể nhận ra plug-in mới.
1.2.5 Plug-in fragment and features
• Plugin fragment: Plug-in fragment được hình thành từ một phần của
plug-in. Plug-in fragment có ích khi muốn sử dụng một phần của
plug-in độc lập với phần còn lại của plug-in.
Plug-in fragment có thể được dùng để thêm các đặc điểm nào
đó vào một plug-in đang có mà không cần phát hành một bản release
mới đầy đủ hoặc có thể được dùng để cung cấp chức năng cho một

nền tảng nào đó…
Plug-in fragment gần giống với plug-in thông thường, chỉ khác
ở một vài đặc điểm sau:
- Thông tin mô tả plug-in được lưu trong tập tin fragment.xml thay
vì plugin.xml như các plug-in thông thường.
- Trong tập tin fragment.xml, nút gốc là <fragment> và nút này có
2 thuộc tính là: plugin-id và plugin-version dùng để chỉ ra định danh
và phiên bản của plug-in cha.
- Plug-in fragment sẽ tự động kế thừa các nút <requires> của plug-
in cha và có thể thêm các nút <requires> khác nếu cần thiết.
• Plug-in feature: Trong kiến trúc Eclipse, feature là việc đóng gói
một nhóm các plug-in có liên quan lại thành một sản phẩm tích hợp.
Plug-in feature không có chứa code. Ví dụ: Java Development
Tooling (JDT) là một feature project được tạo thành bởi các
plug-in như Java editor, debugger, và console.
Tập tin đặc tả feature project là feature.xml, tập tin
này chứa tham chiếu đến các plug-in và các tài nguyên khác của
feature project, đồng thời chứa các thông tin về việc update,
copyright và license.
23
1 KIẾN TRÚC VI XỬ LÝ ARM
1.3 ARM7 (32-bit)
- Ra đời vào năm 1994, ARM7 đã phát triển hết sức thành công và giúp ARM
trở thành kiến trúc được lựa chọn của thế giới kĩ thuật số. Trong vài năm qua,
hơn 10 tỉ thiết bị có sử dụng chip ARM7 đã được ứng dụng trong nhiều lĩnh
vực của đời sống. Hiện nay, ARM7 vẫn tiếp tuc được sử dụng rộng rãi để thiết
kế các thiết bị 32 bit đơn giản.
- Đặc điểm nổi bật của ARM7:
• Kiến trúc công nghiệp chuẩn.
• Dễ dàng thiết kế và debug.

Ngày nay, các kỹ sư tại nhiều công ty có thể thiết kế vi xử lí
ARM7TDMI một cách quen thuộc. Và lập trình viên có thể đi về nhà sớm
hơn, bởi vì ARM7TDMI sẽ tương thích với phần mềm hiện có.
Tom Halfhill, Senior Editor & Senior Analyst, Microprocessor
Report, 2005
- Lĩnh vực ứng dụng của ARM7:
o Embedded: USB controllers, HDD controllers, Bluetooth controllers,
Networking/WiFi ,Medical scanners.
o Consumer: Electronic toys, Low end handheld devices, GPS, MP3 Players,
Entry level handsets.
o Automotive: Diagnostics, Maintenance, Entertainment, Sensors.
o Industrial: Power meters, Circuit breakers, UPS, Brushless motor drive,
Factory automation.
o Point of Sale: Card readers, ATM, Cash registers, Vending machines
- Họ ARM7 gồm có các vi xử lí: ARM7TDMI-S, ARM7TDMI, ARM7EJ-S.
1 ARM7EJ-S
Vi xử lý ARM7EJ-S có kiến trúc ARMv5TEJ với công nghệ Jazelle nâng
cao hiệu quả của việc xử lý tín hiệu số (Digital Signal Processing). Công
nghệ Jazelle cho phép thực thi trực tiếp Java bytecode trên vi xử lý ARM,
điều này dẫn đến sự phát triển của các thiết bị nhúng và wireless.
24
ARM7EJ-S là một thành phần của bộ vi xử lý đa dụng 32 bit họ ARM. Vi
xử lý họ ARM có hiệu quả cao vì tiêu thụ năng lượng rất thấp và số cổng ít.
Kiến trúc ARM dựa trên nguyên lý RISC. Tập lệnh giảm và cơ chế giải mã
đơn giản hơn nhiều so với thiết kế CISC
1 Kiến trúc bộ vi xử lí ARM7EJ-S
 Vi xử lí ARM7EJ-S có 3 tập lệnh:
• Tập lệnh ARM 32 bit được sử dụng cho trạng thái ARM (ARM
state).
• Tập lệnh Thumb 16 bit được sử dụng cho trạng thái Thumb (Thumb

state).
• Java bytecode 8 bit được sử dụng cho trạng thái Jazelle (Jazelle
state).
 Tổng quan về tập lệnh
• Với kiến trúc 32 bit, có thể thao tác trên số nguyên 32 bit chỉ với
những lệnh đơn và đánh địa chỉ trên không gian địa chỉ lớn, có hiệu
quả hơn nhiều so với kiến trúc 16 bit. Khi xử lý dữ liệu 32 bit, kiến
trúc 16 bit phải sử dụng ít nhất 2 lệnh để thực hiện được cùng công
việc như một lệnh 32 bit.
• Kiến trúc 32 bit chỉ có lệnh 32 bit và kiến trúc 16 bit chỉ có lệnh 16
bit, do đó kiến trúc 16 bit có mật độ code dày đặc hơn.
• Thumb implement tập lệnh 16 bit trên kiến trúc 32 bit nên hiệu quả
cao hơn kiến trúc 16 bit và mật độ code dày đặc hơn kiến trúc 32 bit.
• ARM7EJ-S cho người sử dụng lựa chọn trạng thái ARM, Thumb
hoặc là trộn lẫn cả hai. Điều này cho phép người sử dụng tối ưu hóa
mật độ và hiệu quả của code tốt nhất cho từng yêu cầu của ứng
dụng.
 Tập lệnh Thumb
• Tập lệnh Thumb là tập con của những lệnh ARM 32 bit thường được
sử dụng nhất. Tập lệnh Thumb có độ dài mỗi lệnh là 16 bit và có
lệnh ARM 32 bit. Tập lệnh Thumb thao tác được với cấu hình thanh
ghi ARM chuẩn, kết hợp những điểm tốt nhất ARM và Thumb.
• Tập lệnh Thumb có tất cả những thuận lợi của vi xử lý 32 bit:
25

×