1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Môi trường phát triển phần mềm nhúng cho các thiết bị di động

125 28 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 125
Dung lượng 2,01 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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 1

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

Trang 2

MỤ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 3

3.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 4

Luậ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 5

Routine

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 6

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

Luậ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 9

nhậ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 10

Luậ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 12

lý 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 15

vi 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 16

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 17

Chươ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 18

Luậ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 20

Luậ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 21

2.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 22

Luậ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 23

2.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 24

Luậ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 25

Vớ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 26

số 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 28

Học viên: Phạm Văn Hưởng

Trang 29

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

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 30

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 31

Việ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 32

Luậ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 33

Nhâ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 34

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 35

o 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 36

Luậ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 38

Luậ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 39

c) 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 40

Luậ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

Ngày đăng: 11/11/2020, 21:53

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w