1. Trang chủ
  2. » Luận Văn - Báo Cáo

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

159 1,1K 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 159
Dung lượng 2,39 MB

Nội dung

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 Đề tài gồm các nội dung sau:  Tìm hiểu kiến trúc plugin 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, CortexM3  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 (CC++ Development Tooling), CDT 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.  Tìm hiểu các kiến thức cần để phát triển plugin: kiến trúc plugin, tạo, đặc điểm plugin, chạy, debug và đóng gói plugin…  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à CortexM3  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 plugin trong Eclipse  Xây dựng ARMStudio hoàn chỉnh

Trang 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 - 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

Trang 2

TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN

KHOA CÔNG NGHỆ THÔNG TIN

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

Trang 3

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

Trang 4

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

Trang 5

LỜI CÁM ƠN

  

TpHCM, ngày 02 tháng 06 năm 2010

Trang 6

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

Trang 7

Debugger và CDT Project Template Engine.

 Tích hợp Debugger vào ARMStudio để hoàn chỉnh hệ thống và cảitiế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

 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

Trang 8

 Xây dựng được template cho nhiều vi xử lý ARM7, ARM9, M3.

Cortex- 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:

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

8 Xây dựng được template cho nhiều vi xử lý

thuộc các họ ARM7, ARM9, Cortex-M3

20/05  03/06

Trang 9

9 Xây dựng hệ thống ARMStudio chạy trên

Linux

04/06  18/06

Xác nhận của GVHD Ngày……tháng……năm……

SV Thực hiện  Mục lục Chương 1 ECLIPSE VÀ PLUGIN TRONG ECLIPSE 18

1.1 Tổng quan về Eclipse 18

1.1.1 Giới thiệu Eclipse, download và cài đặt 18

1.1.2 Kiến trúc Eclipse 19

Trang 10

1.1.3 Cách thức quản lý các tập tin mã nguồn 23

1.2 Kiến trúc plug-in trong Eclipse 23

1.2.1 Giới thiệu về plug-in và extension point 23

1.2.2 The plug-in manifest file 24

1.2.3 Vòng đời của một plug-in 25

1.2.4 Đóng gói plug-in 25

1.2.5 Plug-in fragment and features 26

Chương 2 TỔNG QUAN VỀ CHIP ARM 26

2.1 ARM7 (32-bit) 26

2.1.1 ARM7EJ-S 26

2.1.2 ARM7TDMI 26

2.2 ARM9 (32-bit) 26

2.2.1 Giới thiệu tổng quan 26

2.2.2 Tìm hiểu về ARM968E-S 26

2.2.3 Lĩnh vực ứng dụng ARM9 26

2.3 Cortex-M3 26

2.3.1 Giới thiệu tổng quan 26

2.3.2 Đơn vị xử lý trung tâm Cortex (Cortex CPU) 26

2.3.3 Đặc điểm nổi bật của Cortex-M3 26

Chương 3 GIỚI THIỆU BỘ BIÊN DỊCH GNUARM 26

3.1 Giới thiệu GNUARM Toolchain 26

3.2 Các thành phần của Toolchain 26

3.2.1 GNU Binutils 26

3.2.2 Compiler set (GCC) 26

3.2.3 Debugger 26

Trang 11

3.2.4 Newlib 26

Chương 4 CDT (C/C++ DEVELOPMENT TOOLING) 26

4.1 Giới thiệu CDT 26

4.2 Các gói chính trong mã nguồn CDT 26

4.3 CDT Debugger 26

4.3.1 Tương tác với trình gỡ lỗi C/C++ (CDT Debugger) 26

4.3.2 Truy cập GDB bằng Eclipse CDT và MI (Machine Interface) 26

4.4 Phát triển CDT Plug-in 26

4.4.1 Managed Build System 26

4.4.2 Project Template Engine 26

Chương 5 XÂY DỰNG HỆ THỐNG ARMSTUDIO CHO CÁC VI XỬ LÝ HỌ ARM 26 5.1 Giới thiệu hệ thống và nhu cầu xây dựng ARMStudio 26

5.2 Các chức năng của hệ thống ARMStudio 26

5.3 Chức năng của các plug-in trong hệ thống ARMStudio 26

