1. THÔNG BÁO TUYỂN ADMIN DIỄN ĐÀN 2013
    Tìm kiếm nhà trọ - Ở ghép
    THÔNG BÁO BÁN ÁO SPKT.NET CHO THÀNH VIÊN DIỄN ĐÀN


    HÃY TÌM KIẾM Ở ĐÂY TRƯỚC KHI ĐẶT CÂU HỎI
    {xen:phrase loading}

[lập trình nhúng] Tổng quan về Pocket PC - Hệ điều hành Pocket Pc - Thiết bị Pocket PC

Thảo luận trong 'Lập trình nhúng' bắt đầu bởi linhdong, 20 Tháng ba 2012.

  1. linhdong Member

    Số bài viết: 306
    Đã được thích: 6
    Điểm thành tích: 18
    Giới tính: Nam
    1 Tổng quan về Pocket PC
    1.1 Giới thiệu

    Khi nói về Pocket PC ta cần phân biệt hai khái niệm. Đó là hệ điều hành Pocket PC (Pocket PC Operating System) và thiết bị Pocket PC (Pocket PC–device).
    Hệ điều hành Pocket PC: là một phiên bản của hệ điều hành Windows CE cho các thiết bị di động được Microsoft giới thiệu vào đầu năm 2000.
    Thiết bị Pocket PC: là một PDA, là một thiết bị cầm tay (palm–size) sử dụng
    1.2 hệ điều hành Pocket PC.


    Một thiết bị Pocket PC luôn đi kèm với một phiên bản của hệ điều hành Pocket PC.

    Hệ điều hành Pocket PC được thiết kế với các tính năng và giao diện dành riêng cho các thiết bị hỗ trợ cá nhân PDA và máy tính cầm tay (handheld PC). Có thể hiểu hệ điều hành Pocket PC là một phiên bản của hệ điều hành Windows CE được cài đặt nhằm tối ưu cho các thiết bị này.
    Hệ điều hành Pocket PC giải quyết được nhiều thiếu sót đã làm giảm thành công của hệ điều hành Windows CE, như giao diện quá phức tạp, tốc độ chậm, khả năng lưu trữ kém, nguồn cung cấp năng lượng không tốt, …
    Phiên bản mới nhất là hệ điều hành Pocket PC 2003, một thể hiện của hệ điều hành Windows CE 4.2.

    [IMG]


    1.3 Thiết bị Pocket PC

    Ra đời vào những năm 90 của thế kỉ 20, thiết bị Pocket PC là một dạng thiết bị PDA sử dụng hệ điều hành Pocket PC. Với thiết bị Pocket PC thì mục đích của Microsoft là tạo ra một máy tính đa năng mà có thể đặt trong lòng bàn tay. Các thiết bị Pocket PC do nhiều hãng như Compag, HP, Casio sản xuất.
    Thiết bị Pocket PC có tốc độ và bộ nhớ gấp vài lần so với các thiết bị sử dụng hệ điều hành PalmOS. Chúng cũng có độ phân giải màn hình lớn hơn (320x240) và gần như hiển thị được tất cả các màu. Khả năng thể hiện và ghi âm đã trở thành chuẩn. Hơn nữa, thiết bị Pocket PC sử dụng các chuẩn cắm công nghiệp, có tính tương thích và có một số hình thức thêm các phần (module) mở rộng (thường dưới hình thức các thẻ Compact Flash) như các thẻ nhớ (storage card), hay modem kết nối Internet, …Tất cả các hệ thống có thể giao tiếp qua cổng hồng ngoại (IR–Infrared), và chúng cũng có thể kết nối với desktop qua cổng USB dùng cáp nối. Microsoft đã thêm các tính năng mới cho thiết bị Pocket PC với hệ điều hành Pocket PC (lưu trong ROM) chứa phiên bản thu gọn của một số phần mềm như: Pocket Internet Explorer,Pocket Word và Excel, Outlook, Microsoft Reader, Media Player, File Manager, Notepad và Calculator, …cũng như gói phần mềm ActiveSync giữa thiết bị Pocket PC và các máy trạm. Các phần mềm khác phải được lưu trong Systems RAM (đóng vai trò là sự kết hợp giữa hệ thống tập tin và bộ nhớ hỗn tạp). Microsoft cũng cung cấp một số phần mềm miễn phí như: Pocket Streets, Transcriber (bộ giải mã chữ viết tay) và
    Games (như Freecell). Nhiều phần mềm khác của hãng thứ ba cũng được tích hợp sẵn như: Databases, Picture Viewers, … Với tất cả những tính năng trên thì Pocket PC thực sự là một trong những thiết bị PDA được sử dụng phổ biến nhất ở Việt Nam hiện nay, cũng như trong
    tương lai. Nhưng do điều kiện không cho phép nên ứng dụng Từ điển chỉ được phát triển trên Pocket PC 2002.
    [IMG]
    Ghi chú:
    Từ đây, trong luận văn, khi đề cập đến Pocket PC xin hiểu đây là thiết bị Pocket PC (ứng dụng được xây dựng trên phiên bản hệ điều hành Pocket PC 2002, được phát triển trên nhân hệ điều hành nhúng Windows CE 3.0). Ngoài ra, do là một biến thể của Windows CE 3.0, nên khi đề cập tới các vấn đề liên quan như khả năng lập trình, hạn chế về tốc độ, giải pháp của Windows CE… xin hiểu đó là các vấn đề gặp phải với hệ điều hành Pocket PC.
    2 . Một số công cụ phát triển trên Pocket PC 2002


    Là một lập trình viên thì khi tìm hiểu một thiết bị mới, cũng như một hệ điều hành mới, vấn đề được quan tâm nhất chính là khả năng lập trình, phát triển ứng dụng trên thiết bị, hệ điều hành đó. Đối với Pocket PC 2002 thì hiện nay tất cả các phần mềm hay ứng dụng đều được phát triển bằng hai công cụ chính là: Microsoft eMbedded Visual C++ 3.0. .Net Compact Framework.
    Mỗi công cụ đều có những điểm mạnh, yếu đặc trưng của nó. Vì vậy, khi phát triển ứng dụng trên Pocket PC cần xem xét, cân nhắc việc kết hợp giữa 2 bộ công cụ này.
    3. Công cụ lập trình Microsoft eMbedded Visual C++ 3.0
    3.1 Khái quát



    Microsoft eMbedded Visual Tools 3.0 là một môi trường “tất cả trong một” cho sự phát triển cơ sở Windows CE (tương tự như bộ Visual Studio). Nó cuộn sang một gói đơn tất cả hỗ trợ mà thường đòi hỏi 4 sản phẩm riêng rẽ. Không giống như sản phẩm phát triển chương trình trước đó của Windows CE, nó không đơn giản một add-on vào công cụ tồn tại cho Visual C++ và Visual Basic. Thay thế vào đó, nó cung cấp tất cả những gì bạn cần từ cả 2 môi trường đơn và gói độc lập.
    3.2 Một số đặc điểm nổi bật
    Microsoft eMbedded Visual C++ 3.0 là một chương trình mạnh nhất cho các nhà lập trình xây dựng chương trình phầm mềm ứng dụng cho các thiết bị sử dụng Windows CE. IDE đứng độc lập mang đến một mức độ mới cho sản phẩm cho sự phát triển Windows CE, không có sự thỏa hiệp mềm dẻo nào, thực thi, hoặc kiểm soát. Với eMbedded Visual C++, các nhà phát triển có thể đạt được các điều sau: Có một sự thuận lợi của một môi trường phát triển quen thuộc bằng việc xây dựng các chương trình ứng dụng trên Windows CE sử dụng bộ tích hợp
    điện tử độc lập được thiết kế nhắm tới sự phát triển Windows CE; Truy nhập Windows CE - cung cấp những tài liệu cụ thể nhằm tạo ra các bộ phát triển phần mềm nền mà bạn đã cài đặt ở nơi làm việc của bạn. Tiết kiệm thời gian và tiền bạc bằng việc sử dụng các phiên bản Windows CE của Microsoft Foundation Classes và Active Template Library; Xây dựng những giải pháp công nghệ với các khả năng qua các ADO cho Windows CE, xử lý các tác vụ qua MTS - Microsoft Transaction Server, và sự tích hợp gần gũi hơn với các dịch vụ của hệ điều hành Windows CE. Đạt tới sự truy nhập trực tiếp vào các tính năng dưới hệ điều hành không cần sự mã hóa thêm vào, cung cấp điều khiển đầy đủ trên các thiết bị phần cứng và hệ điều hành chủ. Truy nhập vào mọi tính năng của mọi sự hoán vị của hệ điều hành Windows CE để xây dựng nhanh nhất, thiết thực nhất cho các chương trình ứng dụng Windows CE. Là công cụ đầu tiên để lập trình cho các thiết bị mới nhất và
    thú vị nhất với Windows CE, sử dụng các giả lập SDK Windows CE cho eMbedded Visual C++. Tham gia lập trình ngay từ đầu và có thể xây dựng các chương trình tốt cho hệ điều hành tiếp theo. Mở rộng các lựa chọn phát triển hướng tới toàn bộ những nhóm người dùng mới và trang bị những chương trình tương tự như trong máy tính để bàn nhưng chạy trong Windows CE như trình duyệt Internet, các xử lý giao dịch công việc cụ thể (task-specific business processes), hoặc chương trình giải trí. Xây dựng các chương trình phục vụ sự lưu động cao,với tính năng có thể truy nhập từ xa dữ liệu lưu trữ và truyền tải với các mạng chủ. Với những tính năng như vậy thì Microsoft eMbedded Visual C++ 3.0 thường được sử dụng để phát triển các ứng dụng đòi hỏi phải can thiệp sâu xuống hệ thống, có tốc độ xử lý đặc biệt. Tuy nhiên, việc sử dụng Microsoft eMbedded Visual C++ 3.0 tương đối rắc rối và phức tạp. Hơn nữa, đây là một công cụ phát triển phụ thuộc thiết bị và hệ điều hành, nghĩa là muốn ứng dụng chạy được trên nền nào thì ứng dụng phải được biên dịch chính xác trên nền đó. Đó là một khó khăn đối với những người bắt đầu làm quen với việc lập trình trên Pocket PC nói riêng và trên các thiết bị PDA nói chung.
    [IMG]
    Hình 2.3: Sự phụ thuộc thiết bị khi lập trình với eVC++ 3.0
    4 Môi trường lập trình .Net Compact Framework
    4.1 .Net Compact Framework là gì 2.4.1

    .Net Compact Framework (.Net CF) là một giao diện lập trình, một thư viện thực thi được tạo ra như là sự kết hợp giữa hai công nghệ của Microsoft: Window CE và .Net.
    Nói cách khác, .Net Compact Framework là một tập con của .Net Framework. Nó bao gồm các thư viện lớp cơ sở và có thêm một số thư viện
    chuyên cho việc phát triển trên các thiết bị PDA. .Net Compact Framework được thiết kế để cho phép các ứng dụng .Net chạy được trên tất cả các thiết bị PDA mà không lệ thuộc hệ điều hành.
    [IMG]
    4.2 Một số đặc điểm của .Net Compact Framework
    4.2.1 Độc lập với thiết bị và hệ điều hành

    Hoạt động gần giống nguyên tắc với một máy ảo nhưng được thiết kế để tận dụng tối đa tài nguyên của thiết bị nhúng, .NET Compact Framework cho phát triển một ứng dụng .NET viết một lần, chạy ở mọi nơi.
    Cần lưu ý rằng do các máy PDA sử dụng rất nhiều chủng loại CPU khác nhau như ARM4, ARM4I, Xscale… các chương trình cũng cần được biên dịch thành nhiều tập tin .EXE ứng với mỗi chủng loại CPU. Khi cài đặt, chương trình đóng gói setup sẽ kiểm tra và chép tập tin .EXE phù hợp với loại CPU được sử dụng trong thiết bị. Đối với ứng dụng .NET, chương trình có thể chạy trên bất kỳ loại CPU nào. Hiện tại .NET Compact Framework chỉ mới được viết cho các máy PDA sử dụng hệ điều hành Windows CE1. Kế hoạch xây dựng .NET CF cho các hệ điều
    hành nhúng khác đang được xây dựng, bắt đầu từ Embedded Linux. Đây là một trong những ưu điểm nổi trội của việc chọn lựa .NET Compact Framework để phát triển ứng dụng trên Pocket PC.


    4.2.2 Được xây dựng dựa trên những thừa hưởng từ .Net
    Framework

    .NET Compact Framework (.NET CF) là thư viện .NET Framework đã được Microsoft thiết kế lại để chạy hiệu quả trong điều kiện tài nguyên giới hạn của các thiết bị PDA.. Nó bao gồm 18 thư viện với dung lượng khoảng 2,5MB trong khi .Net Framework phiên bản 1.1 gồm 86 thư viện chiếm khoảng 40MB. Tất cả các thành phần chuẩn “phổ biến” của .Net Framework trên desktop đều có thể tìm thấy trong .Net Compact Framework. Các tập tin thực thi sử dụng tập chỉ dẫn CIL để đưa chúng vào bộ nhớ và được biên dịch JIT (Just In Time - cơ chế chỉ biên dịch các phần cần thiết để chạy chương trình) sang những chỉ dẫn ngôn ngữ máy bởi cơ chế thực thi ngôn ngữ chung (CLR - Common Language Runtime) của .Net Compact Framework. .Net CF cũng cung cấp cơ chế quản lý bộ nhớ giống như trên desktop như: cấp phát bộ nhớ, quản lý bộ nhớ Heap, và cơ chế dọn rác tự động. Compact Framework cũng hỗ trợ tất cả các chuẩn trong nền tảng ngôn ngữ chung(CLI – Common Language Infrastructure), gồm hệ thống kiểu chung (Common Type System) cũng như đặc tả kiểu chung (Common Language Specification). Mặc dù bộ khung này không phong phú bằng trên desktop, nhưng các thao tác trong thời gian thực thi cơ bản là chính xác.
    Do .NET CF là một phần của .NET Framework, các ứng dụng .NET dược viết cho PDA vẫn chạy tốt trên máy tính để bàn có cài đặt .NET Framework.
    4.2.3 Duy trì sự nhất quán với Desktop

    Các lập trình viên đã quen với các ứng dụng .Net trên desktop sẽ cảm thấy gần gũi với .Net Compact Framework vì cả hai bộ khung chia sẻ tất cả các kiểu giá trị cơ bản, hầu hết các không gian tên (namespaces) và nhiều lớp chung.
    [IMG]

    Hình 2.5: Không gian tên và các lớp của .Net Compact Framework

    Tuy nhiên, hầu hết các lớp trên .Net Compact Framework có số thuộc tính, phương thức, sự kiện ít hơn. Đây cũng chính là một khó khăn cho các lập trình viên khi tiếp cận với .Net Compact Framework. Họ phải mất thời gian để thích nghi với “sự thiếu sót”. Các ứng dụng .Net CF cũng được xây dựng trên môi trường Visual Studio .Net như các ứng dụng .Net. Một chương trình viết bằng .Net CF có thể chạy được trên desktop mà không cần bất kỳ sự thay đổi nào. Tính nhất quán cao của chúng cho phép trên cùng một tài liệu hỗ trợ cả hai bộ khung. Các thành phần nào của lớp được hỗ trợ trên .Net CF sẽ được ghi chú là “Supported by the .Net Compact Framework”.
    [IMG]

    4.2.4 Chạy tốt trên các thiết bị nhúng di động

    Hai thách thức chính khi phát triển các ứng dụng trên các thiết bị PDA là kích thước và tốc độ. Vấn đề đặt ra là làm sao để có thể sử dụng được bộ thư viện đồ sộ 25+ MB của desktop Framework trên các thiết bị di động mà khả năng lưu trữ rất giới hạn (từ 32MB đến 64MB). Hướng giải quyết được đưa ra là rút gọn desktop Framework từ 25+ MB xuống chỉ còn 2MB bằng nhiều cách khác nhau: Nếu có hai hay nhiều cách để thực hiện một tác vụ nào đó thì hầu hết chúng được loại bỏ. .Net CF loại bỏ các tính năng trung tâm trên desktop như kéo thả (drag-and-drop), các control phức tạp như RichTextBox (.Net CF chỉ hỗ trợ một phần các Control trên desktop. Xem Error! Reference source not found.). Với các Control được hỗ trợ thì chỉ những tính năng cơ bản nhất được giữ lại, một tập con “PMEs” – Properties, Methods và Events (Xem Error! Reference source not found.) . Vấn đề còn lại là về mặt tốc độ. Thậm chí những CPU nhanh nhất trên các thiết bị nhúng di động cũng chậm hơn các CPU trên một hệ thống desktop trung bình. Để đạt được những yêu cầu về mặt tốc độ, .Net CF được đo đạc và chuyển đổi sao cho các control chủ yếu dựa trên Win32 (native control). Tuy nhiên do các control Win32 ở dạng unmanaged code mà Compact Framework code lại chạy dưới dạng managed code nên cũng phải tốn chi phí để vượt qua ranh giới giữa managed và unmanaged code. Vì vậy để tăng tốc độ của các control thì .Net CF chỉ chấp nhận một tập con các thông điệp Win32 được kiểm soát chặt chẽ.
    4.2.5 Thể hiện phong phú trên các Platform khác nhau

    Trong mọi trường hợp, Compact Framework dựa trên các native control để thực hiện phần chính của công việc. Điều này rõ ràng là đem lại những lợi ích về mặt kích thước và tốc độ. Hơn nữa, ứng với mỗi Platform nó có còn cung cấp một chuẩn giao diện (look-and-feel) đáng tin cậy cho các ứng dụng Compact Framework trên đó. Ví dụ, lớp MainMenu của .Net CF sẽ cung cấp các thể hiện khác nhau ứng với từng Platform. Đối với các ứng dụng trên Pocket PC, trình đơn này xuất hiện ở phía dưới của của sổ. Còn trên các thiết bị Windows CE.NET không phải là Pocket PC (non-Pocket PC), cũng với các ứng dụng đó nhưng trình đơn lại xuất hiện phía trên của cửa sổ giống như các ứng dụng trên Windows CE.NET chuẩn. Mặc dù sự cài đặt bên dưới của trình đơn Win32 là khác nhau nhưng các nhà phát triển không thể thấy được sự khác nhau đó thông qua các lớp MainMenu và MenuItem của .Net CF.
    4.2.6 Duy trì chuẩn giao diện (look-and-feel) của từng Platform

    Vấn đề nảy sinh từ những khác nhau không rõ ràng trong cách cài đặt các native control. Có nhiều sự khác nhau rất nhỏ, hầu như không thể nhận thấy được như thêm một pixel ở đây, bớt một pixel ở kia. Những khác nhau như vậy là không thể thấy được khi nhìn vào hai ứng dụng chạy trên hai thiết bị khác nhau. Nhưng khi hai ứng dụng chạy trên cùng một thiết bị thì những khác nhau đó trở nên rõ ràng. .Net CF đảm bảo rằng các chuẩn look-and-feel trên các Platform khác nhau được duy trì. Còn đối với người sử dụng thì không thể phân biệt được một cách trực quan giữa ứng dụng Compact Framework và các ứng dụng không Framework.
    4.3 Một số hạn chế của .Net Compact Framework:

    Như đã nói, .Net Compact Framework là một tập con, được đơn giản hóa từ .Net Framework trên Desktop. Do đó, việc thiếu sót một số đặc tính sẽ gây ra những khó khăn nhất định đối với các lập trình viên đã quen với môi trường .Net Framework trên Desktop. Trong một số trường hợp, người dùng có thể tìm thấy sự hỗ trợ trong các thư viện Win32 bằng cách sử dụng khai báo P/Invoke. Còn trong trường hợp xấu nhất, thì bạn phải nghĩ đến cách cài đặt lại một đặc tính thiếu sót nào đó. .Net Compact Framework không hỗ trợ các module IL(Intermediate Language - Ngôn ngữ trung gian) tiền biên dịch, mà tất cả sự chuyển đổi từ IL sang Native code được thực hiện lúc thực thi chương trình như là JITted code (Just In Timed code – những đoạn code nào cần thiết để chạy ứng dụng mới được biên dịch).
    Đối với XML Web Services, .Net Compact Framework chỉ hỗ trợ cơ chế gọi thủ tục từ xa, mà không hỗ trợ cơ chế .Net Remoting, một cơ chế mềm dẻo hơn Web Services bởi vì một đối tượng có thể thực hiện nội bộ trên cùng một máy, hoặc là thực hiện từ xa trên một máy được nối mạng. Các thư viện cơ sở trên Windows CE chủ yếu
    hỗ trợ tập ký tự Unicode.
    Bảng sau đây tóm tắt sự hỗ trợ các tập ký tự khác nhau trên các hệ điều hành họ Microsoft
    [IMG]
    Thế giới máy tính đang chuyển dần sang sử dụng ký tự Unicode. Windows CE chỉ hỗ trợ Unicode, điều này có nghĩa là các hàm Win32 trên Windows CE chỉ chấp nhận các ký tự Unicode. Vấn đề nảy sinh khi đọc các tập tin không phải dạng Unicode, hay truyền thông với các máy khác bằng các ký tự không phải là Unicode (non-Unicode). Chẳng hạn, hầu hết các trang Web đều không gửi các ký tự Unicode. Trong trường hợp này, bạn cần phải chuyển đổi giữa Unicode và các tập ký tự khác (được hỗ trợ bởi lớp System.Text). Hệ thống registry trên Windows CE cũng quan trọng như trên Desktop.Mặc dù được nhấn mạnh là quan trọng nhưng, .Net Compact Framework không hỗ trợ
    các lớp truy cập registry. Các lớp Registry và RegistryKey không được hỗ trợ bởi Compact Framework. Tuy nhiên, bạn có thể dùng P/Invoke để truy cập đến registry.
  2. linhdong Member

    Số bài viết: 306
    Đã được thích: 6
    Điểm thành tích: 18
    Giới tính: Nam
    Tuần tới nhóm sẽ thực hành lập trình các chương trình ứng dụng GUI trên nền windows CE sử dụng ngôn ngữ C# (hay thường gọi là lập trình Pocket PC) cho kit nhúng tiny6410 hoặc mini2440.!
  3. thainqauto1 New Member

    Số bài viết: 2
    Đã được thích: 0
    Điểm thành tích: 0
  4. thainqauto1 New Member

    Số bài viết: 2
    Đã được thích: 0
    Điểm thành tích: 0
  5. dtanh72 New Member

    Số bài viết: 1
    Đã được thích: 0
    Điểm thành tích: 0
    Trong nhóm có bạn nào thử ứng dụng truyền data từ PC đến board qua USB port chưa?
    @dtanh72 đang có ý định viết 2 ứng dụng, 1 trên PC, 1 trên board nhưng không biết giao tiếp qua USB thì phải làm sao!
    Rất mong được sự chia sẻ!
  6. brillian90 New Member

    Số bài viết: 3
    Đã được thích: 0
    Điểm thành tích: 0
    Chào các bác,
    em mới bước chân vào loại này, hiện tại chưa biết gì về nó luôn.
    em đã cài các chương trình VS2005,... trên pc và có 1 cái kit tiny6410 nhưng chưa biết làm gì cả,
    các bác có thể cho em mottj vài ví dụ cho nó dễ hiểu chút dc không, chẳng hạn như nháy led,....
    cảm ơn các bác.

Chia sẻ trang này