zly1980 发表于 2009-8-11 23:44:40

新手问个U3B0读U盘的问题

IDE:AVR32 Studio 2.2.0就是现在可以在AT网上下栽到的.

从EVK1101的模版建立一个工程,之后增加FW的驱动,最后一部选择:USB Mass Storage Class
完成后编译工程.
出现:

**** Build of configuration Debug for project ETSMP ****

**** Internal Builder is used for build               ****
avr32-gcc -DBOARD=EVK1101 -I../src/SOFTWARE_FRAMEWORK/UTILS/DEBUG -I../src/SOFTWARE_FRAMEWORK/SERVICES/FAT -I../src/SOFTWARE_FRAMEWORK/SERVICES/USB/CLASS/MASS_STORAGE/SCSI_DECODER -I../src/SOFTWARE_FRAMEWORK/SERVICES/USB/CLASS/MASS_STORAGE/HOST_MEM -I../src/SOFTWARE_FRAMEWORK/SERVICES/USB/CLASS/MASS_STORAGE -I../src/SOFTWARE_FRAMEWORK/SERVICES/USB -I../src/CONFIG -IE:\micro\avr32\examp\ETSMP\src\SOFTWARE_FRAMEWORK\SERVICES\MEMORY\CTRL_ACCESS -I../src/SOFTWARE_FRAMEWORK/COMPONENTS/MEMORY/DATA_FLASH/AT45DBX -I../src/SOFTWARE_FRAMEWORK/DRIVERS/USBB/ENUM/DEVICE -I../src/SOFTWARE_FRAMEWORK/DRIVERS/USBB/ENUM/HOST -I../src/SOFTWARE_FRAMEWORK/DRIVERS/USBB/ENUM -I../src/SOFTWARE_FRAMEWORK/DRIVERS/USBB -I../src/SOFTWARE_FRAMEWORK/DRIVERS/USART -I../src/SOFTWARE_FRAMEWORK/DRIVERS/SPI -I../src/SOFTWARE_FRAMEWORK/DRIVERS/INTC -I../src/SOFTWARE_FRAMEWORK/DRIVERS/GPIO -I../src/SOFTWARE_FRAMEWORK/UTILS -I../src/SOFTWARE_FRAMEWORK/UTILS/PREPROCESSOR -I../src/SOFTWARE_FRAMEWORK/BOARDS -I../src/SOFTWARE_FRAMEWORK/UTILS/LIBS/NEWLIB_ADDONS/INCLUDE -O0 -fdata-sections -g3 -Wall -c -fmessage-length=0 -march=ucr1 -mpart=uc3b0256 -ffunction-sections -masm-addr-pseudos -osrc\SOFTWARE_FRAMEWORK\COMPONENTS\MEMORY\DATA_FLASH\AT45DBX\at45dbx_mem.o ..\src\SOFTWARE_FRAMEWORK\COMPONENTS\MEMORY\DATA_FLASH\AT45DBX\at45dbx_mem.c
avr32-gcc -DBOARD=EVK1101 -I../src/SOFTWARE_FRAMEWORK/UTILS/DEBUG -I../src/SOFTWARE_FRAMEWORK/SERVICES/FAT -I../src/SOFTWARE_FRAMEWORK/SERVICES/USB/CLASS/MASS_STORAGE/SCSI_DECODER -I../src/SOFTWARE_FRAMEWORK/SERVICES/USB/CLASS/MASS_STORAGE/HOST_MEM -I../src/SOFTWARE_FRAMEWORK/SERVICES/USB/CLASS/MASS_STORAGE -I../src/SOFTWARE_FRAMEWORK/SERVICES/USB -I../src/CONFIG -IE:\micro\avr32\examp\ETSMP\src\SOFTWARE_FRAMEWORK\SERVICES\MEMORY\CTRL_ACCESS -I../src/SOFTWARE_FRAMEWORK/COMPONENTS/MEMORY/DATA_FLASH/AT45DBX -I../src/SOFTWARE_FRAMEWORK/DRIVERS/USBB/ENUM/DEVICE -I../src/SOFTWARE_FRAMEWORK/DRIVERS/USBB/ENUM/HOST -I../src/SOFTWARE_FRAMEWORK/DRIVERS/USBB/ENUM -I../src/SOFTWARE_FRAMEWORK/DRIVERS/USBB -I../src/SOFTWARE_FRAMEWORK/DRIVERS/USART -I../src/SOFTWARE_FRAMEWORK/DRIVERS/SPI -I../src/SOFTWARE_FRAMEWORK/DRIVERS/INTC -I../src/SOFTWARE_FRAMEWORK/DRIVERS/GPIO -I../src/SOFTWARE_FRAMEWORK/UTILS -I../src/SOFTWARE_FRAMEWORK/UTILS/PREPROCESSOR -I../src/SOFTWARE_FRAMEWORK/BOARDS -I../src/SOFTWARE_FRAMEWORK/UTILS/LIBS/NEWLIB_ADDONS/INCLUDE -O0 -fdata-sections -g3 -Wall -c -fmessage-length=0 -march=ucr1 -mpart=uc3b0256 -ffunction-sections -masm-addr-pseudos -osrc\SOFTWARE_FRAMEWORK\DRIVERS\INTC\intc.o ..\src\SOFTWARE_FRAMEWORK\DRIVERS\INTC\intc.c
avr32-gcc -DBOARD=EVK1101 -I../src/SOFTWARE_FRAMEWORK/UTILS/DEBUG -I../src/SOFTWARE_FRAMEWORK/SERVICES/FAT -I../src/SOFTWARE_FRAMEWORK/SERVICES/USB/CLASS/MASS_STORAGE/SCSI_DECODER -I../src/SOFTWARE_FRAMEWORK/SERVICES/USB/CLASS/MASS_STORAGE/HOST_MEM -I../src/SOFTWARE_FRAMEWORK/SERVICES/USB/CLASS/MASS_STORAGE -I../src/SOFTWARE_FRAMEWORK/SERVICES/USB -I../src/CONFIG -IE:\micro\avr32\examp\ETSMP\src\SOFTWARE_FRAMEWORK\SERVICES\MEMORY\CTRL_ACCESS -I../src/SOFTWARE_FRAMEWORK/COMPONENTS/MEMORY/DATA_FLASH/AT45DBX -I../src/SOFTWARE_FRAMEWORK/DRIVERS/USBB/ENUM/DEVICE -I../src/SOFTWARE_FRAMEWORK/DRIVERS/USBB/ENUM/HOST -I../src/SOFTWARE_FRAMEWORK/DRIVERS/USBB/ENUM -I../src/SOFTWARE_FRAMEWORK/DRIVERS/USBB -I../src/SOFTWARE_FRAMEWORK/DRIVERS/USART -I../src/SOFTWARE_FRAMEWORK/DRIVERS/SPI -I../src/SOFTWARE_FRAMEWORK/DRIVERS/INTC -I../src/SOFTWARE_FRAMEWORK/DRIVERS/GPIO -I../src/SOFTWARE_FRAMEWORK/UTILS -I../src/SOFTWARE_FRAMEWORK/UTILS/PREPROCESSOR -I../src/SOFTWARE_FRAMEWORK/BOARDS -I../src/SOFTWARE_FRAMEWORK/UTILS/LIBS/NEWLIB_ADDONS/INCLUDE -O0 -fdata-sections -g3 -Wall -c -fmessage-length=0 -march=ucr1 -mpart=uc3b0256 -ffunction-sections -masm-addr-pseudos -osrc\SOFTWARE_FRAMEWORK\DRIVERS\USBB\ENUM\DEVICE\usb_specific_request.o ..\src\SOFTWARE_FRAMEWORK\DRIVERS\USBB\ENUM\DEVICE\usb_specific_request.c
avr32-gcc -DBOARD=EVK1101 -I../src/SOFTWARE_FRAMEWORK/UTILS/DEBUG -I../src/SOFTWARE_FRAMEWORK/SERVICES/FAT -I../src/SOFTWARE_FRAMEWORK/SERVICES/USB/CLASS/MASS_STORAGE/SCSI_DECODER -I../src/SOFTWARE_FRAMEWORK/SERVICES/USB/CLASS/MASS_STORAGE/HOST_MEM -I../src/SOFTWARE_FRAMEWORK/SERVICES/USB/CLASS/MASS_STORAGE -I../src/SOFTWARE_FRAMEWORK/SERVICES/USB -I../src/CONFIG -IE:\micro\avr32\examp\ETSMP\src\SOFTWARE_FRAMEWORK\SERVICES\MEMORY\CTRL_ACCESS -I../src/SOFTWARE_FRAMEWORK/COMPONENTS/MEMORY/DATA_FLASH/AT45DBX -I../src/SOFTWARE_FRAMEWORK/DRIVERS/USBB/ENUM/DEVICE -I../src/SOFTWARE_FRAMEWORK/DRIVERS/USBB/ENUM/HOST -I../src/SOFTWARE_FRAMEWORK/DRIVERS/USBB/ENUM -I../src/SOFTWARE_FRAMEWORK/DRIVERS/USBB -I../src/SOFTWARE_FRAMEWORK/DRIVERS/USART -I../src/SOFTWARE_FRAMEWORK/DRIVERS/SPI -I../src/SOFTWARE_FRAMEWORK/DRIVERS/INTC -I../src/SOFTWARE_FRAMEWORK/DRIVERS/GPIO -I../src/SOFTWARE_FRAMEWORK/UTILS -I../src/SOFTWARE_FRAMEWORK/UTILS/PREPROCESSOR -I../src/SOFTWARE_FRAMEWORK/BOARDS -I../src/SOFTWARE_FRAMEWORK/UTILS/LIBS/NEWLIB_ADDONS/INCLUDE -O0 -fdata-sections -g3 -Wall -c -fmessage-length=0 -march=ucr1 -mpart=uc3b0256 -ffunction-sections -masm-addr-pseudos -osrc\SOFTWARE_FRAMEWORK\SERVICES\FAT\navigation.o ..\src\SOFTWARE_FRAMEWORK\SERVICES\FAT\navigation.c
..\src\SOFTWARE_FRAMEWORK\SERVICES\FAT\navigation.c:58: error: 'ID_STREAM_ERR' undeclared here (not in a function)
..\src\SOFTWARE_FRAMEWORK\SERVICES\FAT\navigation.c: In function 'nav_file_paste_state':
..\src\SOFTWARE_FRAMEWORK\SERVICES\FAT\navigation.c:2274: warning: implicit declaration of function 'stream_state'
..\src\SOFTWARE_FRAMEWORK\SERVICES\FAT\navigation.c:2295: warning: implicit declaration of function 'stream_stop'
..\src\SOFTWARE_FRAMEWORK\SERVICES\FAT\navigation.c:2351: warning: implicit declaration of function 'stream_mem_to_mem'
Build error occurred, build is stopped
Time consumed: 3609ms.

