查看: 2695|回复: 9

[已解决] 新人继续请问关于USB stack的问题(已解决)

[复制链接]

该用户从未签到

6

主题

100

帖子

0

中级会员

Rank: 3Rank: 3

积分
492
最后登录
1970-1-1
发表于 2014-9-22 15:54:55 | 显示全部楼层 |阅读模式
本帖最后由 FSL_TICS_ZJJ 于 2014-10-11 09:05 编辑

准备利用k60和spi flash 做一个U盘,现在所有和USB有关的功能都没有实现,感觉是自己了解太少,所以继续求助。
参考的例程是USB stack 4.1.1里面的MSD例程,freescale\Freescale USB Stack v4.1.1\Source\Device\app\msd。我也看了附带的手册,里面有说怎么样新建应用的步骤,可是还是觉得没看太懂,甚至觉得完全不知道这个例程该怎么移植。因此请教一下几个问题:
1、USB stack 提供的是应用层以下的驱动,那么U盘所要实现的功能是不是就属于应用层的内容?需要开发者自己来完成?
2、我在参考上述的MSD例程时,觉得完全没有移植的入口,就是看着手册也觉得没有头绪,完全不像手册说得可以很简单的移植,是不是因为对于USB MSD的整体工作原理了解太少了?
现在拿着MSD例程烧写,电脑提示未知设备,接下来该怎么办就完全不知道了。总之,目前就是毫无头绪,不知道开发步骤,不知道移植时必需和不必需的文件,不知道怎样调试。
希望各位能给些建议,比如开发步骤,入门资料什么的,十分感谢。
我知道答案 目前已有9人回答
回复

使用道具 举报

该用户从未签到

145

主题

4926

帖子

0

金牌会员

Rank: 6Rank: 6

积分
9267
最后登录
1970-1-1
发表于 2014-9-23 10:45:40 | 显示全部楼层
楼主你好。
其实,如果想一直MSD的例程,首先你需要好好学习USB MSD的协议,这样再跑我们的代码,移植起来就清楚要移植哪些,如果是换为其他芯片,你需要替换相关的头文件,其余关于MSD的驱动,你可以直接使用。
关于相关文档,请仔细阅读Freescale USB Stack v4.1.1下面的文档,对结构讲的很清楚:
C:\Freescale\Freescale USB Stack v4.1.1\Documentation

另外,你所说的未知设备,其实MSD不需要人为添加安装软件的,你需要检查下你烧录的代码和你的芯片是否是匹配的,请给出你芯片的全称以及你所跑的USB驱动的代码路径。
回复 支持 反对

使用道具 举报

该用户从未签到

6

主题

100

帖子

0

中级会员

Rank: 3Rank: 3

积分
492
最后登录
1970-1-1
 楼主| 发表于 2014-9-23 16:06:22 | 显示全部楼层
FSL_TICS_ZJJ 发表于 2014-9-23 10:45
楼主你好。
其实,如果想一直MSD的例程,首先你需要好好学习USB MSD的协议,这样再跑我们的代码,移植起来 ...

你好。
芯片的全称是MK60DN512ZVLQ10,代码路径是C:\freescale\Freescale USB Stack v4.1.1\Source\Device\app\msd\iar_ew\kinetis_60。
昨天说自己毫无头绪,很大一部分原因在于没有好好学习USB MSD的协议,就想着快速移植,所以看着例程里的各种函数,参数就觉得移植困难,毫无入手之处。心浮气躁,实在惭愧!
今天从头来过,梳理了一下USB 2.0协议和MSD协议,有了一个大概的轮廓,代码看起来就不像昨天那样眼花缭乱。
回复 支持 反对

使用道具 举报

该用户从未签到

6

主题

100

帖子

0

中级会员

Rank: 3Rank: 3

积分
492
最后登录
1970-1-1
 楼主| 发表于 2014-9-24 16:52:02 | 显示全部楼层
现在到了能看懂usb_descriptor.c的程度,继续说下自己不明白的地方,求帮助。
1、C:\freescale\Freescale USB Stack v4.1.1\Documentation这里的文档USBUG--5.3  Developing an Application指出,需要复制一些源文件,并新建new_app.c 和 new_app.h。是不是说,这个new_app.c里面就是开发者所要实现的应用层的内容?而底层的那些device driver,class drive可以直接用?
2、C:\freescale\Freescale USB Stack v4.1.1\Source\Device\app\msd中的disk.h有如下代码(红色):

