首页 > 编程知识 正文

boot.properties is not valid,Linux驱动ioremap

时间:2023-05-03 19:24:52 阅读:18564 作者:3877

从源代码来看,devm_ioremap_resource很多

if (! DVM_request_mem_region(dev,res-start,size,name ) ) dev_err ) dev,' can ' trequestregionforresource rce retururce returev 从驱动程序代码中可以看到,您有时间使用devm_ioremap_resource,也有时间直接使用devm_ioremap

# defined EVM _ request _ mem _ region (dev,start,n,name ) _devm_request_region ) dev,iomem_resource (name 结构资源* parent,resource _ size结构资源* RES; dr=de vres _ alloc (devm _ region _ release,sizeof ) structregion_devres ),GFP_KERNEL ); if (! dr )返回空值; dr-parent=parent; 灾难恢复-开始=开始; dr-n=n; RES=__request_region(parent,start,n,name,0 ); if(RES ) deVRES_add ) dev,dr; elsedevres_free(dr; 返回RES; } export _ symbol (_ devm _ request _ region ); 总之,devm_ioremap是直接映射,devm_ioremap_resource先申请,后映射。

例如

cat /proc/iomem

40300000-5 fffffff :/SOC/qcom,pcie@1c08000

40300000-405 ffff : PCI bus 0001336001

40300000-40301 fff :000133600013360013360013360000.0

40302000-403020 ff :0001336001336001336001336000.0

40302100-403021 ff :0001336001336001336001336000.0

40600000-407 ffff : PCI bus 0001336001

40800000-40800 fff :000133600000:00033600336000.0

这些是已经申请并映射的设备资源。 使用时直接进行devm_ioremap即可。

但是,如果是直接devm_ioremap,应该也可以,但是如果没有devm_request_mem_region,/proc/iomem应该查不到。 这个没有做实验。

但是,如果已经申请了设备资源,则调用devm_request_mem_region将出现以下错误

can't request region for resource .

因为这个设备资源已经申请完毕了。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。