- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Linux2.6.14 下已经有DM9000的驱动源代码,我们要做的工作是使内核支持它,移植的关键是接口与中断。其它工作就完全交给源代码了。
移植工作包括三件事情:
1、?要让系统能检测到2、?初始化3、?让驱动找到收发的接口,也就是中断DM9000 默认I/0 基地址为300H。CMD 引脚用于设置COMMAND 模式,CMD为高时,选择数据端口。CMD为低时,选地址端口。数据端口和地址端口的地址码由下式决定:
DM9000地址端口=高位片选地址+300 DM9000数据端口=高位片选地址+300H+4H
EXPORT_SYMBOL(s3c_device_dm9000) 声明。被mach-smdk2410.c调用。
static struct resource s3c_dm9000_resource[] = {
[0] = {
.start = S3C2410_CS1+0x300,
.end?? = S3C2410_CS1+0x300+0x3,
.flags = IORESOURCE_MEM,
},
[1]={
.start = S3C2410_CS1+0x300+0x4,
.end = S3C2410_CS1+0x300+0x4+0x7c,
.flags = IORESOURCE_MEM,
},
[2] = {
.start = IRQ_EINT0,
.end?? = IRQ_EINT0,
.flags = IORESOURCE_IRQ,
}
};
static struct dm9000_plat_data s3c_device_dm9000_platdata = {
.flags= DM9000_PLATF_16BITONLY,
};
struct platform_device s3c_device_dm9000 = {
.name= dm9000,
.id= -1,
.num_resources= ARRAY_SIZE(s3c_dm9000_resource),
.resource= s3c_dm9000_resource,
.dev= {
.platform_data = s3c_device_dm9000_platdata,
}
};
EXPORT_SYMBOL(s3c_device_dm9000);??????
二:在devs.h 中加入以下这句声明:
extern struct platform_device s3c_device_dm9000; ?
三:打开arch/arm/mach-s3c2410/mach-smdk2410.c将dm9000加入到要初始化的设备链表里去,内核启动时将会检测设备并加载驱动static struct platform_device *smdk2410_devices[] __initdata = {
?????? s3c_device_usb,
?????? s3c_device_lcd,
?????? s3c_device_wdt,
?????? s3c_device_i2c,
?????? s3c_device_iis,
?????? s3c_device_dm9000, //add here
};
四:在驱动源代码里,加入:使能EINT0中断,设备中断类型,总线带宽和等待时间控制,BANKCON1总线控制。
所有要用到的寄存器所在的物理地址以及各位参数的意义参考S3C2410用户手册。
打开linux-2.6.14/driver/net/dm9000.c
在开头部分加入CPU中断寄存器的地址定义:
#define BWSCON (0 //总线带宽和等待时间控制寄存器
#define BANKCON1 (0 // BANKCON1总线控制
#define EXTINT0 (0 //EINT0号中断控制
#define INTMSK (0x4A000008) //中断使能控制
#define INTMOD (0x4A000004) //中断类型控制
找到dm9000_probe() 函数,
该函数在模块加载时被调用。作用是探测设备,并记录设备型号和相关信息,在
该函数中要设置相关的中断。把控制字写入相关寄存器。
在函数开始部分加入以下内容:
static void *bwscon, *bankcon1, *extint0, *intmsk, *intmod;
bwscon=ioremap_nocache(BWSCON, 4);
bankcon1=ioremap_nocache(BANKCON1, 4);
ettint0=ioremap_nocache(EXTINT0, 4);
您可能关注的文档
- 《LG产电PLC XGI系列用户手册中文高清版》.pdf
- 《LG产电PLC XGK系列网络系统用户手册中文高清版》.pdf
- 《LG产电PLC XGT AD模块用户手册中文高清版》.pdf
- 《LG产电PLC XGT CN系列用户手册中文高清版》.pdf
- 《LG产电PLC XGT 通讯 用户手册中文高清版》.pdf
- 《LG产电变频器IP5A系列用户手册中文高清版》.pdf
- 《LG产电变频器SV IGX系列用户手册中文高清版》.pdf
- 《LG产电触摸屏 PMU830 730 530 330 PMU编辑器 用户手册中文高清版 》.pdf
- 《lg刷机》.docx
- 《LG厂房施工组织设计》.doc
- 2025年及未来5年顶篷项目市场数据调查、监测研究报告.docx
- 2025年半导体材料技术创新路径研究报告.docx
- 《2025年绿色纺织机械生产模式创新调研报告》.docx
- 2025年跨境电商行业供应链可持续性报告.docx
- 安徽省农村信用社联合社金融科技管理人员及专业岗招聘备考题库及答案解析(名师系列).docx
- 《2025年香薰护理行业洞察:家居香薰消费增长与场景化产品创新方向》.docx
- 2025年在线教育课程研发创新与用户留存率提升品牌建设策略.docx
- 2025年成人健身器材租赁模式创新与市场需求预测报告.docx
- 《2025年AI医疗诊断基层医院医疗事故预防研究》.docx
- 2025年菲律宾语培训机构教学评估体系报告.docx
最近下载
- (高清版)G-B∕T 36992-2019 手动牙间刷.pdf VIP
- 《一只鸟仔》(课件)人音版音乐三年级下册.ppt VIP
- 视觉传达设计专业介绍.pptx VIP
- JB_T 13649.1-2019 高速刀柄与机床主轴接口 第1部分:带有法兰接触面的空心圆锥(HSK)接口技术规范.docx VIP
- J B-T 11342-2013 小型电机定子端部整形机.pdf VIP
- 2023年视觉传达设计专业介绍模板.pptx VIP
- 消防安全评估合同范本6篇.docx VIP
- ags8101_大华视频监控平台接入网关服务器_使用说明书_v1 0 0_20130924.pdf VIP
- SAE AMS2774G-2020 镍及钴合金零件的热处理 Heat Treatment Nickel Alloy and Cobalt Alloy Parts.pdf
- (可直接使用)中国土壤分布.ppt VIP
原创力文档


文档评论(0)