我有两个驱动程序代码,在前者中,函数request_mem_region
在设备probe
期间被调用,后者在设备open
期间被调用,当然你必须考虑到请求函数位置调用release_mem_regione
函数,但我想知道这两个选项之间的优缺点。有什么建议吗?
答案 0 :(得分:0)
这取决于该地区的使用方式。如果只在设备打开时才需要它,那么将它打开是有意义的。如果设备在后台持续工作,即使它未打开,也需要在探测中进行映射。基本上,请求它满足您设备需求所需的最小范围。
将它置于探测器中,即使只在打开时需要它也不会总是引起问题,但它确实意味着你正在占用你不需要的内存/地址空间。 (编辑:我忘了,这不执行映射只是保留它,所以这不是一个真正的问题。)
将其置于打开状态会导致更复杂 - 例如,您需要确保它只被映射一次,即使设备可以同时由两个不同的进程打开。不是一个难以解决的问题,而是在学习编写模块和使用示例代码时可以忽略的事情。