庆祝贴:epson72v17 usb芯片在linux下驱动移植完毕

PCMCIA转USB host 和 串口芯片OXCFU950 牛津半导体(Oxford Semiconductor)发布了型号为OXCFU950的全新控制器。该款产品集16位PC卡主机接口、USB 2.0全速主机控制器和UART为一身,为下一代高速PC和闪存卡在3G手机、移动TV和无线网络产品中的应用提供了更多的灵活性。这款低成本高效能的芯片同时支持PCMCIA revision 8.0和Compact Flash revision 3.0规范,可为笔记 阅读详情

虽然被Epson的破代码小折腾了一下,但是结果还是美好的,呵呵,至此epson 72v17芯片host ,device驱动均完毕。
host
能顺利挂接U盘,鼠标,键盘等设备。
device
能顺利将板子上的存储资源和电脑相联系。

72v17移植注意点:

1.     这款芯片和cpu的连接有三种方式,分别为8位,16位的XWRH/L,16位的XBEH/L模式,这要看具体cpu的接口,在我们4020的1.5评估版中用的是16位的XBEH/L模式,这和epson的代码中的默认配置是不同的,所以我们在代码中改相应的寄存器,具体在72V17hcd(72v17udc)文件的initlsi函数中:S_R_REGS8(rc_ChipConfig - 1) = CPU_Endian | BE_MODE;

2.     还有一点也是和硬件相关的,就是这款芯片的时钟供给,代码默认为24M的时钟,但是我们的硬件使用的是12M的时钟,因此相应的代码也需要改动,S_R_REGS8(rcC_ClkSelect - 1) = CLKFreq_12M;

3.     72v17的芯片设计有点古怪,或者说设计时考虑周到,它配置一些关键的寄存器都需要解保护,然后对其配置,然后在写保护,比如cpuconfig这个寄存器:

S_R_REGS8(rcC_ModeProtect) = ModeProtectClear;

     S_R_REGS8(rc_ChipConfig - 1) = CPU_Endian | BE_MODE;

     S_R_REGS8(rcC_ModeProtect) = ModeProtectSet;

而且很奇怪的是,chipconfig这个寄存器在写保护之后是没法读出来值了,注意。

4.     在initlsi函数中,

S_R_REGS8(rcC_ChipReset) = AllReset;

之后一定要加这个dummy read,无论是host驱动还是device驱动

    /* dummy read */

    chgendian = S_R_REGS8(rcC_CPU_ChgEndian);

5.gadget文件夹下的Kconfig要将config USB_GADGET_S1R72V17中的depends on ARCH_NS9750 去掉,不然在make menuconfig中会不可见。


使用注意点:
1.host ,device驱动不能同时选择。
2.
在使用device驱动时,需输入命令:
insmod g_file_storage.ko  file=/dev/mmcblk0 stall=0 removable=1
;
其中insmod是加载模块命令;g_file_storage.ko模块将将会在下一版随usb驱动一起发布;file后面跟的是你想要和电脑连接的设备,比如我在这里就是mmc卡,你也可以选择其他存储介质;stall=0 removable=1照写即可。

 

配置vertex-5 XC5VLX220T FPGA, 实现CPU到ax88180和S1R72V17 USB芯片逻辑电路的连通 FPGA的配置工作主要有两部分,连接CPU与AX88180,和连接CPU与S1R72V17。 连接CPU与AX88180CPU与AX88180的连接可以参考AX88180 datasheet上的附录A,采用32bit数据线连接方式: 主要是32位数据线与CPU DATA线相连,地址线与地址线相连。同样的,分别连接片选,读,写使能,中断和复位线。 连接CPU与S1R72V17同样的, 阅读详情

相关推荐

minigui的价格揭秘

最近一直在使用minigui,一时兴起向飞漫软件的市场套了份minigui的价格表,放在下面,也让有意使用minigui做商用开发的朋友心中有个数:1.MiniGUI开发时授权和服务的价格购买 MiniGUI-VAR 产品,您将获得相对应版本的 MiniGUI 开发时授权。其价格如表1所示: 表 1 MiniGUI开发时授权费用价格(人民币元)

技术点亮人生,成功通向卓越 4883

USB接口芯片汇总(转)

USB接口芯片汇总(转)   2011-05-05 13:33:59|  分类: 电脑技术|字号 订阅 通用串行总线USB是连接计算机与具有USB接口的多种外设之间通信的串行总线。现在可供选择的具有 USB接口功能的芯片很多,主要分为3大类。 第1类是需要外接微处理器的USB芯片。例如朗讯的USS820/825、松下的USBN9602/ USBN

linuxheik的专栏 8030

基于arm架构的pppoe的终极移植笔记

也是参考了很多文章,其实当初考虑这个课题不是很复杂,因为pppoe是在操作系统上层的,可以说和处理器平台都没有关系的,因此无论是arm7(sep4020),还是arm9,都是一样的,而且已经看到网上有很多人顺利的在2440之类的arm9处理器上移植,所以后面出现的意外着实把我郁闷了一下。 先讲正确的整个移植过程:整个pppoe的移植主要分成3个部分,内核,pppd,pppoe 