查找 'ID_STREAM_ERR'是在文件ctrl_access.h中有出现:
#if ACCESS_STREAM == ENABLED

/*! \name Streaming MEM <-> MEM Interface
*/
//! @{

//! Erroneous streaming data transfer ID.
#define ID_STREAM_ERR         0xFF



ctrl_access.h所在目录已经加入到-I中,现在出现未定义,也就是#if ACCESS_STREAM == ENABLED不成立了,再找ACCESS_STREAM,发现是在conf_access.h中定义:
/*! \name Activation of Interface Features
*/
//! @{
#define ACCESS_USB         DISABLED //!< MEM <-> USB interface.
#define ACCESS_MEM_TO_RAM    ENABLED//!< MEM <-> RAM interface.
#define ACCESS_STREAM      DISABLED //!< Streaming MEM <-> MEM interface.
#define ACCESS_STREAM_RECORD DISABLED //!< Streaming MEM <-> MEM interface in record mode.
#define ACCESS_MEM_TO_MEM    DISABLED //!< MEM <-> MEM interface.
#define ACCESS_CODEC         DISABLED //!< Codec interface.

这里定义为DISABLED了,如果我手工修改这些文件,会提示一下.
到底是我选择驱动的时候有些东西没有加进去,还是这个文件本来就是需要手工修改的?