5.3.1 vn.edu.hcmuns.selab.debug.core 26

5.3.2 vn.edu.hcmuns.selab.debug.ui 26

5.3.3 vn.edu.hcmuns.selab.arm.target.mcb23xx 26

5.3.4 vn.edu.hcmuns.selab.arm.ui 26

5.3.5 vn.edu.hcmuns.selab.arm.core 26

5.3.6 vn.edu.hcmuns.selab.tool.fm 26

5.3.7 vn.edu.hcmuns.selab.arm.managedbuilder.gnu 26

5.3.8 vn.edu.hcmuns.selab.arm.managedbuilder.gnu.ui 26

5.4 Mô tả quá trình xây dựng hệ thống 26

5.4.1 Các chức năng đã có ở hệ thống ARMStudio cũ 26

Trang 12

5.4.2 Các chức năng được cải tiến trong ARMStudio 26

5.4.3 Các chức năng mới ở hệ thống ARMStudio 26

5.5 Nhận xét và đánh giá (2 trang) 26

5.5.1 Tạo ra mô hình CDT 26

5.5.2 Tạo mới CProject 26

5.5.3 Tạo mới TranslationUnit và WorkingCopy 26

Danh sách hình Hình 1-1 Kiến trúc Eclipse 20

Hình 1-2 Kiến trúc hỗ trợ phát triển plug-in trên eclipse 22

Hình 1-3 Plugin và extension point trong Eclipse 23

Hình 2-1Bộ thanh ghi ở trạng thái ARM của vi xử lý ARM7EJ-S 26

Trang 13

Hình 2-2Bộ thanh ghi ở trạng thái Thumb của vi xử lý ARM7EJ-S 26

Hình 2-3 Những sản phẩm ứng dụng phổ biến của vi xử lý ARM7 26

Hình 2-4 Các thành phần chính của vi xử lý ARM968E-S 26

Hình 2-5 So sánh đặc điểm giữa các vi xử lý trong họ ARM9 26

Hình 2-6 Tập thanh ghi ARM968E-S 26

Hình 2-7 Thanh ghi trạng thái chương trình của vi xử lý ARM968E-S 26

Hình 2-8 Các thành phần chính của vi xử lý Cortex-M3 26

Hình 2-9 Kiến trúc đường ống của ARM Cortex-M3 26

Hình 2-10 Kiến trúc load và store của vi xử lý ARM Cortex-M3 26

Hình 2-11 Mô hình lập trình của vi xử lý ARM Cortex-M3 26

Hình 2-12 Thanh ghi trạng thái chương trình của vi xử lý Cortex-M3 26

Hình 2-13 Mô hình hoạt động của chế độ Thread và Handler 26

Hình 4-1 Kiến trúc CDT tổng quát 26

Hình 4-2 Kiến trúc CDT chi tiết 26

Hình 4-3 Mô hình Build Definition 26

Hình 4-4 Tổng quan về Managed Build System 26

Hình 5-1 Các project mẫu cho các vi xử lý được hỗ trợ trong ARMStudio 26

Hình 5-2 Giao diện ARMStudio Launch Configuration 26

Trang 14

TÓM TẮT KHÓA LUẬN

Trang 15

MỞ ĐẦU

Trang 16

TỔNG QUAN

Trang 18

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ể

Trang 19

mở rộng, các tool và runtime để xây dựng, triển khai và quản lý các phầnmề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ơiphá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ácnhà 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 đồngEclipse Ngày nay, cộng đồng Eclipse gồm nhiều cá nhân và tổ chức từ cácnhá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-incho Eclipse hoặc những người sử dụng Eclipse như là nền tảng cho các ứngdụng phát triển phần mềm cần release code Eclipse mà họ dùng hoặc sửachữa theo giấy phép EPL

 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ầnmề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ácnhau 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ệnChạy được trên nhiều hệ điều hành, gồm Window và Linux

Trang 20

 Lợi dụng tính phổ biến của ngôn ngữ lập trình Java để viết ra cáctool.

Vai trò chính của platform là cung cấp các tool của các nhà sản xuấtkhá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àythông gia giao diện API, các lớp và phương thức Ngoài ra, platform còncung 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ứctạ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

Trang 21

1.1.2.1 SWT