技术点亮人生,成功通向卓越 4328

关于udelay(); mdelay(); ndelay(); msleep();

这几个函数都是内核的延时函数:1.udelay(); mdelay(); ndelay();实现的原理本质上都是忙等待,ndelay和mdelay都是通过udelay衍生出来的,我们使用这些函数的实现往往会碰到编译器的警告implicit declaration of function udelay,这往往是由于头文件的使用不当造成的。在include/asm-???/delay.h中

技术点亮人生,成功通向卓越 4万+

minigui+tslib编译全过程(1)

 主要文档都是fp完成的,我只是在他的基础上修改了一些文章中的小错误。第一部分:minigui-1.3.3移植到SEP4020EVB详解在这里只讲怎样将minigui-1.3.3移植到开发板EVB-SEP4020上去,在pc上安装minigui-1.3.3不用讲,这里我用到的交叉编译器是arm-linux-gcc3.4.1MiniGUI 的编译需要一些库文件,缺省我们的 gcc 基本上

技术点亮人生,成功通向卓越 2223

基于Dify与DeepSeek构建中医智能问答工作流:从知识库到精准处方

本文详细介绍了如何利用Dify与DeepSeek构建中医智能问答工作流,实现从知识库构建到精准处方的全流程。通过模型编排和知识检索技术,系统能够结合中医辨证思维与AI推理能力,为基层医师、学生和爱好者提供结构化诊疗建议。文章重点分享了知识库选材、症状标准化处理、智能检索与辨证推理等核心环节的实战经验。

weixin_29062255的博客 252

linux的reboot实现

今天有客户问要在linux下实现重启,以前一直没有仔细思考过这个问题,阿虚今天下午查了一下是/linux/include/asm-arm/arch-sep4020中的system.h中的arch_reset函数实现的,我看了一下三星2410的代码的确如此,(我当初为我们这款芯片移植linux内核的时候属于朦胧阶段,啥都很模糊),其实代码很简单就是在这个函数里启动watchdog,并给一个数字,让w

技术点亮人生,成功通向卓越 7524

从零构建智能监控系统:ZLMediaKit与SpringBoot的RTSP流处理实战

本文详细介绍了如何从零构建智能监控系统,结合ZLMediaKit与SpringBoot实现RTSP流处理。通过多协议支持、高性能架构设计及工业级部署优化,解决传统监控方案的兼容性差、延迟高等问题,适用于物联网和智能安防领域。

weixin_29002209的博客 370

关linux的RTC驱动

Linux的RTC驱动相对还是比较简单的,可以将它作为一个普通的字符型设备,或者一个misc设备,也可以是一个平台设备,这都没有关系,主要还是对rtc_ops这个文件操作结构体中的成员填充,这里主要涉及到两个方面比较重要: 1. 在Linux中有硬件时钟与系统时钟等两种时钟。硬件时钟是指主机板上的时钟设备,也就是通常可在BIOS画面设定的时钟。系统时钟则是指kernel中的时钟。当Linu

技术点亮人生,成功通向卓越 6199

从零开始:如何用PSINS工具箱构建你的第一个IMU误差模型

本文详细介绍了如何使用严恭敏教授开发的PSINS工具箱构建IMU误差模型,涵盖从基础参数设置到高级误差建模的全过程。通过imuerrset函数配置陀螺零偏、随机游走等核心参数,并结合实战案例展示消费级MEMS器件的误差建模方法,帮助用户提升惯性导航系统的精度与可靠性。

weixin_29284885的博客 322

Python画好看的雷达图,全网开源代码最好看的

【代码】Python画好看的雷达图,全网开源代码最好看的。

大模型天花板 2282

linux中断的unbalanced问题

首先摘一段网上的见解:The enable_irq unbalanced messages are harmless. It just means that when the driver called disable_irq there were no devices already using the irq, and as such it was already disabled, so

技术点亮人生,成功通向卓越 4618

l0phtcrack 7(爆破管理员密码)使用教程

l0phtcrack7简称lc7,是爆破计算机管理员密码的软件,早期是网络安全管理员用来检测系统用户是否使用了不安全的密码,后被黑客用于用户口令破解 功能:该工具支持远程破解,理论上能破解所有密码,但对复杂度比较高的密码,破解时间很长 使用前提:1.登录了需要破解的计算机 2.知道需要破解的计算机的一个管理员的账户,密码 ** 也许你会疑惑,我都知道了一个管理员账户密码了,还要另外的管理员密码...

Xiongcanne的博客 2万+

嵌入式linux的中断函数实现和分析