#if RAM_DISK_APP        
        /* Change this to suit the available RAM size on the device */
        #ifndef __HIWARE__
                #define TOTAL_LOGICAL_BLOCKS_ADDRESS    (2)
                /* Length of each logical block address */
                #define LENGTH_OF_EACH_LBA              (512)
        #else
                #define TOTAL_LOGICAL_BLOCKS_ADDRESS    (1)
                /* Length of each logical block address */
                #define LENGTH_OF_EACH_LBA              (256)
        #endif


        /* Total number of logical blocks present */
        #define DISK_SIZE                       (LENGTH_OF_EACH_LBA * TOTAL_LOGICAL_BLOCKS_ADDRESS)
#endif


文档说了这个头文件很重要,虽然注释很详细了,可是我还是不能把这些宏与特定的address或者block联系起来,不知道哪些数值该有具体的什么参数确定。我用的是8MB的SPI flash,又加了FAT文件系统,就更不知道这些值该怎么改了。
3、C:\freescale\Freescale USB Stack v4.1.1\Source\Device\app\msd中的disk.c文件中有一个Disk_App函数,里面只有一个return。这个函数是干嘛的?请问这里需要填充代码吗?(这个问题很白痴。。。可是就是不明白。。。)

回复 支持 反对

使用道具 举报

该用户从未签到

145

主题

4926

帖子

0

金牌会员

Rank: 6Rank: 6

积分
9267
最后登录
1970-1-1
发表于 2014-10-10 15:34:18 | 显示全部楼层
楼主你好,回答你的几个问题:
1:new_app.c和new_app.h的作用是用于新建主应用函数,在5.3节的第4点中讲了。可以实现你自己的应用。
其他的driver你可以直接复制调用的。

2:你可以先把芯片模拟为一个MSD,然后再通过程序吧相关的数据通过SPI接口传到你的外挂flash中去。
   关于这点,你可以参考USBUG.pdf的87页,有一个关于SD卡的demo, 思想是类似的。
3:Dis_App() 函数是用来编写用户自己的代码的,在函数注释中也写了/* User Code */
你可以写一些自己的需要的代码。
回复 支持 反对

使用道具 举报

该用户从未签到

6

主题

100

帖子

0

中级会员

Rank: 3Rank: 3

积分
492
最后登录
1970-1-1
 楼主| 发表于 2014-10-16 11:17:20 | 显示全部楼层
FSL_TICS_ZJJ 发表于 2014-10-10 15:34
楼主你好,回答你的几个问题:
1:new_app.c和new_app.h的作用是用于新建主应用函数,在5.3节的第4点中讲了 ...

谢谢你的帮助!现在已经枚举成功了,十分感谢!
回复 支持 反对

使用道具 举报

该用户从未签到

124

主题

3600

帖子

0

金牌会员

Rank: 6Rank: 6

积分
5781
最后登录
1970-1-1
发表于 2014-10-16 11:39:47 | 显示全部楼层
爱咖啡 发表于 2014-10-16 11:17
谢谢你的帮助!现在已经枚举成功了,十分感谢!

以后关于USB的问题,欢迎来论坛中讨论!
回复 支持 反对

使用道具 举报

该用户从未签到

6

主题

100

帖子

0

中级会员

Rank: 3Rank: 3

积分
492
最后登录
1970-1-1
 楼主| 发表于 2014-10-17 14:33:03 | 显示全部楼层
感谢解答我问题的版主,感谢论坛提供了这么多资料。K60+SPI flash的U盘搞定了。写入50K/S,读出300K/s。
这几天在整理整理,自己理清楚了再写点东西回报论坛。

1.jpg
回复 支持 反对

使用道具 举报

该用户从未签到

124

主题

3600

帖子

0

金牌会员

Rank: 6Rank: 6

积分
5781
最后登录
1970-1-1
发表于 2014-10-17 15:36:53 | 显示全部楼层
爱咖啡 发表于 2014-10-17 14:33
感谢解答我问题的版主,感谢论坛提供了这么多资料。K60+SPI flash的U盘搞定了。写入50K/S,读出300K/s。
这 ...

好的,很期待你的分享哦!
回复 支持 反对

使用道具 举报

该用户从未签到

13

主题

143

帖子

0

中级会员

Rank: 3Rank: 3

积分
491
最后登录
1970-1-1
发表于 2014-12-16 15:12:17 | 显示全部楼层

111111111

本帖最后由 lonny 于 2015-1-13 09:22 编辑


111111111
回复

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条

Archiver|手机版|小黑屋|恩智浦技术社区

GMT+8, 2025-7-21 20:48 , Processed in 0.106975 second(s), 31 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

快速回复 返回顶部 返回列表