Standard Widget Toolkit (SWT) cung cấp các API độc lập nền tảngcho 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 đơngiả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ácvấn đề đó Swing là một GUI Framework của riêng Java , không phụ thuộcvà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 ứngdụng có giao diện bằng Swing sẽ trông không được phù hợp, tự nhiên trênnề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ácthà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úngtrong thư viện của nó Người dùng hoàn toàn có thể chạy một ứng dụngJava có giao diện chẳng khác gì giao diện được tạo bằng C# hay VB trong

Trang 22

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

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áttriể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-inDevelopment 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

Trang 23

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.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áomột extension point mới Mỗi plug-in phụ thuộc vào tập hợp các plug-inkhá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

Trang 24

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-inmanifest 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ênplug-in, phiên bản, tên lớp, tên file JAR Ngoài ra, tập tin manifest cònchứ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à workbenchplugin

Một trong những extension cần tìm hiểu là extension có thuộc tínhpoint=org.eclipse.ui.actionSets Một action set là một nhómcá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 đó

Trang 25

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 KhiEclipse 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ươngthức startup() và trước khi unload thì gọi shutdown() Hai phương thứcload 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ụcplugins vào thời điểm khỡi động Để cài đặt một plug-in thì cần tạo mộtthư 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ủaplug-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

Trang 26

Để 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ủaplug-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 releasemới đầy đủ hoặc có thể được dùng để cung cấp chức năng cho mộtnề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 DevelopmentTooling (JDT) là một feature project được tạo thành bởi cácplug-in như Java editor, debugger, và console

Tập tin đặc tả feature project là feature.xml, tập tinnày chứa tham chiếu đến các plug-in và các tài nguyên khác củafeature project, đồng thời chứa các thông tin về việc update,copyright và license

Trang 27

Chương 2. 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

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

Trang 28

1.1.1 ARM7EJ-S

Vi xử lý ARM7EJ-S có kiến trúc ARMv5TEJ với công nghệ Jazelle nângcao hiệu quả của việc xử lý tín hiệu số (Digital Signal Processing) Côngnghệ 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

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

 Kiến trúc 32 bit chỉ có lệnh 32 bit và kiến trúc 16 bit chỉ có lệnh 16bit, 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

Trang 29

 ARM7EJ-S cho người sử dụng lựa chọn trạng thái ARM, Thumbhoặc là trộn lẫn cả hai Điều này cho phép người sử dụng tối ưu hóamậ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 thanhghi 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:

o Không gian địa chỉ 32 bit

o Thanh ghi 32 bit

o 32 bit Shifter và ALU

o Mang chuyển bộ nhớ 32 bit

Do đó, tập lệnh Thumb có phạm vi cho từng thành phần dàihơn, thao tác số học mạnh mẽ và không gian địa chỉ rộng lớn

 Thumb code có kích thước chỉ bằng 65% code Arm và hiệu quả đến160% khi chạy code ARM trên bộ nhớ 16 bit.Tập lệnh Thumb làmcho vi xử lý ARM7EJ-S thích hợp một cách lý tưởng cho các ứngdụng nhúng vốn hạn chế về bộ nhớ

1.3.1.1 Mô hình vi xử lý ARM7EJ-S

Trạng thái thao tác của vi xử lý:

Vi xử lý ARM7EJ-S có 3 trạng thái thao tác: ARM, Thumb,Jazelle

Khi chuyển đổi giữa 3 trạng thái này thì không ảnh hưởng đếnmode của vi xử lý và nội dung của các thanh ghi

 Chuyển đổi giữa các trạng thái:

Người dùng có thể chuyển đổi giữa các trạng thái của ARM7EJ-S:

Trang 30

- Chuyển đổi giữa ARM và Thumb sử dụng lệnh BX và BLX

- Chuyển đổi giữa ARM và Jazelle sử dụng lệnh BXJ

Tất cả các exception được xử lý ở trạng thái ARM, nếu exceptionxuất hiện ở trạng thái Thumb hoặc Jazelle, vi xử lý trở lại trạng tháiARM Việc chuyển đổi trở lại trạng thái Thumb hoặc Jazelle đượcthực hiện tự động sau khi exception return

Tổ chức bộ nhớ

Vi xử lý xem bộ nhớ như là tập hợp dãy các byte được đánh sốtăng từ 0 Ví dụ:

 Byte 0 đến byte 3 lưu từ (word) thứ nhất

 Byte 4 đến byte 7 lưu từ (word) thứ hai

Vi xử lý có thể thao tác với các từ (word) được lưu trữ trong bộnhớ theo 2 kiểu định dạng:

Kiểu thao tác (Operating modes)

Tất cả các trạng thái đều có 7 kiểu thao tác:

 User mode: trạng thái thực thi chương trình thông thường của ARM,được dùng để thực thi hầu hết các ứng dụng

 Fast interrupt (FIQ) mode: kiểu thao tác này được dùng để xử lý ngắtkhẩn cấp

 Interrupt (IRQ) mode: kiểu xử lý được dùng để xử lý các ngắt thôngthường

Trang 31

 Supervisor mode: protected mode cho hệ điều hành

 Abort mode : được gọi sau khi dữ liệu hoặc lệnh Prefetch Abort

 System mode: user mode đặc quyền dành cho hệ điều hành

 Undefined mode: được dùng khi xảy ra exception lệnh chưa đượcđịnh nghĩa

User mode còn được biết đến như là kiểu thao tác đặc quyền(privileged modes) Kiểu thao tác đặc quyền được dùng để phục vụinterrupt hoặc exception hoặc để truy xuất đến các tài nguyên được bảovệ

Thanh ghi

 Vi xử lý ARM7EJ-S có tất cả 37 thanh ghi: 31 thanh ghi đa dụng 32bit và 6 thanh ghi trạng thái 32 bit

 Không thể truy xuất tất cả các thanh ghi cùng thời điểm Trạng thái

và kiểu thao tác của vi xử lý quyết định thanh ghi nào được phéptruy xuất

 Bộ thanh ghi của trạng thái ARM (ARM state)

Ở trạng thái ARM, có 16 thanh ghi đa dụng và 1 hoặc 2 thanh ghitrạng thái có thể được truy xuất tại bất kỳ thời điểm nào Trong kiểuthao tác độc quyền, banked registers có thể được sử dụng

Có 16 thanh ghi có thể truy xuất trực tiếp (r0-r15) Thanh ghitrạng thái chương trình (CPSR) chứa các bit điều kiện và bit mode.Thanh ghi đa dụng ro đển r13 được dùng để lưu trữ dữ liệu hoặc địachỉ Thanh ghi r14, r15và CPSR có những chức năng đặc biệt sau:

 Thanh ghi liên kết (Link register):

o Thanh ghi r14 được sử dụng như là thanh ghi liên kết LR

o Thanh ghi r14 nhận giá trị của thanh ghi r15 khi lệnh BL hoặcBLX được thực thi

Trang 32

o Ngoài thời điểm này ra, thanh ghi r14 có thể được sử dụngnhư là thanh ghi đa dụng Banked registers r14_svc, r14_irq,r14_fiq,

r14_abt, and r14_und cũng có thể được sử dụng để lưugiá trị trả về của thanh ghi r15 khi ngắt và exception xảy rahoặc khi lệnh BL hoặc BLX được thực thi bên trong ngắthoặc exception

 Thanh ghi PC (Program Counter):

o Thanh ghi PC lưu trữ các trạng thái (Arm state, Thumb state,hoặc Jazelle state)

 Ở kiểu thao tác đặc quyền, thanh ghi Saved Program StatusRegister (SPSR) được phép truy xuất Thanh ghi này chứa các bít

cờ và kiểu thao tác

 Banked registers là các thanh ghi vật lý riêng biệt được ánh xạthành các thanh ghi khác tùy thuộc vào kiểu thao tác hiện thờicủa vi xử lí Nội dung của banked registers được lưu trữ khi kiểuthao tác thay đổi

 Mỗi banked register có một id để xác định thanh ghi, kiểu thaotác nào đang được ánh xạ tới Xem hình …

 FIQ mode có 7 banked register ánh xạ tới các thanh ghi từ r8 đếnr14 (r8_fiq đến r14_fiq) Do đó, các xử lý FIQ không cần phảilưu bất kì thanh ghi nào

 Các kiểu thao tác còn lại (Supervisor, Abort, IRQ, Undefined),mỗi kiểu thao tác có những thanh ghi tương ứng ánh xạ tới cácthanh ghi từ r13 tới r14