我选择的是访问USB存储的模式,那么为什么
ACCESS_USB 还是定义为DISABLED的? ACCESS_MEM_TO_RAM才是enabled的?UC3B0有memory跟ram二个东西?

shanyao 发表于 2009-8-12 11:13:33

路过,顶上去

zly1980 发表于 2009-8-12 11:15:19

conf_accsee.h中的 LUN 2 Definitions 是怎么样的?我好象发现二个版本,conf_accsee.h注析的fw版本相同:

/*! \name LUN 2 Definitions
*/
//! @{
#define SD_MMC_MEM                              LUN_2
#define LUN_ID_SD_MMC_MEM                     LUN_ID_2
#define LUN_2_INCLUDE                           "sd_mmc_mem.h"
#define Lun_2_test_unit_ready                   sd_mmc_test_unit_ready
#define Lun_2_read_capacity                     sd_mmc_read_capacity
#define Lun_2_wr_protect                        sd_mmc_wr_protect
#define Lun_2_removal                           sd_mmc_removal
#define Lun_2_usb_read_10                     sd_mmc_usb_read_10
#define Lun_2_usb_write_10                      sd_mmc_usb_write_10
#define Lun_2_mem_2_ram                         sd_mmc_mem_2_ram
#define Lun_2_ram_2_mem                         sd_mmc_ram_2_mem
#define LUN_2_NAME                              "\"SD/MMC Card\""


