1. Tuyển Mod quản lý diễn đàn. Các thành viên xem chi tiết tại đây

Từ 8051 đến các hệ thống nhúng mã nguồn mở.

Chủ đề trong 'Điện - Điện tử - Viễn thông' bởi opentdoors, 21/05/2004.

  1. 1 người đang xem box này (Thành viên: 0, Khách: 1)
  1. opentdoors

    opentdoors Thành viên mới

    Tham gia ngày:
    09/01/2004
    Bài viết:
    1.205
    Đã được thích:
    0
  2. opentdoors

    opentdoors Thành viên mới

    Tham gia ngày:
    09/01/2004
    Bài viết:
    1.205
    Đã được thích:
    0
    Mỗi task cần có stack riêng, các hàm save và restore context riêng. Tất cả đều được định cùng với task vào lúc viết chương trình, khác với PC là chỗ đó. Với 128 byte RAM on-chip, có thể dùng cho 8 đến 16 task hoặc nhiều hơn, phụ thuộc vào các hàm save và restore context của task đó, ngoài ra RAM ngoài cũng hỗ trợ thêm về bộ nhớ.
    clock của 8051 so với PC là quá bé nhưng đủ lớn cho các quá trình cỡ vài chục đến vài trăm ms trở lên.
    Đây là định nghĩa về hệ thống real-time:
    1. Không nhất thiết phải là hệ thống xử lý tốc độ nhanh (fast-system)-Phillpe Laplante
    2. Là hệ thống hay quá trình xử lý thông tin mà bất kỳ quá trình chuyển đổi của tác nhân bên ngoài ( đối tượng cần xử lý) tương ứng có nghĩa với 1 quá trình chuyển đổi logic của hệ thống, trong 1 giới hạn hay 1 chu kỳ được chỉ định trước-Young
    Được opentdoors sửa chữa / chuyển vào 14:05 ngày 22/05/2004
  3. TuLa

    TuLa Thành viên quen thuộc

    Tham gia ngày:
    24/10/2002
    Bài viết:
    413
    Đã được thích:
    0
    Hi hiiiii, hoá ra bác này là đồng môn !
    Chủ đề mà bác Open đang bàn tới là rất thú vị và ở đẳng cấp rất chuyên nghiệp, những bài viết của bác ở trên chứng tỏ bác đã phải lao tâm khổ tứ rất nhiều với vấn đề Hệ điều hành nhúng đa nhiệm thời gian thực !
    Tớ đã và đang tìm hiểu nhiều về nó và thấy rằng không đơn giản chút nào. Vấn đề phát triển embbed software (phần mềm nhúng) trên các Hệ điều hành thời gian thực thực sự ở một đẳng cấp khác xa so với phát triển embbed software trên các vi điều khiển nhúng. Đó là một vấn đề của chuyên nghiệp và sự kế thừa sâu sắc các kỹ năng và bí quyết công nghệ, mà ở đó sự lệ thuộc vào dòng công nghệ Chip xử lý chính và dòng các sản phẩm kỹ thuật số rất rõ dệt. Phát triển phần mềm nhúng trên Hệ điều hành đa nhiệm thời gian thực đã ở mức đó rồi, thì việc làm thế nào để tạo ra một "Hệ điều hành nhúng đa nhiệm thời gian thực" còn ở đẳng cấp cao hơn rất nhiều. Và một cách chủ quan mà nói thì: hiện nay ở Việt Nam chưa có một ai có đủ đẳng cấp để có thể tạo ra một Hệ điều hành như vậy ! Câu hỏi là tại sao lại kết luận như vậy ? Có hồ đồ chăng mà dám nói thế ? Có thể sẽ có người nói rằng Ông này, Ông kia có thừa sức hoặc là chính một chuyên gia (amatơ) nào đó vỗ ngực ta đây kô thèm làm cái chuyện "nghiệp dư" rỗi hơi ấy; nếu vậy thì ai đó Hãy Lên Tiếng và chỉ ra đây để anh em cấp tốc đến diễn kiến... !
  4. TuLa

    TuLa Thành viên quen thuộc

    Tham gia ngày:
    24/10/2002
    Bài viết:
    413
    Đã được thích:
    0
    Để có thể phát triển tốt phần mềm nhúng trên nền đa nhiệm thời gian thực thì trước hơn hết phải là người có kiến thức sâu sắc về vấn đề nhúng cả phần cứng và phần mềm, đặc biệt là sự kế thừa và tích luỹ kinh nghiệm từ thực tiễn. Phát triển trên nền đó rất gần gũi với phát triển software trên PC (đặc biệt trên Linux và Win API... với các ứng dụng đa nhiệm: luồng, tuyến, tiến trình, cờ hiệu, stack, DMA, Interrupt, driver...) nhưng tư duy và hướng tiếp cận thì khác hẳn, cụ thể là phải soi rọi từ khía cạnh phần cứng, từ nguyên lý hệ thống mà ra. Đối với công nghệ kỹ thuật số, công nghệ cao thì để có được những hiểu biết về Hệ thống ấy là cả một vấn đề về bí quyết công nghệ và kinh nghiệm, kỹ năng của người phát triển software; những cái đó được mua bằng $$$$xxx và mồ hôi, nước mắt của những con người đầy tâm huyết, nghị lực và trí tuệ !
  5. TuLa

    TuLa Thành viên quen thuộc

    Tham gia ngày:
    24/10/2002
    Bài viết:
    413
    Đã được thích:
    0
    Trở lại với sản phẩm công nghệ cao, kỹ thuật số: Với một cách mô tả sơ qua các vấn đề liên quan tới phát triển sản phẩm như trên, thì rõ ràng không thể gọi là sản phẩm kỹ thuật thấp hay kỹ thuật lùn được rồi ! Và vì sao gọi nó là sản phẩm kỹ thuật số ? Vì nó làm bằng công nghệ số hóa là chính và điểm đặc thù đặc biệt thấy rõ nhất của sản phẩm kỹ thuật số là khả năng thông minh, tức là nó được trang bị bởi một hoặc nhiều chip xử lý thực thi phần mềm điều khiển các vận hành của sản phẩm này ! Theo sự tiến triển và xu thế của thời đại thì hàm lượng chất xám và công sức bỏ ra cho phát triển các sản phẩm kỹ thuật số ngày càng chuyển dịch nhiều về phía phần mềm. Điều này được minh chứng bằng ý kiến của nhà sáng lập tập đoàn Microsoft Bill Gate ?oTrong tương lai chủ yếu giá thành là chi cho phần mềm, phần cứng rẻ hầu như cho không?. Một ý kiến rất thực, rất chuẩn nhưng đầy cạm bẫy, bởi vì nó được nói ra bởi Một ông trùm về software nhưng rất am hiểu và khống chế một số lượng lớn thị phần phần cứng công nghệ cao, kỹ thuật số ! Ông ta đề cao phần mềm bởi vì Ông ta là trùm phần mềm; Ông ta đề cao phần mềm bởi vì ông ta đã biết rất rõ phần cứng; Ông la đề cao phần mềm bởi vì ông ta có khả năng làm được cả phần cứng; Ông ta đề cao phần mềm để những người theo ông ta làm phần mềm; Ông ta đề cao phần mềm để mọi người tôn vinh ông ta như một ông trùm to nhất về phần mềm, để hằn sâu tên ông ta và thương hiệu Microsoft như một câu nói của miệng của dân chúng từ đó trở thành thuật ngữ mà những đứa trẻ biết đến từ trước khi nó được ra đời; Ông ta đề cao phần mềm để những kẻ theo phần mềm hãy trung thành với ông ta; Ông ta đề cao phần mềm để những kẻ chưa hiểu về phần cứng hãy đừng cố gắng theo đuổi phần cứng, Ông ta đề cao phần mềm để những kẻ làm về phần cứng và chiếm thị phần về phần cứng đi đến hợp tác với ông ta? trong khi đó ông ta vẫn đang dốc sức vào sáng tạo và phát triển phần cứng. Và như vậy, cuối cùng Ông ta là người duy nhất có khả năng cả phần cứng và phần mềm, và khi giấc mơ theo Ông ta để phát tài bị lật bài ngửa thì đã quá muộn, +++> Ông ta là Number One === Ông ta là vua !
  6. TuLa

    TuLa Thành viên quen thuộc

    Tham gia ngày:
    24/10/2002
    Bài viết:
    413
    Đã được thích:
    0
    Xin tiếp tục về phát triển Phần mềm nhúng trên nền đa nhiệm !
    Để trở thành một chuyên gia phát triển phần mềm nhúng trên nền đa nhiệm thì: trước hết phải là chuyên gia phát triển phần mềm Hệ thống bằng ngôn ngữ C/C++ trên PC (tất nhiên một chuyên gia C/C++ thì không thể không hiểu biết ngôn ngữ Assembly), và đồng thời cũng phải là một chuyên gia phát triển phần mềm nhúng trên chip cho Vi điều khiển, và đồng thời cũng phải là một kỹ sư có đẳng cấp về phần cứng và nguyên lý, lý thuyết hệ thống thông tin ?" truyền thông.
    Vì:
    Các Hệ nhúng và ngôn ngữ lập trình chuyên nghiệp trên toàn thế giới hầu như đều là C/C++, và với sự hỗ trợ của các môi trường soạn thảo, bộ biên dịch chuyên biện ứng với chíp xử lý chính thì phát triển software nhúng trên nền đa nhiệm rất giống trên nền PC. Tuy nhiên đó chỉ là điều kiện tối thiểu và sơ đẳng nhất, viết code ra sao, viết như thế nào thì lại là hiểu biết về hệ thống và kinh nghiệm, sự hỗ trợ, tài nguyên tham khảo? căn bản của Hệ nhúng là đi từ hệ nhỏ mà lên, tức là Hệ vi xử lý, vi điều khiển mà tiến hóa lên, lược sử của Hệ nhúng và cấu trúc Hệ nhúng đều nói lên điều đó. Tất cả các yếu tố cấu thành Hệ nhúng thời gian thực đều thể hiện rất rõ nét là sự cấu thành từ các đơn vị, phần tử tựa như Vi điều khiển mà thành. Do đó phát triển Hệ nhúng cao cấp này cũng không nằm ngoài những kiến thức căn bản từ Vi điều khiển mà lên nhưng ở một đẳng cấp khác. Qua đây cũng đủ thấy tầm quan trọng của sự hiểu biết về phần cứng Hệ nhúng cần phát triển và nguyên lý thông tin giữa các phần tử cấu thành, một Hệ lớn và phức tạp như vậy thì sức Trâu và trí tuệ siêu đẳng đến đâu cũng không thể là một cá nhân, mà là cả một đội ngũ, một tập thể mà ở đó có sự đồng bộ hóa cao về tri thức, kiến thức trong vấn đề nhúng (một cách khôi hài: Anh mơ về ai => NHÚNG, Em mơ về ai => NHÚNG, Chúng ta mơ về ai => NHÚNG) ==> Thật sự đây là một vấn đề của Chuyên nghiệp và đầy trí tuệ, là đỉnh cao của các đỉnh cao trong nền kinh tế tri thức !
  7. TuLa

    TuLa Thành viên quen thuộc

    Tham gia ngày:
    24/10/2002
    Bài viết:
    413
    Đã được thích:
    0
    Nói qua nói lại mãi vẫn chưa vượt quá cảnh giới của Chuyên nghiệp ! Bây giờ bàn chút về Siêu Chuyên Nghiệp, tức là bậc thầy của Chuyên nghiệp, cụ thể là nói về cha đẻ ra Hệ Điều Hành Nhúng Đa Nhiệm Thời Gian Thực !
    Có 2 loại:
    Loại 1: là loại thương mại, có bản quyền và phải trả phí
    Loại 2: là Open Source Code (mã nguồn mở), hãy lưu ý là mã mở chứ không phải là miễn phí hay là không phải trả phí đâu nhá. Cái ngôn từ này nhạy cảm lắm !
    Nếu tớ đoán không nhầm thì bác Opendoors đang có ý định hoặc đang nghiên cứu ?olàm sao để viết ra Hệ điều hành nhúng đa nhiệm thời gian thực? ! Hi hiiii, đúng là đụng nhau rồi ! Tớ đã đang tìm hiểu về nó nhưng thời gian chỉ tranh thủ thôi nên chưa có lúc nào tổng kết và làm thành kế hoạch cụ thể được. Nếu muốn ra vấn đề thì như tất cả những điều đã đề cập ở trên cho thấy, cần phải tập trung một cách cao độ về trí lực và thời gian tương xứng (vài năm) thì mới có thể ƠkêRA được ! Con đường để hiểu về nó chính là tìm hiểu Source Code của Hệ điều hành mã nguồn mở xem họ Viết lên cái HĐH đó như thế nào rồi dần rà vỡ ra và bắt trước làm theo, thất bại rồi thất bại rồi thất bại rồi?. Mãi thế đến lúc hoặc thành công hoặc mất trí hoặc chào thua hoặc đứt đuôi con nòng lọc thì thôi ! Ở đây vẫn còn chưa bàn tới đặc điểm thương mại của sản phẩm, mà thôi kiến cơm đã :-)-D xã hội chủ nghĩa hay thật) ?
  8. opentdoors

    opentdoors Thành viên mới

    Tham gia ngày:
    09/01/2004
    Bài viết:
    1.205
    Đã được thích:
    0
    Dạ em không dám, nghe bác nói em mới biết vấn đề này cao siêu, chứ ban đầu em nghĩ đơn giản là cung cấp thông tin cho những ai quan tâm đến Linux và các ứng dụng hiện nay của Linux.
    Mình rất mong muốn làm quen với những ai quan tâm đến vấn đề này và chúng ta sẽ chia sẻ những công việc hiện nay mình đang làm.
  9. TuLa

    TuLa Thành viên quen thuộc

    Tham gia ngày:
    24/10/2002
    Bài viết:
    413
    Đã được thích:
    0
    Xin lướt qua vài ý của bác Open một chút:
    Trong phần về Java, bác viết là mã xxx của Java là dạng Hexa !!! Hình như là dạng bytecode mới phải chứ nhỉ ?
    Trong các phần bác Open viết về cách cấu trúc và cấu thành lên ?oHệ điều hành nhúng đa nhiệm thời gian thực? cũng như vận hành của nó, theo tớ thì đó chỉ là đặc điểm của Linux thôi ! Các HĐH khác căn bản cũng có chức năng như vậy nhưng không hoàn toàn giống, thí dụ có cái thì khi create một task thì không cần phải bố trí hay quan tâm đến stack, và các để dành nhớ khác cho nó mà nhân HĐH làm hộ luôn, nhưng có cái thì trước khi tạo 1 task thì cần gọi hàm tổ chức các ô nhớ cho task đó vận hành?
  10. opentdoors

    opentdoors Thành viên mới

    Tham gia ngày:
    09/01/2004
    Bài viết:
    1.205
    Đã được thích:
    0
    Hệ thống nhúng là hệ thống toàn bộ phần cứng và phần mềm ( gọi là firmware thì đúng hơn) làm 1 chức năng cụ thể nào đó trong 1 hệ thống khác. Vậy hệ thống nhúng thì chưa chắc là hệ thống real-time, và ngược lại.
    Nhúng và real-time là 2 tính chất của hệ thống. Mình ví dụ thông thường chúng ta dùng vi điều khiển và phần mềm viết cho nó được nạp trong EEPROM on-chip hoặc off-chip, thì vi điều khiển và chương trình nạp trong bộ nhớ của nó tạo thành 1 hệ thống nhúng. Vi điều khiển chỉ có thực thi duy nhất chương trình đã nạp cho nó.
    Mặt khác, mình lấy vd từ 1 thực tế, trong dây chuyền nấu đồng tại 1 Cty sx cáp viễn thông có xuất xứ từ Auto Kumpu ( Phần lan), thì toàn bộ hệ thống này được giám sát và điều khiển bởi 2 PC chạy Win2000, và 2 PC cùng với phần mềm trong đó là hệ thống real-time. Hệ thống này không phải là hệ thống nhúng. Tại vì nó bao quát toàn bộ hệ thống, mặt khác 2 PC đó có thể chạy các chương trình, phần mềm khác tuỳ theo yêu cầu.
    Ở VN, việc ứng dụng PC để giám sát, điều khiển các hệ thống công nghiệp chả có gì là mới mẻ nữa. Cái này chỉ cần xem tivi là thấy.

Chia sẻ trang này