Trang 33

Hình 2-4Bộ thanh ghi ở trạng thái ARM của vi xử lý ARM7EJ-S

 Bộ thanh ghi của trạng thái Thumb

Bộ thanh ghi của trạng thái ARM là tập con cùa bộ thanh ghitrạng thái ARM Người sử dụng có thể truy xuất trực tiếp đến:

 8 thanh ghi đa dụng: từ r0-r7

 Thanh ghi PC

 Stack pointer, SP (ARM r13)

Thanh ghi liên kết LR (ARM r14)

Trang 34

 Thanh ghi CPSR

Hình 2-5Bộ thanh ghi ở trạng thái Thumb của vi xử lý ARM7EJ-S

1.3.2 ARM7TDMI

ARM7TDMI là 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 do tiêu thụ năng lượng thấp và kíchthước nhỏ

Trang 35

Bộ định vịNokia 500

Khủng long

Ugobe Pleo

Máy chủ Veracity TimeNet

Hệ thống thanh toánqua điện thoạiExaDigm XD2100SP

Vô lăng không

Microsoft Xbox

360

Máy tính HewlettPackard 20b Ổ đĩa LaCieBigger

Hình 2-6 Những sản phẩm ứng dụng phổ biến của vi xử lý ARM7

1.4 ARM9 (32-bit)

1.4.1 Giới thiệu tổng quan

Họ vi xử lý ARM9 là giải pháp vi xử lý đơn cho các ứng dụngmicrocontroller, DSP và Java ARM9 đem đến thị trường chip giá trẻ và giảm

Trang 36

bớt sự phức tạp, tiết kiệm năng lượng và thời gian giao dịch Họ ARM9 gồm

có các vi xử lý ARM968E-S, ARM946E-S, ARM926E-S

ARM9 DSP là vi xử lý được cải tiến để tương thích tốt với các ứng dụngđòi hỏi sự kết hợp giữa DSP và hiệu quả của microcontroller

ARM946E-S

ARM946E-S có sự cải tiến về bộ xử lý cache với MPU cho các ứng dụng

Trang 37

Vi xử lý hướng thời gian thực được bổ sung thêm đầy đủ MemoryProtection Unit Vi xử lý này có ích cho các ứng dụng mà phần lớn code nằm ởtrong bộ nhớ chính và có nhu cầu load vào bộ nhớ cache, trong khi việc xử lýcác exception và dữ liệu có thể tại Tightly Coupled Memory.

Hình 2-8 So sánh đặc điểm giữa các vi xử lý trong họ ARM9

1.4.2 Tìm hiểu về ARM968E-S

1.4.2.1 Giới thiệu ARM968E-S

Vi xử lý ARM968E-S là thành viên của họ ARM9 Thumb vàimplement kiến trúc ARMv5TE Vi xử lý này hỗ trợ tập lệnh 32 bit ARM

và 16-bit Thumb Vi xử lý ARM968E-S được dùng trong nhiều lĩnh vựcnhúng đòi hòi hiệu quả cao, chi phí thấp, kích thước nhỏ và tiêu thụ nănglượng ít

Đặc điểm của ARM968E-S:

Trang 38

 Lõi ARM9E-S

 Instruction Coupled Memory (ITCM) và Data Coupled Memory (DTCM) tương tác với nhau

Tightly- Giao diện DMA (Direct Memory Access)

 Giao diện BIU (Bus Interface Unit)

 Bản đồ bộ nhớ cố định

 Giao diện lựa chọn ETM

 Giao diện debug đầy đủ và được làm nhỏ đi

 Hỗ trợ scan test

1.4.2.2 Mô hình lập trình

1.4.2.2.1 Kiểu thao tác của vi xử lý

Có 7 kiểu thao tác của vi xử lý:

User: kiểu thao tác không đặc quyền dành cho việc thực thi các

chương trình thông thường

Fast interrupt (FIQ): kiểu thao tác đặc quyền để xử lý các ngắt khẩn

Trang 39

