【mmap】【大内存映射申请】【dma_free_coheren】【modprobe -r dev报错】

shiguojie19892 2021-06-17 21:27:21

请问老师,在学习mmap中,把内存的申请(module_init中)、释放(module_exit中)改用【dma_alloc_coherent】和【dma_free_coheren】

卸载驱动时,会报错:__arm_dma_free.constprop.2+0xf0/0x158

代码中只有入口和出口,没有关联其他代码。

struct mem_addr{

unsigned int v_adr;

dma_addr_t p_adr;

};



struct mem_addr rxbuf;

struct mem_addr txbuf;

//入口函数

static int __init fsfpgain_init(void)

{

int ret = 0;

rxbuf.v_adr = dma_alloc_coherent(NULL,DMAC_MAX_TRF_SIZE,(dma_addr_t*)&rxbuf.p_adr,GFP_KERNEL|GFP_DMA);

txbuf.v_adr = dma_alloc_coherent(NULL,DMAC_MAX_TRF_SIZE,(dma_addr_t*)&txbuf.p_adr,GFP_KERNEL|GFP_DMA);

return ret;

}

出口函数

static void __exit fsfpgain_exit(void)

{

dma_free_coherent(NULL,DMAC_MAX_TRF_SIZE,(void*)&rxbuf.v_adr, rxbuf.p_adr);

dma_free_coherent(NULL,DMAC_MAX_TRF_SIZE,(void*)&txbuf.v_adr, txbuf.p_adr);

printk("fsfpgain_exit\r\n");

}

 

...全文
3134 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
CSDN-Ada助手 2023-01-10
  • 打赏
  • 举报
回复
您可以前往 CSDN问答-非IT技术 发布问题, 以便更快地解决您的疑问

21,597

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 驱动开发/核心开发
社区管理员
  • 驱动开发/核心开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