[英]How to limit process memory utilization on Linux (e.g. using BSD::Resource)
[英]Linux: create mmap()able virtual file (e.g. SPI memory)
我有一個 char 設備,可以訪問外部 SPI memory,我想 mmap() 外部 memory 以便我可以從程序訪問它,就好像它是正常的 ZCD69B4957F06CD818D7B3D691
如果我在 char 設備文件上使用通常的 mmap() 頁面重新映射實現,它只會讓我看到設備 memory 區域,而不是它的虛擬 char 文件...
有什么訣竅可以讓我這樣做嗎?
TIA
如果字符設備驅動程序提供了mmap
實現,它就可以工作。 它不這樣做可能有一個很好的理由:
Memory 訪問指令在總線上創建 memory 事務。 SPI memory 不能以這種方式尋址(盡管 SPI controller 可能使用內存映射 I/O,這是針對其自己的寄存器級接口,而不是 ZCD69B4957F06CD828D917BF3D61980DE 內容) 我想你可以用 memory 總線接口構建一個 SPI memory controller,但你會失去 SPI 標准的設備獨立性。
模擬 memory 區域是可能的(抓取 memory 的頁面,將其標記為不可訪問,並處理訪問沖突(SIGBUS 和 SIGSEGV),但這將非常低效。有時你會發現虛擬機這樣做,但性能非常壞的。
聽起來您需要某種驅動程序來將 memory 區域訪問轉換為通過面向字符的接口發送的命令。 這可能是一個非常簡單的塊設備驅動程序。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.