Truy cập bộ nhớ mô-đun hạt nhân


9

Hai mô-đun hạt nhân khác nhau có thể truy cập vào cùng một vùng bộ nhớ từ một cuộc gọi đến ioremap_nocache () không?

Tôi có một trình điều khiển không dây và một mô-đun riêng, tôi muốn mô-đun riêng biệt cấu hình các giá trị nhiễu trên thẻ, trong khi trình điều khiển vẫn đang hoạt động. Do đó câu hỏi của tôi ở trên.

Một con đường tôi đã khám phá là để bắt đầu một chuỗi nhân từ trình điều khiển, sau đó tôi đã triển khai một semaphore để ngăn chặn bất kỳ điều kiện chủng tộc nào phát sinh từ việc đọc / ghi đồng thời vào cùng một không gian địa chỉ. Tôi hy vọng rằng một chủ đề con sẽ có thể truy cập vào cùng một vùng bộ nhớ.

Thật không may, điều này đã không làm việc như tôi mong đợi. Tôi sẽ đánh giá cao bất kỳ lời đề nghị.


Tại sao bạn cần một mô-đun hạt nhân để cấu hình các giá trị nhiễu?
gertvdijk

Cảm ơn câu hỏi, trình điều khiển không dây rất phức tạp và để thay đổi tính chu kỳ của hiệu chuẩn có thể gây ra một số kết quả ngoài ý muốn. Tôi sẽ phải làm điều này vì nó chỉ thực hiện hiệu chỉnh cho các khoảng thời gian quá dài so với nhu cầu của tôi. Vì tôi biết chính xác cách cấu hình thiết bị trong một mô-đun riêng biệt, tôi chỉ tò mò muốn biết liệu tôi có thể truy cập vào cùng một vùng bộ nhớ mà trình điều khiển đang làm việc không.
Radagasp

2
Vui lòng chỉnh sửa câu hỏi của bạn để bao gồm tất cả các chi tiết về các lần thử / tiếp cận trước đó của bạn. Đó là cách trang web này hoạt động. Đó không phải là một diễn đàn thảo luận, mà là một trang web hỏi đáp, bạn thấy sao?
gertvdijk

Thảo luận có thể bao gồm các câu hỏi và câu trả lời, một số đúng và một số khác sai - có vẻ như việc giải thích các quy tắc trên các quản trị viên, là ở tỉnh ngữ nghĩa. Tôi tất nhiên đã cập nhật câu hỏi của tôi.
Radagasp

Câu trả lời:


7

Tôi cho rằng bạn có ý định thực hiện một mô-đun hạt nhân khác vì bạn nghĩ việc chia sẻ dữ liệu giữa các mô-đun hạt nhân sẽ dễ dàng hơn. Nhưng có lẽ nó không phải là một lựa chọn tốt. Nếu có thể 'ghi lại tiếng ồn' trong không gian người dùng, tôi nghĩ một giải pháp tốt hơn là triển khai 'trình lược tả' trong không gian người dùng.

Trong giải pháp này, trình lược tả không gian người dùng đọc dữ liệu, thực hiện một số tính toán và hơn là gửi kết quả.

Nếu giải pháp này là ok, việc thực hiện như sau.

Trong mô-đun hạt nhân, chỉ cần đăng ký một thiết bị char trong '/ Proc' và thực hiện các nguyên hàm 'đọc' và 'ghi'. Trong không gian người dùng, chỉ để thực hiện trình lược tả, đọc và ghi vào thiết bị char. Thông tin chi tiết và thông tin cho việc thực hiện này là tất cả ở đây .


Tôi không nghĩ rằng tôi hoàn toàn nhận được câu trả lời của bạn ... vì tôi hiểu nó, tôi vẫn sẽ cần phải viết một mô-đun và mô-đun này sẽ cố gắng truy cập vào cùng một vùng bộ nhớ từ một cuộc gọi đến ioremap_nocache () mà người kia mô-đun đang sử dụng. Hoặc bạn đang nói rằng tôi đăng ký thiết bị char trong mô-đun không dây
Radagasp

1
Phải, bạn sẽ phải triển khai một phần mềm, nhưng không phải là một mô-đun. Bạn sẽ phải viết một chương trình không gian người dùng bình thường, đơn giản hơn một mô-đun, đọc từ '/ dev / nameofdevice' và ghi vào nó. Không cần sử dụng 'ioremap_nocache ()', chỉ cần các tòa nhà như 'mở', 'đọc', 'viết', 'đóng'. Và đúng vậy, mô-đun không dây sẽ phải đăng ký thiết bị char '/ dev / nameofdevice' bên trong, để hiển thị dữ liệu cho người dùng.
vitorafsr
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.