Thông báo

Collapse
No announcement yet.

Nghiên cứu kit Linux

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • Nghiên cứu kit Linux

    Hiện nay rất nhiều sản phẩm đã cài đặt hệ điều hành linux ở dạng embedded system, chứ không chỉ cài trên máy tính. Vd như những sản phẩm PDA, PNA,... Do vậy, việc nghiên cứu các sản phẩm có hệ điều hành trở thành một nhu cầu cấp thiết hiện nay đối với ngành điện tử ở Việt Nam.

    Thực chất, đã và đang có nhiều nhóm nghiên cứu vấn đề này, vậy F mở ra luồng này để thảo luận về vấn đề thiết kế kit và cài đặt hệ điều hành uCLinux.

    Chúc vui
    Falleaf
    Công ty TNHH Thương mại và Giao nhận R&P
    58/57 Nguyễn Minh Hoàng - Phường 12 - Quận Tân Bình - TP.HCM
    mail@falleaf.net - VP: (04) 36408561 - (08) 38119870

  • #2
    Bước 1: Tìm hiểu các chip nào tương ứng và hỗ trợ các hệ điều hành nào.

    Đồng chí nào có thể liệt kê các dòng chip có thể cài đặt hệ điều hành Linux, uLinux nhỉ?

    Chúc vui
    Falleaf
    Công ty TNHH Thương mại và Giao nhận R&P
    58/57 Nguyễn Minh Hoàng - Phường 12 - Quận Tân Bình - TP.HCM
    mail@falleaf.net - VP: (04) 36408561 - (08) 38119870

    Comment


    • #3
      trả lời và share tài liệu đây,

      Nguyên văn bởi falleaf Xem bài viết
      Bước 1: Tìm hiểu các chip nào tương ứng và hỗ trợ các hệ điều hành nào.

      Đồng chí nào có thể liệt kê các dòng chip có thể cài đặt hệ điều hành Linux, uLinux nhỉ?

      Chúc vui
      http://duyhung.phan.free.fr/Embedded...0849340586.pdf
      ví dụ trang 43.


      Comment


      • #4
        Nguyên văn bởi falleaf Xem bài viết
        Bước 1: Tìm hiểu các chip nào tương ứng và hỗ trợ các hệ điều hành nào.

        Đồng chí nào có thể liệt kê các dòng chip có thể cài đặt hệ điều hành Linux, uLinux nhỉ?

        Chúc vui
        Hầu như tất cả các dòng vi xử lý / vi điều khiển từ 32 bit trở lên đều được Linux hỗ trợ, trong đó tốt nhất ngoài x86 là ARM và PowerPC. (Dùng từ "hầu như" cho an toàn khỏi nói xằng, thực tế tất cả các loại >= 32 bit tôi biết đều chạy được Linux.) Xem thêm tại diễn đàn http://www.ucdot.org/

        Trước đây nhân Linux được phân làm 2 nhánh chính: nhánh "chính thống" tại kernel.org do Linus Tovald lãnh đạo, phát triển nhân Linux cho những dòng vi xử lý thông thường như x86, PowerPC, Sparc ... ; nhánh "nhúng" phát triển nhân Linux cho những dòng vi điều khiển 32 bit nhưng ít tính năng phần cứng hơn (không có phần xử lý dấu chấm động, quản lý bộ nhớ ...) gọi là uClinux.

        Bắt đầu từ phiên bản nhân Linux 2.6 gần đây, nhiều tính năng của uClinux đã được gộp ngược trở lại vào nhân Linux chính thống và với sự tái thống nhất này, có thể nói một cách an toàn hệ nhúng dùng nhân Linux mà không cần phân biệt Linux hay uClinux.
        Phần mềm tự do hoặc không dùng máy tính nữa !.

        Comment


        • #5
          Bước 2: Một vài cấu hình cơ sở để có thể cài đặt linux lên chip?

          Chúc vui.
          Falleaf
          Công ty TNHH Thương mại và Giao nhận R&P
          58/57 Nguyễn Minh Hoàng - Phường 12 - Quận Tân Bình - TP.HCM
          mail@falleaf.net - VP: (04) 36408561 - (08) 38119870

          Comment


          • #6
            Nguyên văn bởi falleaf Xem bài viết
            Bước 2: Một vài cấu hình cơ sở để có thể cài đặt linux lên chip?

            Chúc vui.
            Cấu hình cơ sở để có thể chạy Linux không nhiều hơn một hệ vi điều khiển mấy. Tối thiểu là
            _
            • Bộ vi xử lý / vi điều khiển 32 bit trở lên : 01 vi mạch
            • Bộ nhớ RAM 4 MB trở lên : 01
            • Bộ nhớ ROM 4 MB trở lên : 01
            • Phần logic để kết nối những thứ trên lại với nhau, thường dùng FPGA. Nếu dùng vi xử lý dòng ARM kiểu như XScale hoặc vi điều khiển đã có khả năng ghép nối sẵn thì không cần phần logic này.
            • Một phương thức nào đó để lập trình cho bộ nhớ, kiểu như JTAG
            • Một phương thức nào đó để kết nối ra bên ngoài: tối thiểu là RS232, có thể là Ethernet, không nhất thiết phải có giao tiếp màn hình bàn phím.
            Bộ vi xử lý / vi điều khiển 32 bit trở lên : 01 vi mạch

            Đó là lý thuyết, trên thực tế, tùy theo trình độ của người làm thế nào, kinh phí ra sao, ý muốn can thiệp vào hệ thống sâu đến đâu mà chọn cách thức cài đặt phù hợp
            101. Mua máy tính để bàn thông thường đã cài đặt sẵn Linux (!)
            102. Mua máy tính để bàn rồi về tự cài Linux cùng các trình điều khiển, phần mềm phù hợp yêu cầu
            103. Tự xây dựng hệ thống Linux từ đầu hoàn toàn bằng mã nguồn để sử dụng hàng ngày (Gentoo, Linux from scratch)

            201. Mua máy tính nhúng đã cài đặt sẵn một phiên bản embedded Linux nào đó (kiểu như MontaVista, TimeSys ...) trên thẻ compact flash
            202. Mua máy tính nhúng rồi về tự cài một phiên bản embedded Linux nào đó (như embedded Debian, embedded Gentoo ...)
            203. Mua máy tính nhúng rồi tự biên dịch một hệ thống Linux từ đầu hoàn toàn bằng mã nguồn rồi tải vào thẻ nhớ / ROM bên trong máy tính
            Có nhiều hãng sản xuất cái gọi là "embedded PC" này, đơn cử Axiom, Advantech, Kontron, Arcom, Moxa...

            30x. Mua bo mạch dạng thô (có đủ các phần cứng như trên đề cập) rồi lần lượt làm qua các bước 201-203. Những sản phẩm điển hình mà tôi có dịp tìm hiểu là
            _ Dựa trên nền AVR32 của Atmel: http://www.linuxdevices.com/news/NS2837651365.html giá 70$ cũng không phải đắt lắm
            _ Dựa trên nền ARM: quá nhiều hãng, quá nhiều sản phẩm
            _ Dựa trên nền những vi điều khiển ít thông dụng khác: H8 (Hitachi), BlackFin (Analog Device)... sẽ đề cập ở mục liền sau

            40x. Tự thiết kế lấy một cái máy tính, cài đặt / tự biên dịch Linux cùng các trình điều khiển, phần mềm phù hợp yêu cầu. Viết thêm phần mềm cần thiết. Đã có một số người làm về cái này và chia xẻ cho cộng đồng toàn bộ thiết kế phần cứng lẫn phần mềm
            ARM: http://www.dlharmon.com/sbc.html
            BlackFin: http://blackfin.uclinux.org/gf/project/stamp
            H8: http://www.azpower.com/H8-uClinux/
            Như vậy không chỉ là phần mềm tự do mà phần cứng cũng được giải phóng nốt !

            Vẫn còn một mức nữa phát triển tiếp từ 40x là sử dụng lõi vi điều khiển nạp trong FPGA (ví dụ lõi Nios trên nền FPGA của Atera hay lõi Microblaze trên nền Xilinx) - nhưng đây là cái tôi đang làm và chưa có nhiều kết quả đáng kể nên không dám "nổ". Và nó cũng thật sự khó.

            Với người làm nhúng bình thường, đạt tới mức 203 đã là đủ.
            Last edited by bqviet; 22-07-2007, 18:37.
            Phần mềm tự do hoặc không dùng máy tính nữa !.

            Comment


            • #7
              em dang tim hiêu về mô hình tổng quát của hệ thống nhúng. có đại ca nao chỉ giáo giúp. xin cảm ơn.

              Comment


              • #8
                bpviet cho em hỏi, bây giờ em là lính mới học lập trình nhúng thì việc đầu tiên em cần có phải là cài 1 hệ điều hành Linux lên PC, rồi sau đó là cài tiếp các phần mềm lập trình C++, và các phần mềm biên dịch để nạp cho chip, việc tiếp theo là tìm mua 1 board mạch nạp cho chip em cần dùng, và sau đó là mua tiếp 1 board có 1 con chip nhúng Linux trong đó để phát triển ứng dụng ?
                Em hình dung các công việc như vậy đã đúng chưa ?
                Mong các pro trả lời giúp !
                thanks!

                Comment


                • #9
                  Bqv thiết nghĩ việc đầu tiên bạn cần xác định là học nhúng Linux để làm gì, nhắm vào thị trường nào, lượng tài nguyên dự định là bao nhiêu (thời gian, tiền, kiến thức cá nhân ...)

                  Sau khi đã xác định các yếu tố trên rồi, sẽ suy ra con đường nào là phù hợp, can thiệp càng sâu thì (1) hiểu rõ sản phẩm của mình hơn dẫn tới tùy biến tốt hơn, (2) khả năng giảm giá thành khi ứng dụng đại trà cao hơn nhưng (3) tốn nhiêu thời gian công sức hơn và (4) trình độ phải cao hơn.

                  Sau khi đã chọn con đường phù hợp rồi, thì mới hoạch định từng bước công việc theo ý bạn hỏi.


                  Bạn có thể thấy, con đường làm nhúng khá dài. Nhưng đi theo từng bước thì sẽ không ngã, và chắc chắn sẽ tới đích. Tất nhiên ở ngoài kia có vô vàn người sẽ nói với bạn rằng, làm nhúng đơn giản chỉ là "Mua một board ARM, cài Linux/Windows rồi cứ thế vọc". Đó là lời của người chuyên bán hàng và người đã bị dụ dỗ bởi những lời đó. Làm nhúng không đơn giản như vậy.
                  Phần mềm tự do hoặc không dùng máy tính nữa !.

                  Comment


                  • #10
                    Nói thật với bác bpviet em là sinh viên mới ra trường chuyên ngành điện tử viễn thông có biết một số kinh về lập trình C cho các vi xử lý 8 bit ( nói vậy đừng nghĩ là mình mới tập viết C ^^ ) nay mình muốn học C++ và áp dụng cho các dòng chip có nhúng Linux lý do là vì sau khi đi phỏng vấn 1 vài công ty viễn thông ( các công ty hoạt động về lập trình cho các thiết bị viễn thông ) các điều kiện đưa ra là toàn về lập trình C++ và lập trình nhúng ( nghĩ về kiến thức của bản thân còn thấp quá ). Mình học nhúng linux vừa để thoả đam mê ( tạo ra các ứng dụng thực tiễn ) vừa đáp ứng nhu cầu tuyển dụng của các công ty, còn về thị trường đầu tiên sẽ là các bạn sinh viên, bây giờ mình chưa có việc nên có thể nói lương tài nguyên ( thời gian, tiền, kiến thức ... ) là rất nhiều.

                    Theo bài viết ở trên của bạn thì mình có thể mua 1 board có các phần cứng cần thiết và cài hệ điều hành nhúng linux lên chip vi xử lý ( arm, avr32 ), vậy làm sao mình có thể cài hệ điều hành linux lên chip vi xử lý này ( các công cụ cần thiết để cài hệ điều hành cho chip ) ? Nếu đi học ở các trung tâm thì mình có thể học ở trung tâm nào ?

                    Mong bạn hướng dẫn!

                    Comment


                    • #11
                      Mình thấy bạn muốn học nhúng mà chưa hiểu rõ nhúng là gì. Ngay cả những ứng dụng nhỏ nhất bạn viết cho các dòng MCU8bit đã là nhúng rồi, mặc dù nó là mức độ "hoang sơ" nhất. Mình thấy quan trọng học là học cách tư duy lập trình thui, khi đi apply vào 1 công ti nào đó, có chắc nó sẽ làm về arm? avr32? pic?... còn có quá nhiều dòng khác nữa mà, nên mình nghĩ cách tiếp cận và tìm hiểu cũng như giải quyết vấn đề tốt quan trọng hơn. Như bạn đã biết về C thì học C++, C# sẽ rất nhanh. Về linux bạn có thể học cái kit friendly2440 của dòng arm11 thì phải cộng đồng của linux friendly gì gì đó có vẻ khá rộng và thân thiện. Mình trước cũng rất muốn tìm hiểu về arm nhưng vì cái nợ trên trường mấy môn đại cương mà phải cầy trả nợ để kì này ra trường đúng tiến độ...
                      Goodluck
                      Web:
                      ->Nhận thiết kế, hoàn thiện dự án, sản phẩm điện tử<-
                      -->Giải pháp GSM/GPRS/GPS - Công nghệ RFID<--

                      Comment


                      • #12
                        Nguyên văn bởi demon52 Xem bài viết
                        Mình thấy bạn muốn học nhúng mà chưa hiểu rõ nhúng là gì. Ngay cả những ứng dụng nhỏ nhất bạn viết cho các dòng MCU8bit đã là nhúng rồi, mặc dù nó là mức độ "hoang sơ" nhất. Mình thấy quan trọng học là học cách tư duy lập trình thui, khi đi apply vào 1 công ti nào đó, có chắc nó sẽ làm về arm? avr32? pic?... còn có quá nhiều dòng khác nữa mà, nên mình nghĩ cách tiếp cận và tìm hiểu cũng như giải quyết vấn đề tốt quan trọng hơn. Như bạn đã biết về C thì học C++, C# sẽ rất nhanh. Về linux bạn có thể học cái kit friendly2440 của dòng arm11 thì phải cộng đồng của linux friendly gì gì đó có vẻ khá rộng và thân thiện. Mình trước cũng rất muốn tìm hiểu về arm nhưng vì cái nợ trên trường mấy môn đại cương mà phải cầy trả nợ để kì này ra trường đúng tiến độ...
                        Goodluck
                        kit friendly2440 là ARM9 chứ không phải ARM11 đâu bác.

                        Comment


                        • #13
                          mình có thể mua kit friendly2440 này ở đâu ?

                          Do mình không biết nền mới lên diễn đàn hỏi những người đi trước để học hỏi kinh nghiệm ( để có cái nhìn tổng quát ), có thể 1 công ty nào đó ko sử dụng các dòng arm hoặc avr 32 nhưng thông qua các kit của các dòng chip này mình mới có cơ hội để tiếp cận cách giải quyết vấn đề mới khi các cách này khó áp dụng được cho MCU 8bit.

                          Để lập trình cho arm9 thì mình cần phần mềm gì ? có cần setup embedded linux trên pc ko ?

                          Mong được giúp đỡ !

                          Comment


                          • #14
                            Nguyên văn bởi thelaxong Xem bài viết
                            mình có thể mua kit friendly2440 này ở đâu ?

                            Do mình không biết nền mới lên diễn đàn hỏi những người đi trước để học hỏi kinh nghiệm ( để có cái nhìn tổng quát ), có thể 1 công ty nào đó ko sử dụng các dòng arm hoặc avr 32 nhưng thông qua các kit của các dòng chip này mình mới có cơ hội để tiếp cận cách giải quyết vấn đề mới khi các cách này khó áp dụng được cho MCU 8bit.

                            Để lập trình cho arm9 thì mình cần phần mềm gì ? có cần setup embedded linux trên pc ko ?

                            Mong được giúp đỡ !
                            trên window thì bạn cần keil uvision 4 dowload tại đây:http://www.keil.com/fid/esqrpfw1y9wj...val/mdk423.exe

                            còn trên linux thì dùng gcc:GCC Releases - GNU Project - Free Software Foundation (FSF)
                            với gcc thì bạn cần cài rất nhiều thư viện khác phục vụ cho việc build code trên linux
                            các vấn đề về sdcard, usb, tcp/ip, upgrate firmware,...
                            trên các dòng chip: stm32, lpc of nxp
                            please cell phone: 01649895559

                            Comment


                            • #15
                              ok, thanks nguyenbanvui !
                              việc tiếp theo là tìm hiểu về con arm, ngoài việc đọc datasheet của arm 9 thì việc lập trình cho arm có giống với 89c51 ko ( tức là xuất nhập port thông qua thanh ghi ) hay phải lập trình với 1 phương thức khác ?

                              Comment

                              Về tác giả

                              Collapse

                              falleaf Tìm hiểu thêm về falleaf

                              Bài viết mới nhất

                              Collapse

                              Đang tải...
                              X