Ngoài kiểu thao tác User mode thì các kiểu thao tác còn lại được biếtđến như là kiểu thao tác đặc quyền Kiểu thao tác đặc quyền được dùng đểphục vụ cho các ngắt hoặc truy xuất đến các tài nguyên được bảo vệ.

1.4.2.2.2 Tập thanh ghi của ARM968E-S

Vi xử lý ARM968E-S có 37 thanh ghi 32-bit: trong đó có 16 thanhghi đa dụng, 1 thanh ghi trạng thái chương trình hiện tại, 15 banked registerđược dùng như là thanh ghi đa dụng và dùng cho nhiều kiểu thao tác, 5banked register được dùng như là thanh ghi lưu lại trạng thái chương trìnhcho các kiểu thao tác Các thanh ghi này không thể truy xuất cùng thờiđiểm Trạng thái và kiểu thao tác của vi xử lý sẽ quyết định thanh ghi nào

có thể dùng được tại thời điểm đó

Hình 2-9 Tập thanh ghi ARM968E-S

ARM9 có nhiều cải tiến lớn so với ARM7 bằng việc sử dụng thêmnhiều transitor, gồm có:

Trang 40

• Cải tiến tần số đồng hồ: từ kiến trúc pipleline 3 giai đoạn thành 5 giaiđoạn để tốc độ đồng hồ tăng gần như gấp đôi

• Cải tiến chu kỳ xung nhịp: load và lưu trữ nhanh hơn, nhiều lệnh chỉtốn một chu kỳ đồng hồ, tối ưu hóa lúc compiler

Vi xử lý ARM9 kết hợp chặt chẽ giữa các lệnh để gia tăng DSP như

đa thực thi để hỗ trợ có hiệu quả việc thi hành các thuật toán xử lý tín hiệu

số

Truy xuất tập thanh ghi ở trạng thái Thumb

Ở trạng thái Thumb, ngoài các câu lệnh như trạng thái ARM, còn có

các câu lệnh để truy xuất đến các Thanh ghi trạng thái chương trình và các

thanh ghi cao hơn (r8-r15):

Ở trạng thái Thumb, không có lệnh MRS hoặc MSR để di chuyển dữ

liệu giữa CPSR hoặc SPSR và các thanh ghi đa dụng

Ở trạng thái Thumb, chỉ có những lệnh sau có thể truy cập vào các

thanh ghi cao:

- Lệnh ADD: dùng ADD (4)

- Lệnh CMP: dùng CMP (3)

- Lệnh MOV: dùng MOV (3)

- Lệnh BLX: dùng BLX (2)

Thanh ghi trạng thái chương trình

Vi xử lý có một thanh ghi trạng thái chương trình hiện thời (CPSR) và

5 thanh ghi trạng thái chương trình đã được lưu lại (SPSRs) để xử lý các

exception Thanh ghi trạng thái chương trình có nhiệm vụ:

 Lưu trữ thông tin về những thao tác tính toán gần đây nhất được thựchiện trong ALU

 Điều khiển mở và đóng các ngắt

Ngày đăng: 08/07/2014, 21:07

HÌNH ẢNH LIÊN QUAN

