Tôi tìm thấy trình điều khiển tsc2007 và sửa đổi theo nhu cầu của chúng tôi. Công ty chúng tôi đang sản xuất bảng TI DM365 của riêng mình. Trong bảng này, chúng tôi đã sử dụng TSC2007 và pin PENIRQ được kết nối với GPIO0 của DM365. Nó đang được nhìn thấy OK trên trình điều khiển. khi tôi chạm vào con trỏ màn hình cảm ứng đang di chuyển nhưng đồng thời tôi nhận đượcCách giải quyết "BUG: lập lịch trong khi nguyên tử: swapper/0x00000103/0, CPU # 0"? trong trình điều khiển TSC2007?
BUG: scheduling while atomic: swapper /0x00000103/0, CPU#0
cảnh báo và nhúng Linux đang bị lỗi. có 2 tệp mà tôi đã sửa đổi và tải lên http://www.muhendislikhizmeti.com/touchscreen.zip một là với bộ hẹn giờ mà bộ kia không có. nó cho lỗi này trong mọi trường hợp.
Tôi đã tìm thấy giải pháp trên web mà tôi cần sử dụng hàng đợi công việc và gọi bằng cách sử dụng API schedule_work(). nhưng bây giờ họ đang mờ dần. Có ai có bất kỳ ý tưởng làm thế nào để giải quyết vấn đề này và có thể cho tôi một số lời khuyên nơi để bắt đầu sử dụng hàng đợi công việc.
không đủ chính xác: như quán cà phê cho biết, khóa không được ngủ. chỉ spinlock đủ điều kiện cho điều đó. Không thể sử dụng khóa mutex (tôi không chắc chắn?), khi khóa mutex bắt đầu đợi, CPU có thể được lên lịch cho bộ xử lý khác (vì bên trong mutex_lock() là cuộc gọi hàm "might_sleep()", có thể dẫn đến tự nguyện sắp xếp lại - bởi vì cond_resched() được gọi, ngay cả khi bạn đã đặt cờ trước để tắt (có thể dẫn đến lỗi khác?), khi lập lịch tự nguyện được thực hiện khi cờ tiền thưởng được bật? hãy thảo luận. –