[ZLG-ARM] linux

[复制链接]
2859|6
 楼主| new_arm 发表于 2007-5-6 10:23 | 显示全部楼层 |阅读模式
周工:<br />我买了你们的smartarm2200,现在在做linux部分的实验。<br />我就对adc的实验其中&nbsp;adc_open函数的:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;outl(inl(PINSEL1)&nbsp;|&nbsp;(0x01&nbsp;&lt&lt&nbsp;(temp&nbsp;+&nbsp;22)),&nbsp;PINSEL1);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;filp-&gtprivate_data&nbsp;=&nbsp;(void&nbsp;*)(num);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;local_irq_restore(flag);<br /><br />其中filp-&gtprivate_data&nbsp;这么这样赋值呢?其中(void&nbsp;*)(num)是指向那里呢<br /><br />还有:<br />adc_read函数中:temp&nbsp;=&nbsp;(int)filp-&gtprivate_data;<br />怎么temp是把指针的值赋给它呢?<br /><br />这问题已经困扰很久了,盼周工解析。
 楼主| new_arm 发表于 2007-5-7 09:29 | 显示全部楼层

re

怎么没人回?
 楼主| new_arm 发表于 2007-5-8 09:59 | 显示全部楼层

re

急a!!!!!!!!!!!!!!
andante 发表于 2007-5-8 15:05 | 显示全部楼层

个人理解

&nbsp;adc_open函数的:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;outl(inl(PINSEL1)&nbsp;|&nbsp;(0x01&nbsp;&lt&lt&nbsp;(temp&nbsp;+&nbsp;22)),&nbsp;PINSEL1);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;filp-&gtprivate_data&nbsp;=&nbsp;(void&nbsp;*)(num);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;local_irq_restore(flag);<br /><br />1)其中filp-&gtprivate_data&nbsp;这么这样赋值呢?其中(void&nbsp;*)(num)是指向那里呢<br />&nbsp;&nbsp;filp-&gtprivate_data&nbsp;=&nbsp;(void&nbsp;*)(num);&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;//&nbsp;(void&nbsp;*)应为强制类型转换,类型为void&nbsp;*。<br />&nbsp;&nbsp;//&nbsp;filp-&gtprivate_data&nbsp;相关情况,可参考《Linux设备驱动程序设计》第二版。<br /><br />2)还有:<br />adc_read函数中:temp&nbsp;=&nbsp;(int)filp-&gtprivate_data;<br />怎么temp是把指针的值赋给它呢?<br />&nbsp;&nbsp;//&nbsp;outl(inl(PINSEL1)&nbsp;|&nbsp;(0x01&nbsp;&lt&lt&nbsp;(temp&nbsp;+&nbsp;22)),&nbsp;PINSEL1);<br />&nbsp;&nbsp;//&nbsp;这里需用到fil-&gtprivate_data&nbsp;(为啥,偶就不知道了)。<br />&nbsp;&nbsp;//&nbsp;所以使用临时变量temp。并temp&nbsp;=&nbsp;(int)filp-&gtprivate_data;
 楼主| new_arm 发表于 2007-5-8 15:39 | 显示全部楼层

re

终于有热心人回答了。谢谢!<br /><br />但是<br />adc_read函数中:temp&nbsp;=&nbsp;(int)filp-&gtprivate_data;<br />怎么temp是把指针的值赋给它呢?“filp-&gtprivate_data”是地址阿。不是变量值。然后就用temp的值去控制i/o?<br /><br /><br />老周的技术支持呢?<br />
andante 发表于 2007-5-8 16:08 | 显示全部楼层

参考《Linux设备驱动程序设计》第二版

adc_read函数中:temp&nbsp;=&nbsp;(int)filp-&gtprivate_data;<br /><br />//&nbsp;(int)flip-&gtprivate_data&nbsp;&nbsp;--&gt&nbsp;&nbsp;temp<br />//&nbsp;filp-&gtprivate_data的,偶也不大清楚了,还是参考下《Linux设备驱动程序设计》第二版,然后自行理解。<br />
您需要登录后才可以回帖 登录 | 注册

本版积分规则

8

主题

16

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部