Hình 1-1 Kiến trúc Eclipse - 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
Hình 1 1 Kiến trúc Eclipse (Trang 17)
Hình 1-2 Kiến trúc hỗ trợ phát triển plug-in trên eclipse - 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
Hình 1 2 Kiến trúc hỗ trợ phát triển plug-in trên eclipse (Trang 19)
Hình   1-3  Plugin   và extension   point   trong Eclipse - 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
nh 1-3 Plugin và extension point trong Eclipse (Trang 20)
Hình 2-4Bộ thanh ghi ở trạng thái ARM của vi xử lý ARM7EJ-S - 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
Hình 2 4Bộ thanh ghi ở trạng thái ARM của vi xử lý ARM7EJ-S (Trang 29)
Hình 2-5Bộ thanh ghi ở trạng thái Thumb của vi xử lý ARM7EJ-S - 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
Hình 2 5Bộ thanh ghi ở trạng thái Thumb của vi xử lý ARM7EJ-S (Trang 30)
Hình 2-6 Những sản phẩm ứng dụng phổ biến của vi xử lý ARM7 - 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
Hình 2 6 Những sản phẩm ứng dụng phổ biến của vi xử lý ARM7 (Trang 31)
Hình 2-7 Các thành phần chính của vi xử lý ARM968E-S - 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
Hình 2 7 Các thành phần chính của vi xử lý ARM968E-S (Trang 32)
Hình 2-8 So sánh đặc điểm giữa các vi xử lý trong họ ARM9 - 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
Hình 2 8 So sánh đặc điểm giữa các vi xử lý trong họ ARM9 (Trang 33)
Hình 2-9 Tập thanh ghi ARM968E-S - 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
Hình 2 9 Tập thanh ghi ARM968E-S (Trang 35)
Hình 2-11 Các thành phần chính của vi xử lý Cortex-M3 - 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
Hình 2 11 Các thành phần chính của vi xử lý Cortex-M3 (Trang 41)
Hình 2-12 Kiến trúc đường ống của ARM Cortex-M3 - 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
Hình 2 12 Kiến trúc đường ống của ARM Cortex-M3 (Trang 42)
Hình 2-13 Kiến trúc load và store của vi xử lý ARM Cortex-M3 Nguồn: http://www.arm.vn/default.aspx?tabid=748&amp;g=posts&amp;t=20 - 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
Hình 2 13 Kiến trúc load và store của vi xử lý ARM Cortex-M3 Nguồn: http://www.arm.vn/default.aspx?tabid=748&amp;g=posts&amp;t=20 (Trang 43)
Hình 2-14 Mô hình lập trình của vi xử lý ARM Cortex-M3 Nguồn: http://www.arm.vn/default.aspx?tabid=748&amp;g=posts&amp;t=20 - 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
Hình 2 14 Mô hình lập trình của vi xử lý ARM Cortex-M3 Nguồn: http://www.arm.vn/default.aspx?tabid=748&amp;g=posts&amp;t=20 (Trang 44)
Hình 2-16 Mô hình hoạt động của chế độ Thread và Handler Nguồn: http://www.arm.vn/default.aspx?tabid=748&amp;g=posts&amp;t=20 - 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
Hình 2 16 Mô hình hoạt động của chế độ Thread và Handler Nguồn: http://www.arm.vn/default.aspx?tabid=748&amp;g=posts&amp;t=20 (Trang 46)
Hình 4-17 Kiến trúc CDT tổng quát - 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
Hình 4 17 Kiến trúc CDT tổng quát (Trang 65)
Hình 4-18 Kiến trúc CDT chi tiết - 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
Hình 4 18 Kiến trúc CDT chi tiết (Trang 65)
Hình 4-19 Mô hình Build Definition - 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
Hình 4 19 Mô hình Build Definition (Trang 79)
Hình 4-20 Tổng quan về Managed Build System     Nguồn: http://www.eclipse.org - 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
Hình 4 20 Tổng quan về Managed Build System Nguồn: http://www.eclipse.org (Trang 80)
Hình 5-21 Các project mẫu cho các vi xử lý được hỗ trợ trong ARMStudio - 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
Hình 5 21 Các project mẫu cho các vi xử lý được hỗ trợ trong ARMStudio (Trang 107)
Hình 5-22 Giao diện cấu hình thông tin chip trong ARMStudio cũ - 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
Hình 5 22 Giao diện cấu hình thông tin chip trong ARMStudio cũ (Trang 114)
Hình 5-23 Giao diện cấu hình thông tin chip trong ARMStudio mớ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
Hình 5 23 Giao diện cấu hình thông tin chip trong ARMStudio mới (Trang 115)
Hình 5-24 Cơ chế hoạt động của hệ thống debug trong ARMStudio - 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
Hình 5 24 Cơ chế hoạt động của hệ thống debug trong ARMStudio (Trang 117)
Hình 5-25 Giao diện ARMStudio Launch Configuration - 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
Hình 5 25 Giao diện ARMStudio Launch Configuration (Trang 119)
Hình 5-26 Bộ cấu hình toolchain Linux GNUARM - 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
Hình 5 26 Bộ cấu hình toolchain Linux GNUARM (Trang 123)
Hình 5-27 Project Type &#34;ARM Linux Application&#34; - 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
Hình 5 27 Project Type &#34;ARM Linux Application&#34; (Trang 124)
Bảng mã Unicode. - 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ảng m ã Unicode (Trang 140)

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w