/*! \name LUN 2 Definitions
*/
//! @{
#define SD_MMC_SPI_MEM                        LUN_2
#define LUN_ID_SD_MMC_SPI_MEM                   LUN_ID_2
#define LUN_2_INCLUDE                           "sd_mmc_spi_mem.h"
#define Lun_2_test_unit_ready                   sd_mmc_spi_test_unit_ready
#define Lun_2_read_capacity                     sd_mmc_spi_read_capacity
#define Lun_2_wr_protect                        sd_mmc_spi_wr_protect
#define Lun_2_removal                           sd_mmc_spi_removal
#define Lun_2_usb_read_10                     sd_mmc_spi_usb_read_10
#define Lun_2_usb_write_10                      sd_mmc_spi_usb_write_10
#define Lun_2_mem_2_ram                         sd_mmc_spi_mem_2_ram
#define Lun_2_ram_2_mem                         sd_mmc_spi_ram_2_mem
#define LUN_2_NAME                              "\"SD/MMC Card over SPI\""

查看实际的SD/MMC的代码都是一样的,但是定义一个名字中带了spi一个没带...汗....
C/C++本来定义跟头文件这些就是比较复杂的东西


我自己建的从EVK1101模版出来的,增加的SD/MMC驱动就不带SPI字样的.....
如果从例子建立的工程,就带的.....

shanyao 发表于 2009-8-15 10:57:12

楼主,问题解决了吗
分享一下

zly1980 发表于 2009-8-21 00:01:50

没有哦,没兴趣去弄了.
买了个SNAL跟UC30的小板,用AVR32怎么也仿真不了...电话给技术支持N次,也没解决,最后发回去了....说了AVR32的版本太高了....电话的时候我一再问我的AVR32是2.2.0有没问题....说没问题.....发回来还要我付快递费...
没什么兴趣了.这个论坛问东西也没人回答的.

kingofkings 发表于 2009-8-21 00:06:27

【楼主位】 zly1980
你工程的一些定义没设怎么可能会有反应?
用U盘建议直接使用mass 的example来用那个工程是全部设置好的

Snail有详细的说明只支持在IAR在仿真

zly1980 发表于 2009-8-21 23:51:58

呵呵,我买之前电话问过N次支不支持AVR32+UC3小板的仿真.
得到的回答是支持!我才买的.
不说你们坏话是没人回答问题的

cndx100 发表于 2014-3-26 11:36:41

我在UC3C上调FATFS时也遇到这个问题,现在还没搞定,Atmel论坛上12年就有人提过一样的问题,但好像也没得到解决。
页: [1]
查看完整版本: 新手问个U3B0读U盘的问题