Từ 1 tới 6 trên tổng số 6 kết quả

Đề tài: Building Embedded Linux System

  1. #1
    Ngày gia nhập
    02 2008
    Bài viết
    1,009

    Mặc định Building Embedded Linux System

    Là 1 cuốn sách rất nổi tiếng về lập trình nhúng, cũng là tài liệu giảng dạy của trường đại học Bách Khoa , đọc cuốn sách này các bạn có thể hiểu rõ về quy trình xây dựng 1 hệ thống nhúng bằng linux và các thuật ngữ cơ bản của hệ thống nhúng linux như: toolchain là gì ?, Root file system, bootloader , kernel , initdram .....

    Attached Thumbnails Attached Thumbnails buildingembeddedlinuxsystemspdffoxitreaderbuildingembeddedlinux.png  
    Attached Files Attached Files

  2. #2
    Ngày gia nhập
    02 2008
    Bài viết
    1,009

    Dưới đây, xin nêu lại các ý chính, khái niệm cơ bản dành cho Newbie

    I) ToolChain
    1-Toolchain là gì ?
    Toolchain hay còn gọi là Cross Compiler là 1 compiler có source code là gcc nhưng được biên dịch trên các môi trường khác nhau, Toolchain là trình biên dịch mà có thể sinh ra code thực thi cho 1 hệ thống khác với hệ thống thực hiện compile. Thông thường máy PC làm chức năng như Host cài đặt Cross Compiler, các chương trình của Embedded Linux(Target) sẽ được compile từ Host và kết quả compile sẽ được load vào target để thực thi. Cross Compiler dung lượng tương đối lớn, cũng như thời gian, bộ nhớ dung để compile 1 chương trình đòi hỏi phải thực hiện trên 1 môi trường thích hợp. Các hệ thống Embedded thường giới hạn về mặt dung lương bộ nhớ cũng như khả năng xử lý.
    2-Lấy Toolchain ở đâu ?, biên dịch thế nào ?
    Toolchain là gốc của tất cả mọi thứ trong hệ thống nhúng, cùng 1 loại chip có thể có nhiều toolchain khác nhau ứng cho nhiều hệ thống khác nhau, AlexF sẽ nêu 1 số vd như sau: hệ thống nhúng được xây dựng từ loại chip Arm dung cho máy tính bảng sẽ thuộc loại hệ thống trung bình, tức là ứng với môi trường ứng dụng chạy trên nó là trung bình, khi này, toolchain cũng sẽ được config để thực hiện trên hệ thống không cần phải quá quan trọng về dung lượng và bộ nhớ, ngược lại với hệ thống nhỏ như chíp Arm chạy trên điện thoại di động , Toolchain cũng phải được config sao cho ứng dụng được nó sinh ra có dung lượng nhỏ và tiêu tốn ít tài nguyên, ngoài ra, toolchain còn có thể thay đổi để phù hợp hơn với broad, device phần cứng trên máy

    Hiện nay, thông dụng nhất khi muốn xây dựng hệ thống nhúng là người ta xây dựng lại toolchain sao cho thích hợp với hệ thống của mình nhất,nhưng dĩ nhiên việc đó sẽ nằm ngoài khả năng của newbie , vì vậy vẫn có một số hang cung cấp toolchain sẵn cho chung ta, việc này vẫn nằm trong tầm “chấp nhận được” nếu bạn không “quá pro”, công ty Sourcery là 1 hãng như vậy, nó cung cấp hầu hết các toolchain cho đủ các loại chip và host builder như linux hay windows,bao gồm cả hệ thống nhỏ như uclib hay hệ thống trung bình như gnu

    VD đây là link download CodeSourcery cho Arm: http://www.codesourcery.com/sgpp/lit...@template=lite

    II) Hệ Điều Hành Nhúng:
    1-Linux Kernel Source
    ‐ Linux là 1 hệ điều hành miễn phí, mã nguồn mở, source code có thể
    download trực tiếp tại www.kernel.org Vì Linux Kernel Source Code được viết cho rất nhiều kiến trúc, cũng như cấu hình khác nhau. Do đó, trước khi build lại cho 1 hệ thống chúng ta cần phải thực hiện config cho thích hợp với hệ thống đang có.

    2-Linux Kernel Config
    ‐ Linux Kernel còn có thể config dễ dàng bở giao diện với menuconfig.
    bạn gõ
    make ARCH=Loại_CPU menuconfig
    vd như nếu tôi định biên dịch cho hệ CPU Arm, tôi sẽ config như sau:
    make ARCH=arm menuconfig
    , các loại CPU được support nằm trong thư mục ARCH của linux source code
    khi config Linux có rất nhiều thông số, nhưng trong đó sẽ có 1 vài thông số bạn phải đặc biệt quan tâm nếu muốn xây dựng được 1 hệ thống nhúng simple, vd như CPU, initdram, Network , Toolchain ....

    3-Linux Kernel Image
    ‐ Kernel Image là dạng nhị phân đã biên dịch của kernel source code với các thông tin đã cấu hình. Thông thường quá trình compile sử dụng 1 Cross Compiler thực hiện từ 1 máy Host. Có 1 số loại Kernel Image như zImage,uImage,… đó chỉ là những dạng compressed sử dụng cho từng bootloader khác nhau. thông thường với hệ thống nhúng, để thích hợp với những loại bootloader nhỏ ( như u-boot) người ta chọn uImage khi biên dịch linux


    III Cấu trúc File System
    Bất cứ hệ điều hành nào ngoài bootloader, kernel cũng phải có 1 hệ thống cây thư mục hệ thống, đó là nơi lưu trữ chương trình thực thi, cấu hình hoạt động của máy sau khi boot.
    Linux sử dụng 1 hệ thống File System được chia làm nhiều mục khác
    nhau:
    o / - Root-Directory
    o /bin - system tools
    o /boot - kernel, bootmanager
    o /cdrom - Mount-Point for CD-ROM drives (optional)
    o /dev - device files
    o /etc - configuration files
    o /floppy - Mount-Point for floppy drive(optional)
    o /home - user directory
    o /lib - shared Libraries
    o /mnt - mount Verzeichnis
    o /opt - additional software, GUI
    o /proc - system informations
    o /root - root user directory
    o /sbin - system programs for root
    o /tmp - temporary files
    o /usr - applications for the GUI, source code (kernel)
    o /var - various files, log files
    ‐ Với Embedded Linux toàn bộ hệ thống Root File System có thể được
    lưu trong NAND Flash hay từ SD/MMCD Card.
    ‐ Ngoài ra Linux còn hỗ trợ 1 dạng Root File System đặc biệt khác đó là
    RAM File System, đó chình là 1 Root File System được tạo ngay trong
    bộ nhớ RAM của hệ thống. Thông thường quá trình khởi tạo RAM FS là
    từ 1 dạng file nén Init Ram FS, tùy chọn này nằm ở phần cấu hình
    bootloader.
    IV Linux File System
    ‐ Linux hỗ trợ rất nhiều kiểu File System:
    o FAT16/FAT32/NTFS: Microsoft, sử dụng cho các thẻ
    SD/MMC/USB Disk dung để lưu trữ dữ liệu.
    o JFFS2: kiểu File System này thích hợp với Flash Memory
    o Ext2/3/4: là File System chính lưu trữ của Linux
    o Swap: là 1 File System sử dụng bởi hệ điều hành trong quá trình
    chạy lưu những thông tin, dữ liệu khi cần thiết nếu bộ nhớ RAM
    hạn chế.
    o …
    2. Angtrom
    ‐ Là tập hợp những Tools để Build hệ thống File System cho Linux.
    ‐ Có thể tùy chọn những gói phần mềm, thư viện cần cho hệ thống cần
    Build.
    ‐ Thông thường sẽ được Build từ Host với 1 Cross Compiler.
    3. BuildRoot
    ‐ Tương tự như Angtrom sử dụng để Build hệ thống File System cho
    Linux.

    III. Linux Shell
    III.1. Busybox
    ‐ Là tập hợp những tiện ích utilities cho linux.
    ‐ Một số lệnh thong dụng:
    o mount - Mounts a filesystem
    o umount - Unmounts a filesystem
    o fdisk - Used to create or delete of partitions on a hard drive
    o hdparm - Get/set various hard disk geometry parameters
    o rm - Remove files
    o ls - List the contents of every subdirectory
    o dir - List the current directory content
    o cd - Change the current directory
    o dd - Bit based disk or data copy
    o ps - shows active processes
    o df - Shows the free space of any filesystem
    o find - Search for a file
    o mkdir - Make a directory
    o mv - Move or rename a file
    o vi - Editor with a command mode and text mode
    o killall - Kill processes by name
    o ifconfig - Configure a network interface
    o netstat - Information about the network connections
    o mc - File manager with visual shell
    III.2. Shell Script
    ‐ Là 1 dạng ngôn ngữ lập trình sử dụng để tương tác với kernel, thực thi
    chương trình,…
    ‐ Linux Shell là dang ngôn ngữ script thông dịch, có thể chạy từng dòng
    lệnh, hoặc 1 nhóm các lệnh(batch).
    ‐ Thông thường Linux Shell được thực hiện thông qua 1 Console như
    màn hình, COM Port, hoặc có thể qua mạng(SSH).

    Booting Script
    Là các script khởi động được gọi ngay sau khi kernet hoàn tất quá
    trình boot và mount hệ thống File System. Các script này được gọi là 1
    nhờ 1 chương trình Boot Init thường được kèm theo hầu hết Linux.
    Đã được chỉnh sửa lần cuối bởi AlexF : 26-01-2011 lúc 11:44 PM.

  3. #3
    Ngày gia nhập
    03 2011
    Bài viết
    1

    cảm ơn anh vì bài viết !
    Hiện tại em đang học về hệ nhúng, ông thầy em cho bài tập là viết một ứng dụng trên điện thoại có HĐH nhúng, Em đang xài đt có HĐH linux !
    Anh có thể chỉ em là viết một ứng dụng bằng C trên HĐH linux thi mình cần phải bắt đầu từ đâu ko ạ !
    Chân thành cảm ơn anh !
    Thân !

  4. #4
    Ngày gia nhập
    02 2008
    Bài viết
    1,009

    cái căn bản nhất của lập trình gcc trên board nhúng chính là phiên bản của Toolchain(gcc), bạn cố gắng tìm phiên bản Toolchainmà người ta đã dùng để biên dịch ra cái hệ điều hành nhúng mà bạn đang chạy Linux đó, kế tiếp là các SDK hỗ trợ cái điện thoại của bạn ( ví dụ như SDK điều khiển Blutooh,wifi ... ), từ Toolchain và SDK bạn đã có thể có được mọi thứ rồi

  5. #5
    Ngày gia nhập
    06 2007
    Nơi ở
    C:\WINDOWS\system32\dllcache\
    Bài viết
    3,007

    cám ơn alexF rất nhiều
    mặc dù hiện tài mình chưa làm nhúng nhưng mình cũng quan tâm và yêu thích vấn đề này
    ^_,^

    Facebook : https://www.facebook.com/langmaninternet

    Bùi Tấn Quang

  6. #6
    Ngày gia nhập
    04 2013
    Bài viết
    1

    Mặc định Building Embedded Linux System

    Mình cũng mới bắt đầu tìm hiểu về nhúng với linux. Cảm ơn bạn về bài viết này.

Các đề tài tương tự

  1. Tuyển vị trí Embedded Software Developers Linux C/C++
    Gửi bởi lediep trong diễn đàn Tuyển dụng - Việc làm CNTT
    Trả lời: 2
    Bài viết cuối: 03-10-2013, 04:41 PM
  2. Học Embedded Linux thì nên bắt đầu từ đâu và làm việc ở đâu?
    Gửi bởi i1020242 trong diễn đàn Đào tạo CNTT
    Trả lời: 1
    Bài viết cuối: 17-05-2013, 09:08 AM
  3. tìm giúp ebook về Embedded system propramming
    Gửi bởi sam146 trong diễn đàn Tài liệu, ebooks và công cụ
    Trả lời: 2
    Bài viết cuối: 23-04-2011, 10:09 PM
  4. Embedded system Busybox Là gì vậy ?
    Gửi bởi trần trân trong diễn đàn Thắc mắc lập trình shell Linux
    Trả lời: 2
    Bài viết cuối: 23-11-2010, 10:12 AM
  5. NetWorked Embedded System
    Gửi bởi AlexF trong diễn đàn Tài liệu, ebooks và công cụ
    Trả lời: 0
    Bài viết cuối: 17-04-2010, 01:24 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn