Nội dung của đồ án này bao gồm những phần sau: Phần I: Java Phần II: Giới thiệu về bộ VXL Java Phần III: Quy trình xây dựng một ứng dụng trên Kit aJ-200MEK Các tài liệu tham khảo, sử dụ
Trang 1HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
KHOA KỸ THUẬT ĐIỆN – ĐIỆN TỬ 1
ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC
Đề tài: Phát triển hệ thống thu nhận hình ảnh
sử dụng bộ VXL java-Kit aJ-200MEK
Giảng viên hướng dẫn : TS NGUYỄN NGỌC MINH
Sinh viên thực hiện: PHẠM VĂN HẢI
Lớp : D07KTDT1 Khoá : 2007-2012
Hệ : Chính quy
Hà Nội, tháng 11 /2009
Trang 2HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
KHOA KỸ THUẬT ĐIỆN – ĐIỆN TỬ 1
ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC
Đề tài: Phát triển hệ thống thu nhận hình ảnh
sử dụng bộ VXL java – Kit aJ-200MEK
Giảng viên hướng dẫn : TS NGUYỄN NGỌC MINH
Sinh viên thực hiện: PHẠM VĂN HẢI
Lớp : D07KTD1 Khoá : 2007-2012
Hệ : Chính quy
Hà Nội, tháng … /2009
GVHD: TS Nguyễn Ngọc Minh SVTH: Phạm Văn Hải, lớp D07-KTDT1
Trang 3MỞ ĐẦU
Với sự phát triển mạnh mẽ của nền công nghiệp điện tử, có rất nhiều các thiết bị điện tử đã ra đời thay làm thay đổi nhiều mặt trong cuộc sống Con người có nhiều cách tiếp cận, các tiêu chuẩn khác thay thế với các cách thức truyền thống Các thiết bị số cá nhân di động là một dòng thiết bị thể hiện rõ nhất điều đó, nó gần như đã tạo lên một văn hóa trong cuộc sống con người
Với mục đích áp dụng các kiến thức thiết kế điện tử đã biết, và bước đầu làm quen với phương thức thiêt kế hệ thống nhúng sử dụng bộ VKL Java-32bit để xây dựng một ứng dụng thực tế - một ứng dụng nhỏ về quay video sử dụng bộ Kit aJ-200MEK Dữ liệu hình ảnh sẽ được thu nhận qua một sessor sau đó đưa qua bộ xử lí chính, lưu trữ vào trong bộ nhớ chính, và hiển thị lên màn hình LCD
Nội dung của đồ án này bao gồm những phần sau:
Phần I: Java
Phần II: Giới thiệu về bộ VXL Java
Phần III: Quy trình xây dựng một ứng dụng trên Kit aJ-200MEK
Các tài liệu tham khảo, sử dụng trong đồ án này đều được ghi lại tại mục Tài liệu
tham khảo Đồ án đã có những kết quả nhất định song do hạn chế về mặt thời gian và kiến thức nên trong đồ án này ko thể tránh được những thiếu sót, rất mong được sự đánh già và bổ sung của các thầy cô và các bạn
Em xin chân thành cảm ơn!
Sinh viên thực hiện
Phạm Văn Hải
Trang 4Phần I : Java
1. Ngôn ngữ lập trình Java
1.1 Giới thiệu chung
Java là một nền tảng phát triển các ứng dụng phần mềm có vị trí rất lớn trong những năm cuối thế kỉ 20, đầu thế kỉ 21 Đánh dấu sự
trưởng thành của mô hình lập trình hướng đối tượng, nó được coi là
một nền tảng mang tính cách mạng trong ngành phần mềm Mô hình
máy ảo Virtual Machine đã cho phép các ứng dụng viết bằng Java có
thể chạy trên nhiều hệ điều hành khác nhau
Lần đầu tiên xuất hiện vào năm 1992, như là một ngôn ngữ dùng trong nội bộ tập đoàn Sun Microsystems để xây dựng ứng dụng
điều khiển các bộ xử lý bên trong máy điện thoại cầm tay, lò vi sóng,
các thiết bị điện tử dân dụng khác Không chỉ là một ngôn ngữ, Java
còn là một nền tảng phát triển và triển khai ứng dụng trong đó máy ảo
Java, bộ thông dịch có vai trò trung tâm
Sun, công ty đã phát minh ra ngôn ngữ Java, chính thức ban hành
bộ công cụ phát triển bản Java Development Kit 1.0 vào
năm 1996 hoàn toàn miễn phí để các nhà phát triển có thể tải về, học
Java, xây dựng các ứng dụng Java và triển khai chúng trên các hệ điều
hành có hỗ trợ Java Ban đầu, Java chủ yếu dùng để phát triển
các applet - các ứng dụng nhúng vào trình duyệt web, góp phần làm
GVHD: TS Nguyễn Ngọc Minh SVTH: Phạm Văn Hải, lớp D07-KTDT1
Trang 5sinh động các trang web tĩnh vốn hết sức tẻ nhạt hồi dó Tuy nhiên,
cùng với sự phát triển của công nghệ thông tin và nhu cầu của xã hội,
Java applet đã dần mất đi vị trí của nó và thay vào đó, các công ty,
cộng đồng ủng hộ Java đã phát triển nó theo một hướng khác Ngoài ra,
Java còn được dùng để phát triển các applications – các ứng dụng độc
lập Các bước phát triển một ứng dụng Java:
Hình 1.1.1.1: Các bước phát triển một ứng dụng Java
Hiện nay, công nghệ Java được chia làm ba bộ phận:
J2SE (Java 2 Standard Edittion)
Gồm các đặc tả, công cụ, API - giao diện lập trình ứng dụng của
Java giúp phát triển các ứng dụng trên desktop và các máy tính kiểu
trạm làm việc
J2EE (Java 2 Enterprise Edition)
Gồm các đặc tả, công cụ, API mở rộng J2SE để phát triển các ứng
dụng qui mô xí nghiệp, chủ yếu để chạy trên máy chủ (server) Bộ phận
hay được nhắc đến nhất của công nghệ này là công nghệ Servlet/JSP:
sử dụng Java để xây dựng các ứng dụng trên nền tảng web server
J2ME (Java 2 Micro Edition)
Trang 6Gồm các đặc tả, công cụ, API mở rộng để phát triển các ứng dụng
Java chạy trên điện thoại di động, thẻ thông minh, thiết bị điện tử cầm
tay, robo và những ứng dụng điện tử khác
Lúc đầu, các Java IDE tập trung vào phát triển J2SE Tuy nhiên, khi J2EE đạt được sự chấp thuận rộng rãi, các nhà cung cấp tiến hành
hỗ trợ phát triển các ứng dụng sử dụng J2EE vào các IDE của họ
J2ME là bộ phận được phát triển sau cùng Tuy nhiên, nhiều chuyên
gia đã dự đoán về sự phát triển lớn mạnh của thị trường phát triển các
ứng dụng J2ME, các nhà cung cấp đã đưa ra các phiên bản mở rộng
cho các sản phẩm IDE của họ để hỗ trợ thêm J2ME Ngoài ra, cácnhà
cung cấp chuyên nghiệp cũng đã phát triển các IDE J2ME đơn
Java đã trải qua 3 bước phát triển quan trọng: Java 1.0 gắn liền với bản JDK đầu tiên, Java 2 gắn với JDK 1.2 và Java 5 gắn với
- Các đặc tả chi tiết kĩ thuật (specifications)
- Ngôn ngữ lập trình (programming language)
1.2 Một số điểm nổi bật của Java so với các ngôn ngữ lập trình
khác
Các ngôn ngữ lập trình được ra đời từ rất lâu, và tính cho đến nay
đã có tới hàng chục loại khác nhau Tuy nhiên số này được phân chia ra
làm 2 loại, các ngôn ngữ lập trình bậc thấp và các ngôn ngữ lập tnình
bậc cao Những ngôn ngữ lập trình bậc thấp, (điển hình nh assembler)
hỗ trợ rất ít cho ngời sử dụng, các câu lệnh thường khó hiểu vì nó đòi
hỏi bạn phải trực tiếp điều khiển việc giao tiếp với máy và các ngôn
ngữ bậc cao (có hỗ trợ cho ngời lập trình thông qua chơng trình dịch và
một số môđun có sẵn - chẳng hạn như Turbo Pascal, C, Java ) Tất
GVHD: TS Nguyễn Ngọc Minh SVTH: Phạm Văn Hải, lớp D07-KTDT1
Trang 7nhiên nếu phải chọn lựa giữa ngôn ngữ lập trình bậc thấp và ngôn ngữ
lập trình bậc cao, hầu hết các lập trình viên sẽ chọn giải pháp thứ hai vì
họ sẽ tiết kiệm đợc nhiều thời gian, công sức và đạt hiệu quả cao hơn
(ví dụ như phải viết một chương trình để truyền file giữa 2 máy qua
mạng điện thoại, với ngôn ngữ assembler bạn cần phải có một khối
lưỡng công việc cực kì lớn, với khoảng vài trăm dòng lệnh trong khi
đó, nếu bạn thông thạo Java, bạn sẽ thấy điều này chẳng có gì khó khăn
cả - đơn giản là viết vài chục dòng lệnh mà thôi)
Khác với phần lớn ngôn ngữ lập trình thông thường, thay
vì biên dịch mã nguồn thành mã máy hoặc thông dịch mã nguồn khi
chạy, Java được thiết kế để biên dịch mã nguồn thành bytecode,
bytecode sau đó sẽ được môi trường thực thi (runtime environment)
chạy Bằng cách này, Java thường chạy chậm hơn những ngôn ngữ lập
trình thông dịch khác như C++, Python, Perl, PHP, C# và cú pháp
trong Java được vay mượn nhiều từ C & C++ Tuy nhiên, Java có cú
pháp hướng đối tượng đơn giản hơn và có tính năng xử lý cấp cao hơn
Do đó việc viết một chương trình bằng Java dễ hơn, đơn giản hơn, đỡ
tốn công sửa lỗi hơn Dùng bộ thư viện chuẩn KFC, nhiều đoạn code
Java chỉ mất vài dòng trong khi C phải mất cả trang giấy Lập trình C
rất hay xảy ra lỗi và khó sửa
Chương trình phần mềm viết bằng Java có thể chạy trên mọi nền
tảng (platform) khác nhau thông qua một môi trường thực thi với điều
kiện có môi trường thực thi thích hợp hỗ trợ nền tảng đó Khả năng này
thường được gọi là "viết một lần, chạy mọi nơi" (write once, run
anywhere) là một lợi thế cực lớn Môi trường thực thi của Sun
Microsystems hiện hỗ trợ Sun Solaris, Linux, Mac
OS, FreeBSD & Windows
Ban đầu Sun Microsystems đã nghĩ ra Java Vỉtual Machine(JVM) – máy ảo Java để hỗ trợ các ứng dụng Java biên dịch
bytecode, và cho tới nay đã sản xuất được 4.5 tỉ JVM Không đúng khi
nói rằng trình biên dịch Java không biên dịch ra mã máy - machine
code Thực chất file code Java sau khi đưa vào trình biên dịch sẽ được
biên dịch ra thành bytecode dành cho cái máy ảo Java Trên các
platform thực, Java Runtime Environment (JRE) sẽ cho phép JVM biện
dịch lại toàn bộ bytecode thành code gốc của platform đó Để cho các
Trang 8chương trình Java chạy trên nhiều platform khác nhau, Sun chỉ việc
port cái emulator, tức JRE, sang các platform đó Nhờ vậy mà một
chương trình Java đồ sộ viết cho máy tính, đem sang điện thoại di động
vẫn chạy được bình thường
Cụ thể một số đặc điểm nổi bật của ngôn ngự lập trình Java so với các ngôn ngữ lập trình khác:
• Đơn giản (simple)
• Hướng đối tượng (Object - oriented)
• Độc lập với cấu trúc (architecture neutral).
Trang 9• Có thể thông dịch(interpreted)
1.3 Cấu hình thiết bị
Hiện nay Sun Microsystem đã đưa ra 2 dạng cấu hình thiết bị
1 CLDC : Cấu hình thiết bị kết nối giới hạn, CLDC được thiết
kế để nhắm vào thị trường các thiết bị cấp thấp (low-end), các thiết bị
này thông thường là máy điện thọai di động và PDA với khoảng 512
KB bộ nhớ.Vì tài nguyên bộ nhớ hạn chế nên CLDC được gắn với Java
không dây (Java Wireless ), dạng như cho phép người sử dụng mua và
tải về các ứng dụng Java, ví dụ như là Midlet
2 CDC : Cấu hình thiết bị kết nối, CDC được đưa ra nhắm đến các thiết bị có tính năng mạnh hơn dòng thiết bị thuộc CLDC nhưng
vẫn yếu hơn các hệ thống máy để bàn sử dụng J2SE Những thiết bị
này có nhiều bộ nhớ hơn (thông thường là trên 2Mb) và có bộ xử lý
mạnh hơn Các sản phẩm này có thể kể đến như các máy PDA cấp cao,
điện thoại web, các thiết bị gia dụng trong gia đình …
Cả 2 dạng cấu hình kể trên đều chứa máy ảo Java (Java Virtual Machine - JVM) và tập hợp các lớp (class) Java cơ bản để cung cấp
một môi trường cho các ứng dụng J2ME Tuy nhiên cần chú ý rằng đối
với các thiết bị cấp thấp, do hạn chế về tài nguyên như bộ nhớ và bộ xử
lý nên không thể yêu cầu máy ảo hổ trợ tất cả các tính năng như với
máy ảo của J2SE, ví dụ, các thiết bị thuộc CLDC không có phần cứng
yêu cầu các phép tính toán dấu phẩy động, nên máy ảo thuộc CLDC
không được yêu cầu hỗ trợ kiểu float và double
Bảng so sánh các thông số kỹ thuật của CDC và CLDC
Trang 10GVHD: TS Nguyễn Ngọc Minh SVTH: Phạm Văn Hải, lớp D07-KTDT1
Trang 11Phần II : Giới thiệu về bộ VXL Java
(JVM), và các hệ thống Java thời gian thực cơ bản Bytecode JVM sẽ
thực hiện việc loại bỏ các thông dịch và các lớp phần mềm JIT đặc
trưng, và thực hiện tối ưu hóa cho các yêu cầu về bộ nhớ và thời gian
Dựa trên nền tảng về chip Java cơ bản, dòng chip aJ-200 luôn thực hiện
các tác vụ, đồng bộ hóa các đối tượng, lập trình và xử lí ngắt một cách
Trang 12Bộ xử lí Java này của aJile là dòng thế hệ thứ 3 sử dụng năng lượng thấp, thực hiện trực tiếp các xử lí trên nền tảng JME Java, “Java
processor” Nó được ứng dụng để thiết kế các dòng thiết bị nhúng đa
phương tiện, và các ứng dụng internet di động Bộ xử lí này bao gồm
một lõi JEMCore-II nâng cao với byte, half word, word opteration, một
gói dữ liệu DSP, 32KB bộ nhớ I&D, bus AHB, giao diện APB, và giao
diện JTAG Sơ đồ các khối của bộ xử lí Java được mô tả như hình vẽ
mở rộng cho multimedia và các ứng dụng nhúng trong mạng
JEMCore-II cải thiện hiệu quả thực hiện các lệnh Java việc loải bỏ lớp
trình diễn Java và nhân RTOS Kết quả dẫn đến thời gian chuyển đổi
ngữ cảnh thread-to-thread được giảm đáng kể(<1µs) Vì tập lệnh
bytecode được thực hiện như các lệnh cơ bản nên JEMCore của Java
hoạt động giồng như bộ xử lí RISC thực hiện vệc biên dịch trong C
Thêm vào đó, các hoạt động Java cơ bản (wait, yield, thông báo, giảm
GVHD: TS Nguyễn Ngọc Minh SVTH: Phạm Văn Hải, lớp D07-KTDT1
Trang 13sát việc enter/exit) được thực hiện như các lệnh bytecode mở rộng, loại
bỏ các yêu cầu cho một RTOS truyền thống Dựa trên sự phong phú
của nền tảng Java multimedia , JEMCore-II đã được cải tiến với một
microcode chuyên dụng-dựa trên dữ liệu DSP-để làm tăng thêm các
thuật toán khác nhau cho các ứng dụng audio, điều khiển nhúng, điều
khiển động cơ phụ, ghi lại giọng nói và chữ viết tay
Hình dưới minh họa đơn giản các khối của lõi JEMCore-II cải tiến:
Hình 2.1.1.4: Sơ đồ khối lõi JMECore - II
1.3. Các đặc tính của hệ thống aJ-200
Trang 14o Thực hiện thread-to-thread ít hơn 1us
• Hai máy ảo Java độc lập trong phần cứng
• Cho phép ghi 32KB (writeable control store–WCS
32 KB Unified instruction & Data Cache
Giao diện BUS ngoài (External Bus interface – EBI)
• FLASH (NOR & NAND), ROM, SRAM
Four 16550 Compatible UART’s
General Purpose I/O Ports
Điều khiển truy cập trực tiếp bộ nhớ-DMA (Direct Memory Access)
Cổng đồng bộ nối tiếp (SSP-Synchronous Serial Port)
Giao tiếp I 2 S/AC97/SPI
Giao tiếp I 2 C
Hỗ trợ thẻ nhớ SD/ SDIO/ MMC
CF Memory Card Interface version 1.4
GVHD: TS Nguyễn Ngọc Minh SVTH: Phạm Văn Hải, lớp D07-KTDT1
Trang 15Chip đơn điều khiển USB OTG phiên bản 2.0
Chip đơn điều khiển 10/100 T-Base Ethernet
Mã hóa/giải mã máy
Màn hình LCD
• Giao diện TFT LCD 24-bit
• Độ phân giải lên tới 1280x1280
• Chế độ đầu vào (RGB, bảng màu, YcbCr422/420)
• 256 entries 16-bit RGB color palette RAM
• 2 cửa sổ PiP
• Picture out of Picture (PoP)
• Định dạng đầu ra (bảng màu RGB, ITU-R BT, 656)
• Video Scalar (up & down)
• Cổng video ra (ITU-R BT 656)
Ba cổng lấy ảnh
• Độ phân giải 1920x1080
• Định dạng đầu vào(ITU-R BT 656/.1120, YCrCb 4:2:2)
• Định dạng đầu ra(RGB 888/565, YCbCr 4:4:4, 4:2:2, 4:2:0)
Hỗ trợ các định dạng media
• Định dạng MPEG-4 đơn giản chuẩn L0 ~ L3
• Sub QCIF, QCIF, CIF, VGA, 4CIF, & D1
• Chuẩn hình ảnh JPEG (ISO/IEC 10918-1) cơ bản
• Short video header (H.263 baseline)
• Các phương pháp lượng tử hóa H.263/MPEG/JPEG
Giao diện JTAG chuẩn IEEE 1149.1
Clock and PLL’s
Trang 16Fully static operation up to 180 MHz
Hình 2.1.1.5: Sơ đồ khối dòng Kit sử dụng Kit aJ-200
GVHD: TS Nguyễn Ngọc Minh SVTH: Phạm Văn Hải, lớp D07-KTDT1
Trang 17Vỉtual Bytecode, dựa trên các nền tảng về JAVA cơ bản, network, đồ
họa, định dạng video MPEG4, và các khối chức năng I/O Kit
aJ-200MEK được thiết kế với một màn hình cảm ứng kích thước
800x480, một thiết bị CMOS, một video định dạng MPEG4, âm thanh
stereo, và cấu hình kiểu I/O đặc thù cho các thiết bị đa phương tiện di
Trang 18aJ-200MEK giúp người sử dụng phát triển các thế hệ sản phẩm đa phương
tiện dựa vào các ứng dụng đa phương tiện di động qua mạng Internet
như IP camera, webs, các máy chủ camera, các thiết bị cầm tay và các
ứng dụng nhỏ khác
Sơ đồ các khối của Kit aJ-200MEK được mô tả như hình dưới:
GVHD: TS Nguyễn Ngọc Minh SVTH: Phạm Văn Hải, lớp D07-KTDT1
Trang 19Hình 2.1.1.7: Sơ đồ các khối trên Kit aJ-200MEK
2.2. Các đặc tính của bộ Kit aJ-200MEK
Bộ xử lý:
Trang 20• aJile network media direct execution SOC “aJ-200” for
the JME platform
Trang 21• MPEG-4 các chuẩn đơn giản L0~L3
• Sub QCIF, QCIF, CIF, VGA, 4CIF, and D1 @ 30 fps
• Left and right audio input
• Left and right audio output
• Speaker (8Ω) header
• Microphone
Đồng hồ thời gian thực hỗ trợ một pin cổng GPIO 8-bit, bộ nối
UMTS/HSDPA:
• 50-pin slimstack receptacle
• Cinterion HC-25/28 module (option)
Bộ nối module Zigbee:
• 20-pin header
• Xbee/Xbee-Pro module (option)
Trang 22• Nguồn ngoài 100-240V 5V/3A DC.
• Pin @ 3.7V 1800 mAhcó thể nạp lại được
JTAG:
• Giao diện debug
• Nguồn cấp 5V qua cổng USB
• Debug qua kênh nối tiếp
nhiều ứng dụng thực hiện một cách đồng thời và độc lập theo một lịch
trình nhất định một cách nhanh chóng Điều này cho phép các ứng
dụng cứng real-time chạy độc lập và an toàn với các ứng dụng mạng
GVHD: TS Nguyễn Ngọc Minh SVTH: Phạm Văn Hải, lớp D07-KTDT1
Trang 23Hình 2.1.1.8: Hê thống aJile RTOS
Các thành phần chính của một hệ điều hành thời gian thực aJile:
• JME API’s
o CLDC 1.1
o CDC 1.1/Foundation Profile (FP)
o MIDP2.0
• Stack mạng, file hệ thống, và định khung an toàn:
o chạy trên các thư viện TCP/IPJME và bổ sung aJile's Java của
Trang 24o Định khung an toàn
o Bộ nạp khởi động cho việc cập nhật các ứng dụng
• Các driver cho các phần mềm Java:
o Hợp nhất tất cả các I/O
o Điều khiển nối tiếp qua cổng ÚB cho bọ nhớ, bàn phím, và chuột
o Thé nhớ SD, WLAN card
• aJile Real-time OS Kernel
Bên trong bộ xử lý aJile chứa một lõi thời gian thực nhỏ đã được
lập trình Nó thực hiện các chức năng quen thuộc của hệ điều hành
như: lập chương trình, chuyển chương trình, xử lý ngắt, xứ lý các lỗi và
đồng bộ hóa các đối tượng) Ngôn ngữ Java cơ bản được dùng trong
các bộ xử lý của aJile, và nó sử dụng các tập lệnh bytecode mở rộng để
thực hiện thêm các hoạt động trong Applications ( trạng thái ngủ, chờ,
các thông báo, yield, quản lí nhập, quản lí xuất, và ngắt) để hỗ trợ việc
điều hành hệ thống một cách nhanh chóng và không bị gián đoạn Các
chip thời gian thực quản lí các hoạt động dựa trên mức độ ưu tiên của
các chúng với thời gian chuyển đổi vô cùng nhanh- ít hơn 1 µs
Ngoài ra, kỹ thuật Multiple JVM (MJM) của aJile còn cho phép
các ứng dụng chạy một cách đồng thời và độc lập theo một lịch trình
nhất định Mỗi JVM tận dụng các đặc trưng riêng của mình và bộ nhớ
để cho phép các ứng dụng chạy một cách đồng thời, độc lập với các
ứng dụng trên mạng và không bị tạm dừng khi có các “cảnh báo rác”-
garbage collection (G.C) và các ngắt khác MJM có chể độ bảo mật
“sandbox” Java đến cấp độ tiếp theo, cung cấp một cơ chế để dễ dàng
cách ly các ứng dụng và phân chia tài nguyên hệ thống aJile RTOS
cho phép các ứng dụng cứng real-time có thể chạy một cách độc lập và
an toàn song song với các ứng dụng mạng
2.4 Môi trường phát triển
GVHD: TS Nguyễn Ngọc Minh SVTH: Phạm Văn Hải, lớp D07-KTDT1
Trang 25Môi trương phát triển như Eclipse hay Netbeans cho phép sử dụng các “off-the-shelf “IDE để tạo ra các file chuẩn Java.Nó thực hiện
các công việc chính sau:
• Tối ưu hóa Linker/Xây dựng các ứng dụng Applications builder
o Các sơ đồ và tập tin Gerber (là một chuẩn vẽ mạch PCB) có thể
được download tại website của aJile :www.ajile.com
Hai môi trường phát triển này đều có những ưu điểm riêng của mình và chúng đều có thể đươc sử dụng miễn phí Tuy nhiên Eclipse
có phần nổi trội hơn vì:
* Khác với NetBean, luôn phát hành dưới dạng Beta, có nghĩa là có
thể trở thành bản thương mại bất kỳ lúc nào khi SUN quyết định đưa ra
bản chính thức, Eclipse là phiên bản hoàn chỉnh mã nguồn mở
* Các plug-in phục vụ cho việc phát triển Java application rất tốt, hỗ
trợ nhiều tính năng cao cấp IDE hỗ trợ nhiều cách nhìn vào code, sáng
* Làm quen với Eclipse đồng nghĩa với cơ hội làm quen với cách
làm việc của một trong những môi trường phát triển Web mạnnh nhất
hiện nay là Websphere (vì bản chất WebShpere cũng là một plug-in
của Eclipse) Những kinh nghiệm có được trên Eclipse hoàn toàn có thể
* Tìm hiểu Eclipse có thể tạo ra các plug-in phục vụ riêng cho công
việc cá nhân và cho cộng đồng phát triển mã nguồn mở
Một số thủ thuật trong Eclipse
•Hiển thị tiếng Việt:
Trang 26- Window – Preferences - General- Workspace - Text File Encoding - Other -> UTF-8.
•Tự động sổ code:
- Tổ hợp phím kinh điển Ctrl + Space (thao tác rất tiện lợi khi gõ code)
•Comment:
- Ctrl + "/": tự động thêm cụm "//" vào đầu dòng (không tiện lắm)
- Ctrl + Shift + "/": tự động thêm "/* */" vào cụm được bôi đen
- Ctrl + Shift + "\": tự động bỏ "/* */" vào cụm được bôi đen
- Ctrl + B : Build All, Ctrl + F11: Run
Trang 27Phần III : Quy trình xây dựng một ứng dụng trên Kit aJ-200MEK
Để xây dựng một ứng dụng trên Kit –aJ-200MEK, trước tiên cần phải cài đặt các công cụ phần mềm sau:
1 Eclipse SDK ( có thể tạo file *.class trong của sổ cmd trong
Windows) và J2SDK version 1.4 hoặc mới hơn (file
j2sdk-1_4_2-windows-i586.exe).
2 Hai trình biên dịch của aJile: ajile_cdc (file
ajile_cdc_6.2.05_install.exe) hoặc ajile_cldc (file
ajile_cldc_6.2.05_install.exe)
3 Cài đặt USB JTAG Drivers (download tại địa chỉ
http://www.ftdichip.com/Drivers/D2XX.htm )
Các bước xây dựng một ứng dụng trên Kit aJile-200MEK
Bước 1: Viết code và biên dịch file *.Java thành bytecode lưu
trong file *.class.
Bước 2: Sử dụng các tool của aJile – JemBuilder biên dịch
bytecode thành mã máy - file *.sod.
Bước 3: Sử dụng Charade for EVB(m) nạp file *.sod vào Kit để
chạy ứng dụng
Lưu ý: Trong đồ án này, Eclipse sử dụng version 3.6.2 và workspace tại
D:\DoAn\code, các tool của aJile được cài đặt tại C:\ajile, J2SDK tại
C:\j2sdk.
1. Viết code và biên dịch
1.1 Add thư viện drivers của aJile vào Eclipse
- Mở Eclipse, trên thanh Menu chính của nó chọn:
Project - Properties - Java Build Path - Add Library… - User Library -
Next - User Libraries… - New.
- Tại đây, cửa sổ New Libraries sẽ hiện ra, đặt tên cho cấu hình
thiết bị:
Trang 28ajile CDC11(ajile CLDC11) ( lưu ý tick chọn System Library(add to the boot class path) ).
- Sau bước này, ta sẽ thấy thư viện vừa được tạo xuất hiện trong
cửa sổ Defined user libraries: Click chọn thư viện vừa tạo – ajile
CDC11 (ajile CLDC11) - Add JARs… Chọn đường dẫn đến
C:\ajile\Runtime_cdc11 (C:\ajile\Runtime_cldc11)
- Sau đó add các file:
foundation.jar, btclasses.zip, runtime_cdc11.jar (với ajile CLDC11 thì chỉ cần add 2 file: runtime_cldc11, class.jar) - Open.
- Tiếp tục - chọn Add Jars… Chọn đường dẫn tới:
C:\ajile\Runetime_cdc11\lib\drivers
(C:\ajile\Runetime_cldc11\lib\drivers)
- Tại đây chọn tất cả các file *.jar Sau đó - chọn Open.
Lúc này, cửa sổ Preferences sẽ trông giống như hình dưới đây:
GVHD: TS Nguyễn Ngọc Minh SVTH: Phạm Văn Hải, lớp D07-KTDT1
Trang 29Hình 3.1: Add thư viện cho Project
- Chọn Ok để thoát Preferences Trở lại với cửa sổ Properties,
chọn Java Compiler sau đó thiết lập các thông số như hình vẽ: