Tại Mỹ có nhiềuchương trình hỗ trợ của Nhà nước để phát triển các hệ thống và phần mềm nhúng.Hàn Quốc có những dự án lớn nhằm phát triển công nghệ phần mềm nhúng nhưcác thiết bị gia dụng
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Trang 2MỤC LỤC
BẢNG KÝ HIỆU
BẢNG CÁC HÌNH VẼ
MỞ ĐẦU ……….7
Chương 1 Tổng quan về hệ thống nhúng
1.1 Các khái niệm
1.1.1 Hệ thống nhúng
1.1.3 Phần mềm nhúng
1.1.3 Hệ thống nhúng thời gian thực
1.2 Đặc điểm khác biệt giữa phần mềm nhúng và phần mềm thông thường trên máy tính cá nhân
1.3 Ứng dụng của hệ nhúng
Chương 2 Hệ điều hành thời gian thực
2.1 Khái niệm
2.2 Kiến trúc nhân RTOS
2.3 Các vấn đề cơ bản của RTOS
2.3.1 Hệ thống tiền cảnh/hậu cảnh
2.3.2 Miền găng
2.3.3 Tài nguyên
2.3.4 Tính đa nhiệm
2.3.5 Tác vụ và trạng thái tác vụ
2.3.6 Chuyển ngữ cảnh
2.3.7 Nhân thời gian thực
2.3.8 Bộ lập lịch
2.4 Phát triển các ứng dụng thời gian thực trên RTOS
2.4.1 Mô hình tích hợp
2.4.2 Phát triển ứng dụng nhúng thời gian thực trên C/OS
Chương 3 Môi trường phát triển phần mềm nhúng cho các thiết bị di động ……… 24
3.1 Hệ điều hành trên thiết bị di động
3.2 Môi trường lập trình trong Symbian
3.2.1 Hệ điều hành Symbian
3.2.2 Thực thi ứng dụng trên Symbian
3.2.2.1 Phân loại ứng dụng
3.2.2.2 Cấu trúc ứng dụng
3.2.2.3 Thực thi ứng dụng trên Symbian
3.2.3 Xây dựng ứng dụng trên Symbian với C/C++
3.2.3.1 Symbian Flatform
3.2.3.2 Các SDK và IDE phổ biến
3.2.3.3 Các bước xây dựng ứng dụng trên Series 60 với Carbide C/C++
3.3 Môi trường NET Compact Framework trong Windows Mobile
3.3.1 Hệ điều hành Windows Mobile
3.3.2 .NET Compact Framework
Trang 33.3.2.1 Kiến trúc tổng quan NET Compact Framework 37
3.3.2.2 Môi trường lập trình trong NET Compact Framework 40
3.3.2.3 Các bước xây dựng ứng dụng NET Compact Framework với Visual Studio.net 42
3.4 J2ME 45
3.4.1 Kiến trúc J2ME 45
3.4.1.1 Máy ảo Java (KVM) 47
3.4.1.2 Tầng CLDC (Connected Limited Device Configuration): 48
3.4.1.3 MIDP (Mobile Information Device Profile) 50
3.4.2 Phát triển ứng dụng nhúng trên thiết bị di động với J2ME 50
3.4.2.1 MIDlet 50
3.4.2.2 Tệp tin JAR 51
3.4.3 Xây dựng ứng dụng và chạy mô phỏng 52
Chương 4 Xây dựng ứng dụng nhận dạng chữ NÔM trên Pocket PC ……… 56
4.1 Bài toán nhận dạng chữ NÔM 56
4.2 Giải pháp công nghệ 56
4.3 Phân tích thiết kế hệ thống 59
4.3.1 Biểu đồ Use Case 59
4.3.1.1 Biểu đồ ca sử dụng cho gói Desktop 59
4.3.1.2 Biểu đồ ca sử dụng cho gói Mobile 60
4.3.2 Biểu đồ lớp phân tích 61
4.3.2.1 Phân tích các ca sử dụng trong gói Desktop 61
4.3.2.2 Phân tích các ca sử dụng trong gói Mobile 62
4.3.3 Biểu đồ lớp thiết kế 63
4.3.3.1 Biểu đồ lớp thiết kế cho gói Desktop 63
4.3.3.2 Biểu đồ lớp thiết kế cho gói Mobile 64
4.3.4 Biểu đồ tuần tự 65
4.3.4.1 Biểu đồ tuần trong gói Desktop 65
4.3.4.2 Biểu đồ tuần tự trong gói Mobile 66
4.4 Cài đặt 69
4.4.1 Cài đặt gói huấn luyện trên Desktop 69
4.4.2 Cài đặt gói nhận dạng trên Mobile 71
4.5 Kết quả thực nghiệm 74
KẾT LUẬN 78
TÀI LIỆU THAM KHẢO 79
PHỤ LỤC A Windows Embedded CE 6.0 81
A.1 Các hệ điều hành họ Windows CE 81
A.2 Windows Embedded CE 6.0 83
A.2.1 Tính năng của Windows Embedded CE 6.0 83
A.2.2 Kiến trúc Windows Embedded CE 6.0 83
A.2.3 Lập trình ứng dụng trên Windows Embedded CE 6.0 85
PHỤ LỤC B Mã nguồn các lớp gói Mobile 87
B.1 Lớp giao diện gói Mobile: frmMainApp 87
B.2 Lớp lưu kết quả đầu vào đã xử lý: MobileInputResult 90
Khoa Công Nghệ Thông Tin Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội
Học viên: Phạm Văn Hưởng
Trang 4Luận văn Thạc sĩ
B.3 Lớp xử lý đầu vào: MobileInputProcess 91
B.4 Lớp cấu hình mạng: NetworkConfig 95
B.5 Lớp lưu kết quả nhận dạng: RecognitionProcessResult 97
B.6 Lớp nhận dạng: RecognitionProcess 98
B.7 Lớp lưu ngữ nghĩa và kết quả tra cứu nghĩa từ: SemanticMap 102
B.8 Lớp tra cứu nghĩa từ: LookupSemantic 104
PHỤ LỤC C Mã nguồn các phương thức cơ bản gói Desktop 106
Khoa Công Nghệ Thông Tin Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội
Học viên: Phạm Văn Hưởng
Trang 5Routine
Software
Khoa Công Nghệ Thông Tin Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội
Học viên: Phạm Văn Hưởng
Trang 6Khoa Công Nghệ Thông Tin Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội
Học viên: Phạm Văn Hưởng
Trang 7Khoa Công Nghệ Thông Tin Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội
Học viên: Phạm Văn Hưởng
Trang 8Luận văn Thạc sĩ
MỞ ĐẦU
Trong sự phát triển của công nghệ thông tin, sau giai đoạn bùng nổ củainternet từ 1980-2000 [2], thì công nghệ nhúng được xem là xu thế của công nghệthông tin hiện nay Hệ thống nhúng là phần cốt lõi tạo lên các sản phẩm nhúng vàcác môi trường thông minh Thị trường của các hệ thống nhúng lớn gấp khoảng
100 lần thị trường của PC và mạng LAN, PC và Internet chỉ là bề nổi của côngnghệ thông tin còn phần chìm của công nghệ thông tin chiếm 99% số vi xử lý trêntoàn cầu này nằm trong các hệ nhúng thì còn ít được biết đến [2] Các sản phẩmnhúng có mặt trong mọi lĩnh vực đời sống kinh tế xã hội từ giải trí đến các thiết bịgia dụng, thiết bị công nghiệp
Sự hội tụ của công nghệ truyền thông không dây với thiết bị tính toán cầm tay,sức đẩy của công nghệ vi điện tử, các công nghệ vi cơ điện, công nghệ sinh học hội
tụ tạo nên các chip của công nghệ nano, là nền tảng cho những thay đổi cơ bảntrong công nghệ thông tin và truyền thông Sức kéo của thị trường đòi hỏi các thiết
bị phải có nhiều chức năng thân thiện với người dùng, có mức độ thông minh ngàycàng cải thiện đưa đến vai trò và tầm quan trọng của các hệ thống nhúng ngày càngcao trong nền kinh tế quốc dân
Từ tất yếu khách quan, công nghệ phần mềm nhúng đã trở thành lĩnh vựccông nghệ then chốt cho sự phát triển kinh tế của nhiều quốc gia trên thế giới tiêubiểu như Mỹ, Nhật Bản, Hàn Quốc, Phần Lan và Trung quốc Tại Mỹ có nhiềuchương trình hỗ trợ của Nhà nước để phát triển các hệ thống và phần mềm nhúng.Hàn Quốc có những dự án lớn nhằm phát triển công nghệ phần mềm nhúng nhưcác thiết bị gia dụng nối mạng Internet, hệ thống phần mềm nhúng cho phát triểnthành phố thông minh, dự án phát triển ngành công nghiệp phần mềm nhúng, trungtâm hỗ trợ các ngành công nghiệp hậu PC Phần Lan có những chính sách quốc giatích cực cho nghiên cứu phát triển các hệ nhúng đặc biệt là các phần mềm nhúng.Những quốc gia này còn thành lập nhiều viện nghiên cứu và trung tâm phát triểncác hệ nhúng [2]
Ở Việt Nam, hầu hết các công ty phần mềm đều tập trung xây dựng phầnmềm ứng dụng mà phần nhiều là các ứng dụng quản lý và ứng dụng web Một số ítcác công ty phát triển phần mềm hệ thống hoặc phát triển hệ nhúng chủ yếu làmtheo yêu cầu của các đối tác nước ngoài Nghĩa là chúng ta đa khai thác trên bề nổicủa công nghệ thông tin đang dần bão hoà Do vậy, chính phủ, các ngành côngnghiệp, các viện nghiên cứu, trường đại học của Việt Nam có chiến lược phát triểncông nghệ thông tin và truyền thông của mình và có những điều chỉnh phù hợp để
có thể theo kịp, rút ngắn khoảng cách tụt hậu trong lĩnh vực công nghệ thông tin vàtruyền thông đối với các nước trong khu vực và trên thế giới trong quá trình hội
Khoa Công Nghệ Thông Tin Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội
Học viên: Phạm Văn Hưởng
Trang 9nhập nền kinh tế toàn cầu Cần đưa chính sách thính đáng để nghiên cứu, xây dựngcác hệ thống nhúng mà ban đầu cần tập trung vào phát triển các phần mềm nhúng[1].
Từ xu thế phát triển khách quan của công nghệ thông tin và hiện trạng côngnghệ nước ta việc nghiên cứu, phát triển hệ nhúng là tất yếu Phạm vi nghiên cứucũng như tầm ứng dụng của hệ nhúng rất lớn, trong giới hạn luận văn, chúng tôi tậptrung trình bày các vấn đề về môi trường phát triển phần mềm nhúng cho các thiết
bị di động (mobile) Cấu trúc luận văn gồm các phần như sau:
Phần mở đầu: Nội dung phần mở đầu chỉ ra vai trò và tầm quan trọng của
công nghệ nhúng, hiện trạng phát triển công nghệ nhúng trên thế giới và ở ViệtNam
Chương 1 Tổng quan về hệ thống nhúng: Nội dung chương 1 trình bày
tổng quan về hệ thống nhúng, các khái niệm liên quan như: hệ thống nhúng, phầnmềm nhúng, hệ thời gian thực, hệ nhúng thời gian thực; so sánh ứng dụng trêndesktop và ứng dụng nhúng
Chương 2 Hệ điều hành thời gian thực: Nội dung chương 2 trình bày các
vấn đề về phát triển các phần mềm nhúng trong môi trường hệ điều hành thời gianthực
Chương 3 Môi trường phát triển ứng dụng nhúng cho các thiết bị di
động: Nội dung chương 3 trình bày về các môi trường phát triển ứng dụng nhúng
trên thiết bị di động như: môi trường hệ điều hành Symbian, môi trường NETCompact Framework, môi trường java J2ME
Chương 4 Xây dựng ứng dụng nhận dạng chữ Nôm trên Pocket PC: Nội
dung chương 4 trình bày thực nghiệm xây dựng ứng dụng nhận dạng chữ Nôm trênPocket PC Hệ thống sử dụng ngôn ngữ UML để phân tích thiết kế và được cài đặtbằng ngôn ngữ C# trên nền tảng NET Compact Framework Đồng thời trong ứngdụng cũng sử dụng kỹ thuật mạng nơ-ron Perceptron đa tầng để nhận dạng
Phần kết luận: Nội dung phần này tổng kết, đánh giá về luận văn cũng như
phần mềm thực nghiệm và đưa ra một số hướng phát triển
Khoa Công Nghệ Thông Tin Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội
Học viên: Phạm Văn Hưởng
Trang 10Luận văn Thạc sĩ
Chương 1 Tổng quan về hệ thống nhúng
1.1 Các khái niệm
1.1.1 Hệ thống nhúng
Hệ thống nhúng (Embedded system) là một hệ thống tính toán có khả năng
tự trị được nhúng vào trong một môi trường hay một hệ thống lớn hơn Đó là các
hệ thống tích hợp cả phần cứng và phần phềm phục vụ các bài toán chuyên dụng Một hệ thống được nhúng có thể chứa nhiều hệ thống nhúng khác [7].
Hệ thống nhúng thường được thiết kế để thực hiện một chức năng chuyên biệtnào đó Khác với các máy tính đa chức năng, chẳng hạn như máy tính cá nhân, một
hệ thống nhúng chỉ thực hiện một hoặc một vài chức năng nhất định, thường đikèm với những yêu cầu cụ thể và bao gồm một số thiết bị máy móc và phần cứngchuyên dụng
Trong một số trường hợp, hệ nhúng cũng có thể hoạt động như một hệ thốngtồn tại độc lập Ví dụ như bộ định tuyến router Bộ định tuyến được xây dựng sửdụng bộ vi xử lý đặc biệt, bộ nhớ, các cổng giao tiếp mạng và phần mềm cài đặtthuật toán định hướng các gói tin Theo đó, bộ định tuyến làm nhiệm vụ là địnhhướng các gói tin đến từ một cổng và tới một cổng khác, có thể tồn tại độc lập [9].1.1.3 Phần mềm nhúng
Phần mềm nhúng là phần mềm tích hợp trong các hệ thống nhúng Mục đích
của phần mềm nhúng nhằm điều khiển phần cứng, cho phép đáp ứng tương tác người dùng hoặc cung cấp môi trường để phát triển các phần mềm nhúng tích hợp khác.
Phần mềm nhúng tạo nên phần hồn, phần trí tuệ của các sản phẩm nhúng.Phần mềm nhúng ngày càng có tỷ lệ giá trị cao trong giá trị của các sản phẩmnhúng
Hiện nay phần lớn các phần mềm nhúng nằm trong các sản phẩm truyềnthông và các sản phẩm điện tử tiêu dùng (consumer electronics), tiếp đến là trongcác sản phẩm ô tô, phương tiện vận chuyển, máy móc thiết bị y tế, các thiết bị nănglượng, các thiết bị cảnh báo bảo vệ và các sản phẩm đo và điều khiển
Phần mềm nhúng có thể có các mức kiến trúc khác nhau tuỳ theo yêu cầu cụthể của hệ thống Dưới đây là một số kiến trúc phần mềm nhúng với độ phức tạptăng dần [7]:
- Kiến trúc xoay vòng RR (Round-Robin)
- Kiến trúc xoay vòng kết hợp với ngắt
Khoa Công Nghệ Thông Tin Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội
Học viên: Phạm Văn Hưởng
Trang 11- Kiến trúc lập lịch hàng đợi chức năng.
- Kiến trúc hệ điều hành thời gian thực: là kiến trúc phức tạp đóngvai trò trung gian giao tiếp với phần cứng và làm môi trường cung cấpcác dịch vụ để tích hợp các phần mềm nhúng khác
1.1.3 Hệ thống nhúng thời gian thực
Hệ thống thời gian thực: là hệ thống phải đáp ứng công việc trong một giới
hạn thời gian nào đó, việc vượt quá thời gian có thể gây ra hậu quả nghiêm trọng hoặc kết quả công việc không có ý nghĩa Do đó tính đúng đắn của toàn bộ hệ thống phụ thuộc cả vào tính đúng đắn về chức năng và tính đúng đắn về thời gian.
Ở dạng đơn giản, các hệ thống thời gian thực có thể được định nghĩa là hệthống đáp ứng các sự kiện bên ngoài trong một khoảng thời gian nào đó, và thờigian đáp ứng phải được đảm bảo
Các sự kiện bên ngoài có thể là sự kiện đồng thời hoặc không đồng thời Việcđáp ứng các sự kiện bên ngoài bao gồm: phát hiện sự kiện, xử lý sự kiện và đưa racác kết quả cần thiết trong một ràng buộc thời gian cho trước Các ràng buộc thờigian bao gồm thời gian kết thúc hoặc cả thời gian bắt đầu và kết thúc
Hệ thời gian thực còn được gọi là hệ thống xác định bởi vì thời gian đáp ứngcho một sự kiện được giới hạn Các tác vụ đáp ứng cho sự kiện còn được gắn vớimột độ ưu tiên cho trước Hơn nữa, hệ thống thời gian thực có khả năng khảchuyển kém khi thay đổi môi trường
Phân loại hệ thống thời gian thực [17]:
Trong hệ thời gian thực, mọi công việc tính toán đều phải hoàn thành trướcthời gian cho phép, được gọi là deadline Nói cách khác, hệ thống thời gian thực bịràng buộc về thời gian và được điều khiển bởi các deadline Về mặt này, hệ thờigian thực có thể được chia thành hệ thời gian thực mềm và hệ thời gian thực cứng
- Hệ thống thời gian thực cứng: chỉ cho phép chênh lệch với
deadline trong một mức độ dao động gần như bằng không Nếu không
hoàn thành đúng so với deadline thảm họa có thể xảy ra và không còncách nào có thể khôi phục được hệ thống Ví dụ hệ thống nhúng trongđiều khiển máy bay là hệ thời gian thực cứng
- Hệ thống thời gian thực mềm: cho phép một mức độ chênh lệch
nhất định Ví dụ đầu đọc DVD là hệ thời gian thực mềm.
Khoa Công Nghệ Thông Tin Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội
Học viên: Phạm Văn Hưởng
Trang 12lý có thể do các thành phần khác đảm nhiệm Hệ nhúng thời gian thực được mô tảmột cách trực quan trong Hình 1.1 sau:
Hệ nhúng
Hình 1.1 Mô tả hệ nhúng thời gian thực
Trang 14- Hệ thống nhúng được thiết kế cho các tác vụ đặc biệt, trong khicác máy tính là các nền tảng tính toán và xử lý chung Một số phầnmềm nhúng đơn giản được lập trình chỉ để thực hiện một vài tác vụ.Thay đổi các tác vụ có thể đòi hỏi phải thiết kế lại hệ thống và thay đổitoàn bộ hệ thống.
- Hệ thống nhúng được hỗ trợ bởi một số lượng lớn các vi xử lý và kiến trúc vi xử lý
- Hệ thống nhúng thường được cân nhắc cùng với chi phí phát triển
- Các hệ thống nhúng được thiết kế cùng với phần cứng được chỉđịnh sẵn Chính vì thế, tính năng của hệ thống luôn được cân nhắccùng với chi phí phát triển Ngoài ra, với một số tác vụ cần phải cónhững phần cứng chuyên biệt
- Hệ thống nhúng yêu cầu khả năng đáp ứng nhanh và phần nhiều cócác ràng buộc thời gian thực
- Nếu hệ thống nhúng sử dụng hệ điều hành, thì hầu như nó phải sửdụng hệ điều hành thời gian thực Giống như vi xử lý nhúng, hệ điềuhành nhúng cũng có rất nhiều và có cách quản lý khác nhau Tuynhiên, mục tiêu quan trọng là nó phải giải quyết các vấn đề khắt khe vềmặt thời gian và chia sẻ tài nguyên
- Khó khăn khi xử lý lỗi phần mềm nhúng: Với phần mềm nhúng, việc dò lỗi chương trình thường thông qua các bộ mô phỏng thiết bị
- Hệ thống nhúng có ràng buộc về điện năng: Với nhiều hệ thốngnhúng, vấn đề năng lượng được coi là quan trọng hàng đầu Phươngpháp đầu tiên để duy trì năng lượng là tắt bớt các phần hoặc cả hệthống khi có thể tắt được Có thể là cả vi xử lý Hầu hết các vi xử lýcho hệ thống nhúng, có ít nhất một kiểu tiết kiệm năng lượng Phầnmềm thường đặt
Khoa Công Nghệ Thông Tin Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội
Học viên: Phạm Văn Hưởng
Trang 15vi xử lý trong những chế độ này với các chỉ thị đặc biệt hoặc ghi một giá trị tới thanh ghi điều khiển bên trong vi xử lý.
- Hệ thống nhúng chạy trong môi trường có điều kiện khắt khe: Hệthống nhúng có mặt ở mọi nơi và có thể được thiết kế để làm mọi thứ.Chính vì thế, khi thiết kế hệ thống, phải đặc biệt chú trọng tới các yếu
tố phần cứng có khả năng chịu được điều kiện môi trường
Một số lĩnh vực điển hình có thể liệt kê dưới đây:
- Hệ thống nhúng trong các thiết bị gia dụng như: điều khiển ti vi, điều hoà, hệ thống camera, hệ thống chuông cảnh báo, …
- Trong lĩnh vực trí tuệ nhân tạo: tàu vũ trụ không người lái, robot,
…
- Trong các phương tiện vận chuyển: lái xe tự động, điều khiển máy bay
- Trong các cơ quan, doanh nghiệp: hệ thống đọc thẻ ra vào, …
- Trong thương mại: máy ATM, smart Card, …
- Trong thông tin liên lạc: các ứng dụng nhúng đa dạng trên điện thoại di động
Trang 16Khoa Công Nghệ Thông Tin Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội
Học viên: Phạm Văn Hưởng
Trang 17Chương 2 Hệ điều hành thời gian thực
2.1 Khái niệm
Hệ điều hành thời gian thực (RTOS: Real Time Operating System) là một
phần mềm hệ thống nhúng thời gian thực giao tiếp với một số kiến trúc phần cứng
và cung cấp môi trường tích hợp cho các ứng dụng thời gian thực.
Mục tiêu của RTOS là cung cấp một nền tảng làm việc với nhiều thiết bị phầncứng khác nhau đồng thời cho phép xây dựng các ứng dụng độc lập phần cứng dựatrên việc sử dụng các dịch vụ của RTOS Vai trò tổng quan của RTOS được chỉ ratrong Hình 2.1:
Real-time app
Hình 2.1 Khung nhìn tổng quan về RTOS
Một RTOS cho phép tạo một hệ thống thời gian thực nhưng không đảm bảohoàn toàn rằng ứng dụng cuối sẽ là ứng dụng thời gian thực; điều này đòi hỏi tínhđúng đắn của phát triển phần mềm Một RTOS không nhất thiết phải đòi hỏi thônglượng hệ thống cao, hơn nữa, nếu sử dụng đúng khả năng mà RTOS cung cấp, cóthể đảm bảo các deadline (hệ thời gian thực mềm) hoặc có thể xác định được nó (hệthời gian thực cứng) Một RTOS điển hình sẽ sử dụng một thuật toán lập lịch đặcbiệt để cung cấp cho người phát triển hệ thời gian thực những công cụ cần thiết đểxây dựng nên những tác vụ có thể xác định được (thời gian thực thi) trong hệ thốngcuối cùng (hệ thống hoàn thành) Trong công việc đòi hỏi độ nhanh và độ chính xác
để đáp ứng một sự kiện thì cần dùng RTOS hơn là công việc chỉ yêu cầu làm đượcbao nhiêu công việc theo thời gian Yếu tố quan trọng trong một RTOS là thời gian
xử lý ngắt và thời gian chuyển luồng thực hiện ngắn nhất [8]
Khoa Công Nghệ Thông Tin Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội
Học viên: Phạm Văn Hưởng
Trang 18Luận văn Thạc sĩ
2.2 Kiến trúc nhân RTOS
Nhân hệ điều hành thời gian thực cung cấp năm loại dịch vụ [23] chính thể hiện trong Hình 2.2:
Hình 2.2 Kiến trúc nhân RTOS
lịch tác vụ, chuyển trạng thái tác vụ cũng như thiết lập độ ưu tiên cho
tác vụ
Synchronization): cung cấp một số kỹ thuật cho phép các tác vụ có
thể trao đổi thông tin với nhau và một số cơ chế đồng bộ tác vụ
các chức năng cấp phát và thu hồi bộ nhớ động một cách linh động để
đảm bảo tối ưu sử dụng bộ nhớ trong các ứng dụng thời gian thực vì bộnhớ trong các hệ nhúng thường rất nhỏ
RTOS cho phép làm việc với nhiều loại thiết bị vào ra khác nhau Các
dịch vụ này cung cấp một khung thống nhất cho việc thiết lập và truycập nhiều trình điều khiển phần cứng điển hình của một hệ thốngnhúng Phần mềm nhúng chạy trên nền RTOS chỉ sử dụng các hàmvào/ra hệ điều hành cung cấp mà không quan tâm đến cấu trúc phầncứng của các loại thiết bị vào/ra
nghặt về thời gian nên hầu hết các nhân RTOS đều cung cấp bộ đếm
thời gian cơ cho phép tính toán trễ chuyển trạng thái, thời gian chờ,thời gian thực thi để đảm bảo tác vụ hoàn thành đúng thời hạn(deadtime)
Khoa Công Nghệ Thông Tin Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội
Trang 20Luận văn Thạc sĩ
2.3 Các vấn đề cơ bản của RTOS
2.3.1 Hệ thống tiền cảnh/hậu cảnh
Hệ thống tiền cảnh/hậu cảnh (background/foreground): là một hệ thống có
kiến trúc gồm vòng lặp vô hạn, và trong vòng lặp đó gọi các module để thực hiện các tác vụ mong muốn.
Những hệ thống nhỏ có độ phức tạp thấp thường được thiết kế theo kiến trúctiền cảnh/hậu cảnh Kiến trúc của hệ thống này được minh hoạ trong Hình 2.3 [8]:
Hình 2.3 Hệ thống tiền cảnh/hậu cảnh
Trong mô hình trên, dịch vụ ngắt nắm giữ các sự kiện rời rạc ứng với phầntiền cảnh Tiền cảnh cũng còn được gọi là mức ngắt trong khi hậu cảnh được gọi làmức tác vụ Một hậu cảnh mức tác vụ có thể gọi nhiều ngắt trong tiền cảnh mứcngăt Các thao tác trong miền găng được thực thi bởi ISR để đảm bảo thời gian thihành của chúng nằm trong một khoảng thời gian không chia cắt Vì thế, các ISRthường có xu hướng chiếm nhiều thời gian trong chương trình Hơn nữa, thông tincho một module hậu cảnh được tạo bởi ISR không được xử lý cho tới khi tiến trìnhhậu cảnh nhận nó và thực thi Điều này được gọi là đáp ứng ở mức tác vụ Trongtrường hợp xấu nhất, thời gian đáp ứng ở mức tác vụ phụ thuộc vào thời gian màtiến trình hậu cảnh lặp chiếm để thực thi Vì thời gian thi hành của một mã điểnhình không phải là hằng số nên thời gian cho một đoạn mã lặp là không thể xácđịnh được Hơn nữa, nếu như thay đổi mã thì thời gian lặp cũng bị thay đổi
Hầu hết các ứng dụng dựa trên các vi xử lý giống như trong lò vi sóng, điệnthoại, đồ chơi đều được thiết kế theo hệ thống tiền cảnh/hậu cảnh Trong nhữngứng dụng này, theo quan điểm tiết kiệm điện, hệ thống sẽ ngắt vi xử lý và thực thitất cả các quá trình xử lý trong các ngắt
Khoa Công Nghệ Thông Tin Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội
Học viên: Phạm Văn Hưởng
Trang 212.3.2 Miền găng
Miền găng (Critical Session) là đoạn mã lệnh có khả năng xảy ra mâu thuẫn
khi truy xuất tài nguyên chung RTOS cần cài đặt các giải pháp đồng bộ để giải quyết vấn đề độc quyền truy xuất: quyết định tiến trình nào sẽ được vào miền găng (thực hiện các lệnh trong miền này); khi một tiến trình đang ở miền găng thì các tiến trình khác không thể vào miền găng.
Đa số các RTOS đều hỗ trợ một số giải pháp đảm bảo đồng bộ tác vụ cũngnhư truy xuất tài nguyên chung trong miền găng Một số giải pháp thường được càiđặt như: simaphore, test & set, queue, mailbox,… [7]
2.3.3 Tài nguyên
Tài nguyên là bất kì đối tượng nào được sử dụng bởi các tác vụ Tài nguyên
có thể là thiết bị vào/ra như máy in, bàn phím, màn hình hay bộ nhớ, …
Tài nguyên chia sẻ có thể được sử dụng bởi nhiều tác vụ Điều này đòi hỏiphải có cơ chế chia sẻ tài nguyên sao cho đảm bảo vấn đề toàn vẹn dữ liệu và đồng
bộ hoá các tác vụ
2.3.4 Tính đa nhiệm
Tính đa nhiệm là việc lập lịch và luân chuyển CPU giữa các tác vụ sao cho
nhiều tác vụ có thể cùng hoạt động tại một thời điểm.
Với hệ thống đơn CPU, tuy nhiều tác vụ hoạt động đồng thời nhưng tại mộtthời điểm chỉ có một tác vụ được sử dụng CPU Đa nhiệm cũng giống như tiếntrình tiền cảnh/hậu cảnh với nhiều hậu cảnh Đa nhiệm tối ưu hoá hiệu suất củaCPU và cho phép các ứng dụng khả năng mô-đun hoá Do đó, chương trình ứngdụng sẽ dễ thiết kế và bảo trì hơn nếu sử dụng đa nhiệm [7]
Khoa Công Nghệ Thông Tin Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội
Học viên: Phạm Văn Hưởng
Trang 22Luận văn Thạc sĩ
Mỗi tác vụ có các trạng thái được chỉ ra trong Hình 2.4 [7]:
Hình 2.4 Trạng thái tác vụ
tác vụ Vì chỉ có một bộ vi xử lý nên tại một thời điểm bất kì nhất định
chỉ có một tác vụ ở trạng thái running
vi xử lý sẵn có Số tác vụ có thể ở trong trạng thái này là bất kì
để hiện ngay bây giờ, thậm chí bộ vi sử lý đang sẵn dùng Các tác vụ
rơi vào trạng thái này bởi vì chúng đang đợi vài sự kiện bên ngoài Sốtác vụ trong trạng thái này có thể là bất kỳ
2.3.6 Chuyển ngữ cảnh
Ngữ cảnh của tác vụ là toàn bộ các thông tin mô tả tác vụ ở một thời điểm cụ
thể bao gồm: giá trị các thanh ghi, trạng thái tiến trình và thông tin quản lý bộ nhớ.
Khi nhân đa nhiệm quyết định chạy một tác vụ khác, nó lưu ngữ cảnh của tác
vụ hiện thời trong miền chứa ngữ cảnh của tác vụ hiện thời Sau đó, nó khôi phụcngữ cảnh của tác vụ mới từ miền lưu ngữ cảnh và thực thi mã của tác vụ mới Quátrình này được gọi là chuyển ngữ cảnh hoặc chuyển tác vụ Quá trình này dễ làmtràn bộ nhớ của ứng dụng vì nó đòi hỏi nhiều thanh ghi hơn Thời gian cần thiết đểthực hiện chuyển ngữ cảnh được xác định bằng cách đo số lần lưu hoặc khôi phụccác thanh ghi Điều này có liên quan tới khả năng xử lý của nhân (thực thi đượcbao nhiêu quá trình chuyển ngữ cảnh trong một giây)
Khoa Công Nghệ Thông Tin Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội
Học viên: Phạm Văn Hưởng
Trang 232.3.7 Nhân thời gian thực
Nhân thời gian thực là thành phần cốt lõi của hệ thống thời gian thực đáp
ứng cho việc quản lý các tác vụ và giao tiếp giữa các tác vụ [23].
Các dịch vụ nền tảng được cung cấp bởi nhân là việc chuyển ngữ cảnh Tácdụng của nhân thời gian thực sẽ làm đơn giản hoá quá trình thiết kế hệ thống bằngcách cho phép ứng dụng có thể chia thành nhiều tác vụ được nhân quản lý Mộtnhân sẽ làm hệ thống nặng hơn vì nó đòi hỏi thêm ROM cho không gian mã, thêmRAM cho cấu trúc dữ liệu nhân nhưng quan trọng nhất, mỗi tác vụ yêu cầu stackcủa nó Điều này làm tiêu tốn dung lượng nhớ RAM Nhân cũng tiêu thụ thời giancủa CPU
Mục đích của nhân nhằm tăng tác dụng của CPU bằng cách cung cấp các dịch
vụ cần thiết như quản lý semaphore, mailbox, queue, trễ thời gian,… Khi thiết kế
sử dụng nhân thời gian thực, người thiết kế hầu như không muốn quay lại hệ thốngtiền cảnh/hậu cảnh
Nhân không ưu tiên (Non-preemptive) – Nhân độc quyền [25]:
Nhân không ưu tiên cho phép khi một tác vụ đang sử dụng CPU và thực hiệnthì nó không bị tác vụ khác có mức ưu tiên cao hơn chiếm quyền sử dụng CPU.Nghĩa là khi một tác vụ đang thực hiện, không tác vụ nào có thể đẩy nó ra khỏitrạng thái Run trừ khi nó tự nguyện giải phóng CPU Giả sử ISR làm cho tác vụ có
độ ưu tiên cao hơn tác vụ đang chạy chuyển trạng thái Ready thành Run, nhưng tác
vụ đang chạy chưa trả quyền điều khiển CPU, ISR cũng chỉ trả về một tác vụ cótrạng thái bị ngắt Khi tác vụ hiện thời trả quyền điều khiển CPU, tác vụ ngắt nàymới có thể được thực thi Lợi ích của kiều nhân này là làm giảm thời gian trễ củangắt (ngắt có thể kết thúc ngay sau khi gán thông tin cho tác vụ), và nhân khôngphải quan tâm nhiều tới vấn đề miền găng Hình 2.5 dưới đây là hình ảnh minh hoạcho hoạt động của nhân không ưu tiên:
Khoa Công Nghệ Thông Tin Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội
Học viên: Phạm Văn Hưởng
Trang 24Luận văn Thạc sĩ
Hình 2.5 Minh họa nhân không ưu tiên
Hạn chế lớn nhất của nhân không ưu tiên là tính đáp ứng kịp thời Để chạy tác
vụ có độ ưu tiên cao, có khi phải đợi rất lâu đến khi tác vụ đang chạy trả quyềnđiều khiển CPU
Nhân ưu tiên (preemptive) [25]:
Nhân ưu tiên được sử dụng khi việc đáp ứng hệ thống là quan trọng Vì thế,μC/OS và hầu hết các nhân thời gian thực thương mại đều là preemptive Tác vụ có
độ ưu tiên cao nhất luôn nhận được ngay quyền điều khiển CPU Hình 2.6 minhhoạ hoạt động của nhân ưu tiên:
Hình 2.6 Minh họa nhân ưu tiên
Khoa Công Nghệ Thông Tin Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội
Học viên: Phạm Văn Hưởng
Trang 25Với nhân ưu tiên, có thể xác định được sự thực thi của tác vụ có độ ưu tiêncao nhất, xác định được khi nào tác vụ thực thi, và tối thiểu hoá được thời gian đápứng.
Trong kiểu nhân ưu tiên, cả tác vụ có độ ưu tiên thấp và tác vụ có độ ưu tiêncao đều sử dụng hàm chung nên cần đảm bảo vấn để chia sẻ dữ liệu và miền găng.2.3.8 Bộ lập lịch
Bộ lập lịch còn gọi là bộ điều phối là một phần mà nhân đáp ứng cho việc xácđịnh tác vụ nào sẽ chạy tiếp sau tác vụ hiện thời Hầu hết các nhân thời gian thựcđều dựa trên độ ưu tiên để lập lịch tác vụ Mỗi tác vụ được gán một độ ưu tiên.CPU luôn chọn tác vụ có độ ưu tiên cao nhất nằm trong trạng thái ready để chạy
Khoa Công Nghệ Thông Tin Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội
Học viên: Phạm Văn Hưởng
Trang 26số vi xử lý cụ thể cho các ứng dụng nhúng Việc phát triển các ứng dụng nhúng thờigian thực dựa trên hệ điều hành thời gian thực thường tuân theo mô hình tổng quantrong Hình 2.7 dưới đây:
Hình 2.7 Mô hình phát triển ứng dụng nhúng trên RTOS
2.4.2 Phát triển ứng dụng nhúng thời gian thực trên C/OS
Hệ điều hành µC/OS:
µC/OS được phát triển bởi Jean J Labrosse [10], là nhân hệ điều hành thờigian thực có tính khả chuyển cao, mềm dẻo, có tính năng lập lịch ưu tiên hoặc độcquyền, có thời gian thực và đa tác vụ µC/OS hỗ trợ nhiều bộ vi xử lý và rất gọnnhẹ để sử dụng cho nhiều hệ thống nhúng Phiên bản µC/OS-II tăng cường thêmkhả năng làm việc với nhiều vi xử lý khác nhau thông qua các cổng mà nhân hỗ trợ,mỗi cổng giao tiếp với một môi trường có vi xử lý riêng Mã nguồn của µC/OSđược viết bằng ngôn ngữ C trong môi trường phát triển Borland C/C++ phiên bản
từ 3.1
Khoa Công Nghệ Thông Tin Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội
Học viên: Phạm Văn Hưởng
Trang 27Đặc điểm nổi bật của µC/OS là tính gọn nhẹ và hỗ trợ nhiều vi xử lý Cácứng dụng nhúng trên µC/OS vừa sử dụng các hàm thư viện do và các hàm của môitrường lập trình [9] Hình 2.8 sau đây sẽ minh hoạ cấu trúc ứng dụng nhúng trênµC/OS.
Chương trình nhúng sử dụng µC/OS
Thư viện chuẩn C
PortDevice 1
Hình 2.8 Cấu trúc chương trình nhúng sử dụng µC/OS
Sử dụng dịch vụ của µC/OS:
Một ứng dụng nhúng đóng gói sẽ bao gồm mã của µC/OS và các hàm chứcnăng khác Với các hệ điều hành trên desktop, khi máy làm việc, hệ điều hành sẽđược nạp và chạy, nó luôn chủ động kích hoạt và lập lịch cho các tiến trình ngườidùng cũng như tiến trình hệ thống Ngược lại, với µC/OS khi hệ thống làm việc,chương trình nhúng sẽ bắt đầu trước và khởi tạo hệ điều hành; sau đó các tác vụngười dùng thực hiện và kích hoạt hệ điều hành Đoạn mã sau chỉ ra hoạt động củamột chương trình nhúng đơn giản có hai tácvụ [7]:
Khoa Công Nghệ Thông Tin Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội
Trang 28Học viên: Phạm Văn Hưởng
Trang 29Chương 3 Môi trường phát triển phần mềm nhúng cho các thiết bị di động
3.1 Hệ điều hành trên thiết bị di động
Tốc độ phát triển vượt bậc của các thiết bị di động kéo theo sự phát triển các
hệ điều hành cho các thiết bị này Hệ điều hành cho thiết bị di động không ngừngcải tiến và mở rộng về khả năng kết hợp với các hệ thống khác, khả năng tích hợpứng dụng và hỗ trợ nhiều nền tảng phần cứng khác nhau Hiện nay có các hệ điềuhành phổ biến sau [12], [13]:
- Symbian: được dùng nhiều cho các máy Nokia, Ericsson,
Motorola,
Panasonic, Psion, Lenovo, Siemens, NEC, Toshiba
- Windows Mobile:dùng cho các máy Compad, Dell vàMotorola
- Palm OS: cho các máy Samsung, Sony, PalmOne, Foundertech
- Hệ điều hành phát triển trên Linux: được dùng trong các máy
Motorola, Nexterm, ELT, Samsung, Sony, Panasonic, Philips, NEC,Toshiba Hệ điều hành này có ưu điểm là mã nguồn mở nhưng hạn chế
về mặt hỗ trợ công nghệ
Hệ điều hành trên thiết bị di động là một hệ điều hành nhúng bao gồm cácmodule hệ thống điều khiển phần cứng và cung cấp giao diện thông dịch lệnh chophép các chương trình người dùng Điều này được chỉ ra trong Hình 3.1:
Trang 30Khoa Công Nghệ Thông Tin Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội
Học viên: Phạm Văn Hưởng
Trang 31Việc tìm hiểu môi trường phát triển ứng dụng nhúng trên thiết bị di động cầnhiểu hệ điều hành sử dụng cho thiết bị cũng như tìm hiểu các thư viện lập trình hệđiều hành cung cấp Ngoài ra, để mở rộng khả năng tích hợp ứng dụng, một số hệđiều hành có thể tích hợp thêm các nền tảng công nghệ mới cho các ứng dụng trênthiết bị di động Hai nền tảng phổ biến nhất hiện nay là NET Framework củaMicrosoft tích hợp trong Windows Mobile và nền tảng J2ME của Sun [11].
Trong các phần sau sẽ tìm hiểu về môi trường lập trình C/C++ trên hệ điềuhành Symbian, NET Compact Framework trong Windows Mobile và J2ME
Khoa Công Nghệ Thông Tin Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội
Học viên: Phạm Văn Hưởng
Trang 32Luận văn Thạc sĩ 26 Môi trường phát triển phần mềm nhúng cho các
thiết bị di động3.2 Môi trường lập trình trong Symbian
3.2.1 Hệ điều hành Symbian
Hệ điều hành Symbian là một hệ điều hành được thiết kế riêng để hoạt động tối ưu trên các thiết bị di động vốn hạn chế về tài nguyên Lịch sử của Symbian khởi nguồn từ nền tảng EPOC – đó là hệ điều hành sử dụng đểđiều khiển các thiết
bị nhỏ do công ty Psion đưa ra Sau đó một số công ty di đôngg̣ hàng đầu (Nokia, Siemen, …) mua laịP sion, thành lập lên Symbian EPOC phát triển với tên mới Symbian OS [22]
Hệ điều hành Symbian cung cấp một chuẩn mở Các nhà sản xuất muốn chạySymbian cho thiết bị của mình cần tuân theo các chuẩn này Bất kỳnhàsản xuấtnào cũng có thể đươcg̣ cấp bản quyền sử dungg̣ Symbian
Symbian cómôṭsốđăcg̣ điểm cơ bản [29]:
- Tiết kiêṃ năng lươngg̣
- Đa nhiêṃ: nhiều chương trinh̀ hoaṭđôngg̣ đồng thời
- Chuẩn: cung cấp chuẩn mở Muốn sử dungg̣ Symbian , thiết bi g̣phải tuân theo chuẩn này
- Hướng đối tươngg̣: Symbian đươcg̣ thiết kếtheo phương pháp hướngđối tươngg̣
- Quản lý bộ nhớ: đươcg̣ tối ưu, thích hợp cho các hệ nhúng
Khoa Công Nghệ Thông Tin Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội
Học viên: Phạm Văn Hưởng
Trang 33Nhân Symbian: bao gồm các module cốt yếu , hoạt động thường xuyên của
hệ điều hành và thường trưcg̣ trong bô g̣nhớtừ khi bâṭmáy đến khi tắt Nhân làmnhiệm vụ quản lýcác dịch vụ vàcác bảng dữliêụ của symbian Nhân bao gồm cácthành phần [21]:
- Tâpg̣ hợp các trình điều khiển phần cứng
- Các bảng dữ liệu: thông tin cấu hinh̀ hê g̣thống…
- Chương trinh̀ cho phép giao tiếp với phần cứng
Tầng hệ thống [21]:
- Là phần mềm hệ trung gian, cung cấp các thư viêṇ , kho dữliêụ , các chương trinh̀ hê g̣thống: quản lý dữ liệu, giao tiếp, đồhoạ
- Không cần thiết phải đăṭtrong nhân, đươcg̣ goịkhi cần
- Mục đích: thiết kếcác dicḥ vu g̣hê g̣thống mới , nâng cấp các dicḥ vu g̣hê g̣ thống cũmàkhông cần viết laịnhân
- Tầng hệ thống cung cấp các dicḥ vu phổbiến :
o Hê g̣thống cửa sổ
o Giao tiếp mangg̣, cổng nối tiếp, bluetooth, hồng ngoaị
o Quản lý đa phương tiện
o Cơ sởdữliêụ
Tầng vận hành ứng dụng (Application Engine)[21]:
- Quản lý dữ liệu, ứng dụng người dùng, không liên quan đến hê g̣thống
- Các ứng dụng người dùng tương tác với application engine ,
application engine tương tác với middleware
Tầng giao diện người dùng (User Interface Framework) [14]:
- Yêu cầu giao diêṇ người dùng: dê ̃sử dungg̣, dê ̃thay đổi, dê ̃lâpg̣ trinh̀
- Mỗi thiết bi g̣khác nhau cần môṭkiểu giao diêṇ phùhơpg̣
- Framework giao diêṇ người dùng đươcg̣ thiết kếnhư môṭphần củanhân Symbian Mục đích của nền giao diện nhằm cung cấp các lớpthao tác giao diêṇ người dùng
- Kỹ thuật đồng bộ ứng dụng (Synchronization technology ): Kỹ thuật
cho phép đồng bô g̣dữliêụ với các máy khác nhau Kỹ thuật đồng bộ gồm 3 nôịdung chinh́:
Trang 34Khoa Công Nghệ Thông Tin Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội
Học viên: Phạm Văn Hưởng
Trang 35o Quản lý kết nối: tiến trinh̀ người dùng trên symbian phát
hiêṇ và đồng bô g̣hóa kết nối khi cóyêu cầu kết nối.
o Thưcc̣ hiêṇ dicḥ vu c̣khi kết nối : các dịch vụ như duyệt file , sao
lưu, phục hồi
o Chuyển dangc̣ file: cho phép chuyển đổi đinḥ dangg̣ file khác
nhau giữa các ứng dungg̣.
Tầng máy ảo Java (JVM – java virtual machine):
- Symbian OS hỗtrơ g̣framework J 2ME( java to micro edition)
- J2ME: do sun phát triển đểlâpg̣ trinh̀ java trên các thiết bi g̣cầm tay3.2.2 Thực thi ứng dụng trên Symbian
dữ liệu lâu dài như: các ứng dụng tính toán (calculator), các trò chơi
như: xử lý văn bản, quản lý liên lạc, … Khi phát triển các ứng dụnghướng file cần quan tâm đến vấn đề quản lý dữ liệu lưu trữ lâu dài.Theo đó, ứng dụng hướng file cũng được chia thành hai loại:
o Ứng dụng file độc lập: là các ứng dụng file mà có thể nạp
và lưu trữ tài liệu dưới dạng các file độc lập như Word hay
Record Khi một file tài liệu được nạp, toàn bộ dữ liệu file sẽđược lưu và xử lý trong RAM và khi lưu file xuống lại đĩa thìfile cũ sẽ bị xóa và được thay thế bằng file mới Đối với các ứngdụng file dạng này, dữ liệu thật xem như ở trên RAM, các filechỉ lưu lại các phiên bản khác nhau của tài liệu ứng dụng Mỗifile có biểu tượng của ứng dụng và chúng có chứa UID của ứngdụng Đây là cơ sở để xác định tài liệu thuộc ứng dụng nào,chúng không dựa trên phần mở rộng của tên như trên các hệđiều hành khác Một số file tài liệu dạng này có thể cho phépnhúng một tài liệu của một ứng dụng khác, biến tài liệu tồn tạiđộc lập này thành một phần tài liệu của nó Ví dụ file hình ảnh
có thể nhúng vào một file danh bạ
Khoa Công Nghệ Thông Tin Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội
Học viên: Phạm Văn Hưởng
Trang 36Luận văn Thạc sĩ
o Ứng dụng file cơ sở dữ liệu: là các ứng dụng file nhưng tài
liệu của nó là các file cơ sở dữ liệu Tại mỗi thời điểm sử dụng,
chỉ nạp và lưu các bản ghi có cấu trúc trên cơ sở dữ liệu quaviệc sử dụng các đầu vào tương ứng nhờ các chỉ mục Đối vớicác ứng dụng file này, dữ liệu thật lại nằm trên đĩa trong các file
cơ sở dữ liệu, còn trên RAM chỉ là các đoạn dữ liệu sao chép từfile cơ sở dữ liệu
3.2.2.2 Cấu trúc ứng dụng
Cấu trúc một ứng dụng trên Symbian thường bao gồm bốn lớp [29]:
tính ứng dụng, và tạo ra các file mới cho ứng dụng Trong trường hợp
đơn giản nhất, nó chỉ bao gồm định danh ứng dụng UID
dụng Nếu ứng dụng là ứng dụng file, các ứng dụng phục vụ chính cho
việc tạo các file tài liệu, lớp này sẽ đảm nhận việc nạp và lưu trữ cácfile tài liệu cho ứng dụng Với các ứng dụng không phải là ứng dụngfile, lớp tài liệu vẫn tồn tại với mục đích để nạp phần giao diện ứngdụng
interface):
Nhiệm vụ chính của lớp này là cung cấp sự tương tác giữa ứng dụngvới người dùng qua các đối tượng điều khiển như toolbar hay menu,đồng thời cho phép tạo các khung nhìn giao tiếp giữa ứng dụng vàngười dùng
đích chính của nó là thể hiện các dữ liệu của ứng dụng lên màn hình và
cho phép người dùng tương tác với nó
3.2.2.3 Thực thi ứng dụng trên Symbian
a) Các kiểu thực thi ứng dụng:
Trên Symbian hỗ trợ hai hệ thống chương trình ứng dụng với các kiểu file khác nhau:
mở rộng là exe Đây là chương trình với một đầu vào chính từ hàm
E32Main() Khi hệ thống nạp một chương trình exe mới, đầu tiên nótạo một tiến trình mới Trong luồng chính của tiến trình này, điểm vào
sẽ được gọi để thực thi chương trình
Trang 38Luận văn Thạc sĩ
viện chứa các mã chương trình với nhiều điểm đầu vào Hệ thống sẽ
nạp một DLL vào trong ngữ cảnh hoạt động của tiểu trình Có 2 loạiDLL quan trọng:
o Shared DLL: cung cấp một nhóm hàm API nhất định cho
một hay nhiều chương trình sử dụng Hầu hết các thư viện này
nằm trong các file có phần mở rộng là dll Một chương trìnhthực thi sẽ được nối với thư viện dùng chung mà nó yêu cầu vàkhi hệ thống nạp chương trình thực thi, thư viện dùng chung cầncho chương trình này sẽ được nạp tự động
o Polymorphic DLL: cung cấp một nhóm hàm API được lưu
trữ trong các file có phần mở rộng khác nhau phục vụ cho các
chức năng riêng như điều khiển máy in (.prn), giao thức socket(.prt), hay đó là một ứng dụng đồ họa GUI (.app) Trong hệ điềuhành Symbian, polymorphic DLL thường chỉ có một điểm vào,
nó khai báo và khởi tạo một lớp dẫn xuất từ các lớp cơ sở trongDLL này Thư viện DLL loại này được nạp bởi chương trình sửdụng nó
Các file thực thi chứa ba loại dữ liệu nhị phân: mã chỉ thị, dữ liệu chỉ đọc và
dữ liệu thay đổi được [21]
file
.exe được lưu trên RAM (đĩa C) hoặc từ thẻ nhớ (đĩa D), thì nó đượccấp một vùng nhớ riêng cho mã, dữ liệu chỉ đọc, dữ liệu động Nếumột phiên bản thứ 2 của chương trình được nạp vào RAM thì mộtvùng nhớ mới sẽ được cấp cho nó Với file chương trình exe chứatrong ROM (ổ đĩa Z) thì chỉ có dữ liệu động được nạp vào RAM, mãchỉ thị và dữ liệu chỉ đọc được đọc trực tiếp từ ROM
RAM, nó được cấp một vùng nhớ riêng, khi được yêu cầu sử dụng lầnthứ hai, nó không nạp tiếp DLL này vào RAM mà đơn giản chỉ gắn địachỉ nó trên RAM cho luồng yêu cầu Hệ điều hành Symbian kiểm tra
số lượng luồng tham chiếu đến DLL này và giải phóng nó khi khôngcòn luồng nào sử dụng nó nữa Với các DLL chứa trên ROM thì khôngcần nạp vào RAM nữa mà được sử dụng trực tiếp trên ROM
Khoa Công Nghệ Thông Tin Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội
Học viên: Phạm Văn Hưởng
Trang 39c) Thực thi ứng dụng:
Ứng dụng dòng lệnh được thực thi qua file chương trình exe Các ứng dụngdạng này phải tạo một giao diện dòng lệnh riêng để tương tác với người dùng.Các ứng dụng có giao diện đồ họa là những thư viện polymorphic DLL vớiphần mở rộng là app Tiến trình ứng dụng được tạo bởi một chương trình nhỏ làApprun.exe, , tên của file chương trình ứng dụng app được chuyển làm tham sốcho Apprun.exe
Khoa Công Nghệ Thông Tin Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội
Học viên: Phạm Văn Hưởng
Trang 40Luận văn Thạc sĩ
3.2.3 Xây dựng ứng dụng trên Symbian với C/C++
Như đã đề cập trong phần trước, có thể phát triển ứng dụng trên Symbianvới hai môi trường lập trình chủ yếu là Java và C/C++ Tuy nhiên Symbian cungcấp nhiều thư viện lập trình và cung cấp giao diện API tốt hơn cho các ứng dụngC/C++ Hơn nữa các thiết bị sử dụng hệ điều hành Symbian thường hạn chế về khảnăng phần cứng do đó khi phát triển ứng dụng trên Symbian thì lựa chọn môitrường C/C++ tối ưu hơn Trong phần này sẽ trình bày về nền tảng Symbian và môitrường phát triển tích hợp C/C++ trên Symbian [13]
3.2.3.1 Symbian Flatform
Các hãng sản xuất điện thoại khi sử dụng hệ điều hành Symbian cho thiết bịcủa mình thường tích hợp thêm một số phần mềm hệ thống cho các công nghệ mớitạo thành các nền tảng Symbian Có thể tổng quát như sau [29]:
Symbian Flatform = Hệ điều hành Symbian + Phần mềm hệ thống tích hợp (ISS - Intergrated System Software).
Các nền tảng Symbian phổ biến hiện nay là: Series 60, Symbian UIQ, Series
80 và Series 90, trong đó phổ biến nhất là Series 60 với Nokia 7650,3650,3660.Một số công nghệ tích hợp trong Series 60 được mô tả trong Hình 3.3:
Hình 3.3 Công nghệ tích hợp trong Series 60
3.2.3.2 Các SDK và IDE phổ biến
Công việc xây dựng ứng dụng trên Symbian là tương đối phức tạp, trước hếtcần phân biệt rõ thuật ngữ SDK và IDE Symbian SDK là bộ công cụ phát triểnđược dùng cho việc phát triển ứng dụng chạy trên điện thoại Symbian Mỗi mộtnền hệ thống sẽ có bộ SDK (Software Development Kit) riêng với nhiều phiên bảntheo các phiên bản hệ điều hành và các IDE hỗ trợ Mỗi bộ Symbian SDK bao gồmcác thành phần sau [20]:
Khoa Công Nghệ Thông Tin Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội
Học viên: Phạm Văn Hưởng