Tôi đang xem một số gợi ý để hiểu cách nhân Linux thực hiện việc thiết lập các đồng hồ phần cứng khác nhau. Điều này về cơ bản liên quan đến việc làm việc với việc thiết lập các đồng hồ khác nhau mà các tính năng phần cứng như màn hình LCD, UART vv sẽ sử dụng. Ví dụ, khi Linux khởi động, nó xử lý việc thiết lập đồng hồ cho UART hoặc USB như thế nào. Có thể một cái gì đó giống như một người quản lý đồng hồ hoặc một cái gì đó.Triển khai tín hiệu đồng hồ phần cứng trong Linux Kernel
Tôi về cơ bản đang cố triển khai một cái gì đó tương tự cho một hệ điều hành khác trên một phần cứng mới mà tôi đang làm việc. Bất kỳ trợ giúp sẽ được thực sự đánh giá cao.
[Chỉnh sửa]
Cảm ơn bạn đã trả lời và liên kết. Vì vậy, đây là những gì tôi đã thực hiện cho đến bây giờ. Điều này sẽ cung cấp cho bạn một ý tưởng về nơi tôi đang đứng đầu.
Tôi tra cứu Sổ tay tham khảo phần cứng cho hệ thống cụ thể mà tôi đang nhắm mục tiêu và viết một số mã để theo dõi/sửa đổi tín hiệu/ghim của thiết bị ngoại vi mà tôi quan tâm, nghĩa là chuyển ON/OFF từ dòng lệnh. một bộ sưu tập của các đồng hồ/tín hiệu cùng nhau kiểm soát một HRM ngoại vi. Sẽ nói rằng nếu bạn muốn bật UART hoặc một cái gì đó sau đó bật tín hiệu như vậy và/pins. Và @BjoernD có Tôi đang sử dụng một cái gì đó giống như một mmap() chức năng để nói chuyện với các thiết bị ngoại vi.
Thịt của câu hỏi của tôi là tôi muốn hiểu thiết kế và triển khai Trình quản lý đồng hồ/ngoại vi sử dụng tiện ích mà tôi đã viết. Trình quản lý đồng hồ/ngoại vi này sẽ cho tôi quyền kiểm soát việc bật/tắt các thiết bị ngoại vi mà tôi muốn. Về cơ bản, Trình quản lý này sẽ cho phép tôi thực hiện các thay đổi trong mã init hiện đang chạy. Ngoài ra trong quá trình chạy thời gian có thể gọi Trình quản lý này để BẬT/TẮT các thiết bị sao cho mức tiêu thụ điện năng được tối ưu hóa. Nó có thể không có ý nghĩa hoàn hảo, nhưng bản thân tôi đang cố gắng quấn quanh đầu tôi.
Bây giờ tôi chắc chắn rằng một cái gì đó như thế này sẽ được triển khai trong Linux hoặc cho bất kỳ hệ điều hành nào về vấn đề hiệu suất (không ai muốn lãng phí năng lượng bằng cách bật tất cả thiết bị ngoại vi lúc khởi động). Tôi muốn hiểu Kiến trúc phần mềm của nó. Tham khảo từ bất kỳ hệ điều hành sẽ làm gì bây giờ để atleast có được một headstart. Ngoài ra tôi không viết hệ điều hành của riêng tôi, có một hệ điều hành tại chỗ nhưng Im tìm kiếm nhiều hơn ở một phần mềm cấp board aka BSP để làm việc trên. Nhưng cảm ơn cho các liên kết hệ điều hành anyways, họ thực sự tốt. Cảm kích điều đó.
Cảm ơn!
Vì vậy, những gì tôi đang về cơ bản cố gắng làm là có một số loại của hệ thống tại chỗ để tôi có thể bật các tín hiệu/đồng hồ yêu cầu cho h/w tương ứng. –
Contd (Phím trả lại được cho là đã dán chú thích) Vì vậy, ví dụ trong khi khởi động có thể chỉ có UART có thể được bật nhưng phần còn lại có thể tắt để tiết kiệm power.Later khi LCD cần khởi động nó có thể gửi yêu cầu đến tiện ích/người quản lý trên các tín hiệu nhất định (chúng sẽ được biết đến từ thông số h/w). Tiện ích sẽ thực hiện hành động thích hợp bằng cách thiết lập các bit được yêu cầu trong thanh ghi điều khiển cho màn hình LCD "CAO". –
Tôi chắc chắn rằng điều này đã được xử lý một cách có tổ chức trong hạt nhân Linux, nó chỉ là tôi không biết nơi để tìm. –