分析linux中断中常用的两个中断函数:Disable_irq(int irq)Enable_irq(int irq) 第一步:●对于关中断跟踪代码到arch/arm/kernel/irq.cvoid disable_irq(unsigned int irq){       struct irqdesc *desc = irq_desc + irq;disa

技术点亮人生,成功通向卓越 4461

python基础语法与数据结构

本文摘要: Python基础语法包含输入输出、函数、变量、数据类型及运算符等内容。输入函数input()获取键盘输入并以字符串存储,输出函数print()可格式化输出数据。函数通过def定义,可带参数和返回值,提高代码复用性。变量无需声明类型,可动态赋值。数据类型包括数字、字符串、布尔及复合类型,可通过type()查看。运算符包含算术、赋值等类型,其中复合赋值运算符如+=可简化运算。类型转换函数如int()、str()等可实现显式类型转换。这些基础语法构成Python编程的核心要素。

MM602388的博客 434

华为OD机试双机位C卷-流浪地球(Py/Java/C/C++/Js/Go)

华为OD机试双机位C卷【流浪地球】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,并提供在线OJ模拟做题。华为OD机试真题【流浪地球】。

qq_45776114的博客 3141

minigui+tslib编译全过程(2)

 第二部分:tslib-1.3.3移植到SEP4020  上次移植minigui,这次继续上次的移植,往4020上移植tslib 。大概方法是通过 tslib 来构建 MiniGUI 的输入引擎。tslib 是一个用于触摸屏设备的函数库。通过这样一个函数库,可以将编程者从繁琐的数据处理中解脱出来。为什么会出现这样的情况呢?因为触摸屏的坐标和液晶显示屏之间的坐标并不是一一对应的,所以,要让从

技术点亮人生,成功通向卓越 2813

【Linux0.11代码分析】之 系列文章链接汇总(全)

【Linux0.11代码分析】00 之 系列文章链接汇总(全)

|~~~热爱生活、努力学习的小伙汁~~~| 1449

Linux项目组编程规范

前言:本手册以林锐博士编写的《高质量 C++/C 编程指南》内容为参考,根据项目组成员的经验总结和共同协定,稍作简洁和修改。本规范手册分成两部分:第一部分:以条款的形式列出了项目组编程的规则和建议,规则是指项目组成员必须要遵守的编程规范,建议是指推荐使用的编程风格。第二部分:是对第一部分规则和建议的详细说明。建议先仔细阅读第二部分,在已经了解了每条规则和建议的真正意义以及为什么要遵

技术点亮人生,成功通向卓越 2312

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Linux下内存释放问题相关知识续——手动释放内存的伪命题

使用Linux会发现一个很奇怪的问题:使用一段时间后(特别是经过了文件的拷贝等操作),用top指令发现内存基本上被占用了,而且Linux不会释放,这个问题的确困扰了我们,我们就开始寻找手动释放内存的方法,的确也找到了,也就产生了我的上一篇博客。上网搜索也发现很多人存在着这个问题,但是经过对网上结果和我自己理解的综合分析得出了一个结论:Linux手动释放内存是一个彻彻底底的伪命题。 首先讲解

技术点亮人生,成功通向卓越 2282

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

minigui+tslib编译全过程(3)

第三部分:tslib和minigui的链接完成了对 tslib 的交叉编译之后,下一步的事情就是改写 MiniGUI 的 IAL 引擎。MiniGUI自带的 IAL 输入引擎中,有一个叫做 dummy.c。为了尽可能简单,在这里为简单起见就在其基础上稍作修改,使之符合我们的要求即可。#include #include #include #include #include #include "c

技术点亮人生,成功通向卓越 2135

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

王道QT,让linux的开发和在windows下一样方便

GUI是在嵌入式设备中是非常重要的一环,GUI的好坏直接影响到了用户的体验。因此一个优秀的gui是非常重要的,为此我前阶段对gui稍微做了调研。 目前通用的gui有:gtk系列:在linux下鼎鼎大名的gnome桌面就是基于gtk库设计的,当然gnome是gtk+Xwindow的方式,在嵌入式设备中的选择有gtk+DirectFB。 Qt系列:桌面应用有KDE,关于kde和gn

技术点亮人生,成功通向卓越 2066

为你的虚拟机添加第二个硬盘!

用虚拟机经常碰到这种烦恼,刚开始设定硬盘空间的时候设小了,用了一段时间硬盘空间就不够用了,就像我今天装完了qt sdk后发现我的虚拟机可用空间是0,下面就给出如何增大你的硬盘空间的方法(以下方法的环境均为fedora7,虚拟机版本为6.0.2):1.       edit你的虚拟机配置,add一个新的硬盘,具体操作为在虚拟机主界面上点击edit virtual machine settings

技术点亮人生,成功通向卓越 1722

linux定时器的使用以及键盘定时器解析

1.      首先定义一个定时器的结构体:static struct timer_list key_timer; 2.      在驱动的初始化中对定时器进行初始化   setup_timer(&key_timer,key_timer_handler,0);其中key_timer是我们刚刚定义的定时器结构体,key_timer_handler是我们的定时器处理函数; 3.    

技术点亮人生,成功通向卓越 1636

理解 Linux 动态库加载:LD_LIBRARY_PATH

flyfish

二分掌柜的 386
上一篇: linux的reboot实现
下一篇: 为你的虚拟机添加第二个硬盘!
myleeming
博客等级 码龄18年 75粉丝 47原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值