当前位置:首页 > 嵌入式 > 嵌入式硬件
[导读]摘要:USB设备应用已经十分广泛。本文通过介绍S3C4510B、SL811HS芯片的部分特性,给出在uClinux2.4.x+S3C4510B平台上扩展USB-HOST的方法和详细步骤。 关键词:uClinux2.4.

摘要:USB设备应用已经十分广泛。本文通过介绍S3C4510B、SL811HS芯片的部分特性,给出在uClinux2.4.x+S3C4510B平台上扩展USB-HOST的方法和详细步骤。 关键词:uClinux2.4.xS3C4510B USB-HOST SL811HS 引言 今天,USB设备已经进入我们工作、生活的方方面面,它给我们带来了许多便利。因此,带有USB功能已经成为现在许多系统的一个基本要求。三星公司针对 ARM7开发的S3C4510B是目前业界使用非常频繁的一款芯片。它的强大功能使其成为基于诸多传统的51等系列单片机开发思想的终结者。通过对它移植 uClinux操作系统,犹如为虎添翼。稳定的Linux系统和强大的S3C4510B硬件紧密结合,形成了一个强大的开发平台,带来了崭新的开发理念。本文采用的是深圳英蓓特公司开发的EMBEST S3C4510B开发板,介绍在这样一个强大的平台上扩展基于CYPRESS公司开发的SL811HS(HOST)的USB-HOST;展示基于这个平台的区别于传统系统开发的崭新思想,同时进一步丰富该系统的功能。 1 扩展板硬件电路设计 英蓓特公司基于uClinux2.4.x+S3C4510B的开发板实现时,把程序放在由ROMCON0控制基地址的ROM/ARAM/FLASH组0;系统起动时,将放在该组的程序拷贝到SDRAM0组。本文将 SL811HS的地址配到ROM/ARAM/Flash组1,由ROMCON1控制它的基地址,使用外部中断0接收SL811HS的中断信号。由于 SL811HS没有将数据和地址总线分开,D0~D7将分时复用。这是由SL811HS的A0线控制;A0为低时,D0~D7上传输的是地址信息;A0为高时,D0~D7上传输的是数据信息。由此,用S3C4510B的ADDR10来控制A0,从而将SL811HS的数据和内部地址分离。USB-HOST 扩展板原理简图如图1所示。 2 内核修改 要把SL811HS配置到ROMCON1控制的Bank1,主要应用对以下两个文件作改动。 ①…armnommusnds100.h 将Line216的 #define DSR1 (0<<2) 改为: #define DSR1 (1<<2) 这将把Bank1定义为8位的字节方式。 将Line 249的 #define rROMCON1 0x0 改为: #define ROM_BASE1_R ((0x00200000>>16)<<10) #define ROM_NEXT1_R (0x00300000>>16)<<20) #definerROMCON1_R(ROM_NEXT1_R|ROM_BASE1_R|tACC0|tPA0|PMC0) #define rROMCON0_B (ROM_NEXT1_B|ROM_BASE1_tACC0|tPA0|PMC0) 这里ROM_x_R是指在系统复位后的值,也是系统在启动时的值。而ROM_x_B指的是系统在启动后,要将程序拷贝到SDRAM中运行,所以原来的 FLASH-BANK0就不能再使用0地址,而应该由SDRAM0使用0地址。这个ROM_x_B就是当程序在SDRAM中运行时相应Flash组的新地址。 ②….s 将line 162的 ldr r1,=0x200000 改为ldr r1,=0x300000 这是告诉系统,要将多大空间的内容从Flash存储中拷贝到SDRAM中去。 将line 259的

.word rROMCON1 改为.word rROMCON1_R 将line 272的 .word rROMCON1 改为 .word rROMCON1_B 这样就对rROMCON1在reset和boot两种不同模式下的配置值用不同的寄存器保存了。但是程序在运行的时候并不由这个值决定,而由 rROMCON1决定的,所以程序必须在适当的时候将这两种模式下的其中一个值赋给rROMCON1,以供系统使用。 3 硬件电路检测 经过以上两步,就将SL811HS配置到由rROMCON1控制的ROM/ARAM/Flash组1了,其数据端口地址为0x1200400,地址端口地址为0x1200000。中断为外部中断0。可以采用下面的小程序来测试能否对SL811HS的内部寄存器进行正确的读写操作。 /***filename:test811.c****/ int main(void){ unsigned char *addr,*data,I,j,x,val; int k,m; addr=0x1200000; data=0x1200400; for(i=0x10;i<0x100;i++) {mywriteb(i,addr); mywriteb(i,data);} printf("test now!"); for(i=0x10;i<0x100;i++) {mywriteb(i,addr); val=myreadb(data); if(val!=i) printf("error in test address %d",i);} } char myreadb(int addr) { unsigned char *addr1; unsigned char data; addr1=addr; data=*addr1; return(data);} void mywrited(unsigned char data,int addr) { unsigned char*addr1; addr1=addr; *addr=data;} 把该程序作为一个应用程序,与内核一起整体编译。具体方法可以参考文件/documentation/adding-user-apps- howto.txt; 内核编译通过后,下载到开发板,然后启动系统,上位机利用超级终端监测。系统启动后,运行该应用程序。如果没有错误,则表明硬件连接正确了。 4 驱动移植 USB-HOST(SL811HS)的驱动程序不需要单独编写,Linux内核中有现成的代码可以借鉴,也可以到CYPRESS网站去下载。但是这个驱动程序是针对sal100设计的,所以必须作相应改动才能在我们的S3C4510B系统上使用。 这里的改动主要是对文件hc_s1811.c的修改。该文件位于…/driver/usb/ 首先要修改硬件地址,因为SL811HS的数据和地址端口地址分别为0x1200400和0x1200000。修改line 106、107的 static int base_addr=0xd3800000; static int data_reg_addr=0xd3810000; 为 static int base_addr=0x1200000; static int data_reg_addr=0x1200400; 修改line 130、131的 #define SL811HC_IOPORT0 0xa000000 为 #define SL811HC_IOPORT0 0x1200000 #define SL811HC_IODATAPORT0 0x120040 由于将SL811HS的中断分配为中断0,所以应该修改line 108的 static int irq=34; 为 static int irq=0; 修改line 139的 #define Sl811HC_IRQ0 27 为 #define SL811HC_IRQ0 0 并且需要重新编写函数void init_irq(void) 为void init_irq(void) { INT_ENABLE(irq); IntPend=0x1FFFFF; IntMode=INT_MODE_IRQ; } 然后再开始内核编译。在内核配置的时候,选上SL811HS项,将编译成功的内核烧到板子上,然后启动。用上位机的超级终端监测,可以看见系统已经为 SL811HS分配了地址和中断等资源。至此USB-HOST的扩展就完成了。 注:USB驱动程序源见网站www.dpj.com.cn。 结语 USB设备的广泛应用使许多系统都将考虑到对它的扩展,以满足广大客户的需求。本文介绍了在英蓓特公司的EMBEST3SC4510B开发板上扩展 SL811HS(host)的详细步骤,并给出一个自编的测试程序,为硬件的检测提供了一个简单而有力的工具,为进一步开发移植USB设备驱动程序提供了硬件平台。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