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}

Kernel space và user space

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

  1. hieuvip88 New Member

    Số bài viết: 4
    Đã được thích: 0
    Điểm thành tích: 0
    mình đang thắc mắc vấn đề chỗ này.
    bạn nào có thể cho mình biết điểm khác nhau giữa hai space này.
    với lại với GPIO thì sử dụng user space như thế nào?
    dev/mem: có tác dụng gì
    các bạn cùng thảo luận nha
  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
    Ở cấp độ software, hệ điều hành Linux phân chia thành 2 không gian hoạt động, gọi là user space và kernel space. Chương trình ứng dụng (user program) thuộc về user space và kernel module, driver thuộc về kernel space. Với sự phân chia trên, 1 chương trình ứng dụng không thể truy xuất trực tiếp các gpio của MPU theo kiểu lập trình firmware truyền thống, trong khi kernel module, driver có thể dễ dàng thực hiện điều này. Chương trình ứng dụng truy xuất gpio thông qua driver.
  3. hieuvip88 New Member

    Số bài viết: 4
    Đã được thích: 0
    Điểm thành tích: 0
    [h=2]Khi mình muốn điều khiển GPIO bằng cách truy nhập trực tiếp vào địa chỉ vật lý của các thanh ghi. thì chúng ta đang sử dụng userspace hay là kernl space.và chúng ta có cần sys/class/gpio ko các bác[/h]G
  4. linhdong Member

    Số bài viết: 306
    Đã được thích: 6
    Điểm thành tích: 18
    Giới tính: Nam
    Có 2 cách để truy xuất GPIO:
    I./ TRUY XUẤT GPIO TỪ /SYS/CLASS/GPIO.
    II./ TRUY XUẤT GPIO TỪ KERNEL MODULE
    Kernel module là một dạng driver được viết dưới dạng module trong hệ thống nhúng, nó giúp cho developer phát triển chương trình điều khiển trong hệ thống ebedded system một cách linh động. Các lệnh shell thực hiện add, remove và list kernel module vào hệ thống bao gồm "insmod, rmmod, lsmod ...". Driver của Linux có thể tích hợp vào hệ thống theo hai kiểu bao gồm driver build sẵn (tích hợp vào file ảnh của kernel đó là uImage hoặc zImage) hặc theo kiểu module. Ở phiên bản Linux 2.6.xx đuôi file của module khi biên dịch ra có tên là ".ko".
    Cách 2 này được cho là tối ưu và hiệu quả hơn,hiếu nên tìm hiểu và viết driver và sau đó viết chương trình ứng dụng dựa vào driver đó..!

Chia sẻ trang này