我有一些数据存储在闪存中,我需要使用 C 指针访问这些数据才能使非 Linux 图形驱动程序工作(我认为这个要求与 DMA 相关,不确定)。调用 read 有效,但我不想在 FLASH 和非 Linux 驱动程序之间有中间 RAM 缓冲区。
然而,仅仅创建一个指针并将我想要的地址存储在它上面就会让 Linux 发出一个关于我的无效访问的异常。
void *ptr = 0xdeadbeef;
int a = *ptr; // invalid access!
我在这里想念什么?有人可以向我指出一种材料来让我清楚地了解这些概念吗?
我正在阅读有关mmap的信息,但我不确定这是否是我需要的。