Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: STM32F4 USB в режиме хоста.
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > ARM, 32bit
glags
Добрый день, чайник просит Вашей помощи в стыковки этого модуля и USB библиотеки (stm32_f105-07_f2_f4_usb-host-device_lib).
Как я понял их объединить не просто, кроме коррекции файлов diskio.c, usb_bsp.c (здесь конфигурится usb интерфейс и прерывания), usb_conf.h и тд бог знает чего ещё править ручками. Выкурил кучу мануала устал.
В конечном результате я хочу используя порты PA11 и PA12 подключить USB флешку (PA10 и PA9 как я понял можно не использовать так как у флешки всего 4 контакта - 2 информационные и 2 питание).
Моя задача читать файлы с флешки с помощю контроллера STM32F407VG обрабатывать их и писать на флеш.
Если можно дайте пожалуйста готовый архив с настроеной стыковкой fatfs и usb библиотеки или направьте на путь истинный (где чего копать и какие файлы как конфигурить). Буду рад любой помощи.
С уважением ЧАЙНИК.
hd44780
Цитата(glags @ May 9 2013, 11:55) *
Выкурил кучу мануала устал.
В конечном результате я хочу используя порты PA11 и PA12 подключить USB флешку (PA10 и PA9 как я понял можно не использовать так как у флешки всего 4 контакта - 2 информационные и 2 питание).


Надо было курить пример Audio_playback_and_record для F4Discovery ... Там и fatfs есть.
Я, правда, его пока недокурил biggrin.gif
glags
Цитата(hd44780 @ May 14 2013, 13:36) *
Надо было курить пример Audio_playback_and_record для F4Discovery ... Там и fatfs есть.
Я, правда, его пока недокурил biggrin.gif

Курил его, но там всё переплетено на кучу без разделения FATFS и USB, кроме того обрезанная версия FATFS и используется PA9-PA12 для USB, PC0 включение питания USB, PD5 контроль по перегрузке USB. Мне было б достаточно использовать PC0, PD5, PA11 и PA12. Не совсем разобрался с прерываниями (может без него можно обойтись используя просто вызов функции). Как я понял по прерыванию проверяется подключена ли флешка и нет ли перегруза по питалову флехи и таким образом постоянно обновляется переменная Stat, но эту переменную можно получать, когда надо, простым вызовом функции. Тяжело извлекать и хотелось бы иметь последнюю версию (0.9b) FATFS состыкованную с библиотекой USB. На данный момент пробую его докурить, а затем приспособить под FATFS 0.9b. Если у Вас быстрее получится то могли бы помочь?
hd44780
Да, если получится, выложу.
Я уже слегка его поуродовал (запись звука хочу выкинуть), но оно пока не компилится. Для чего там таймер, я вообще пока не понял wacko.gif . Может недосмотрел.

Если справитесь, выложите.

FATFS там отделён, но diskio засунут куда-то далеко. Я сам не сразу понял, где оно.

Вообще организация кода ужасная crying.gif .
glags
Цитата(hd44780 @ May 15 2013, 10:44) *
Да, если получится, выложу.
Я уже слегка его поуродовал (запись звука хочу выкинуть), но оно пока не компилится. Для чего там таймер, я вообще пока не понял wacko.gif . Может недосмотрел.

Если справитесь, выложите.

Что-то мне не очень нравится эта затея, а как после всех колупаний прочитать каталог и выбрать нужный файл для открытия. Здесь нет явной библиотеки FATFS, и по сему многие функции по работе с файловой системой недоступны.
Кстати таймер используется для запуска прерывания. Из всего этого изврата мне надо получить следующее: считать каталог, выбрать файл, открыть его и изменить, а затем записать обратно, при этом я хочу ещё сам создавать, удалять и переименовывать файлы.
Сейчас я взял библиотеку FATFS и библиотеку USB и пытаюсь их слепить. Мне кажется из этого что-то получится. Пока даёт кучу ошибок компиляции, но я по чуть-чуть с ними борюсь rolleyes.gif .
hd44780
Я тут нашёл MP3 плеер на F4discovery с флэшки через FatFs, переделал под свой IAR, скомпилился.
Он с корня читает *.mp3 и играет их. По UserButton переходит к следующему файлу.

Дома на железке проверю и, если всё ок, выложу.

Цитата(glags @ May 15 2013, 12:10) *
мне надо получить следующее: считать каталог, выбрать файл, открыть его и изменить, а затем записать обратно, при этом я хочу ещё сам создавать, удалять и переименовывать файлы.

Так FatFs это вроде умеет. Надо только подсунуть ей функции чтения/записи секторов.
glags
Цитата(hd44780 @ May 15 2013, 15:00) *
Так FatFs это вроде умеет. Надо только подсунуть ей функции чтения/записи секторов.


Да умеет и нормально у меня компилится, но проблема с USB библиотекой. Надо сконфигурить usbh_conf, usb_bsp, usb_conf и соответственно diskio.с.
Как это грамотно сделать я толком не знаю.
hd44780
У меня что-то получилось. Файл читается нормально. Другое не пробовал.
diskio.c там не нужен, его usbh_msc_fatfs заменяет.
glags
Цитата(hd44780 @ May 15 2013, 18:24) *
У меня что-то получилось. Файл читается нормально. Другое не пробовал.
diskio.c там не нужен, его usbh_msc_fatfs заменяет.

А можно получить исходники?
hd44780
Да, конечно.

Сейчас ещё чуть поиграюсь и выложу.
hd44780
Ловите под IAR. Стандартные библиотеки я не стал вкладывать.

Чтение файла там в комментаренной части есть. Оно работает.
Запись вроде идёт, но файла я потом не нашёл biggrin.gif , завтра гляну ..
glags
Цитата(hd44780 @ May 15 2013, 20:55) *
Ловите под IAR. Стандартные библиотеки я не стал вкладывать.

Чтение файла там в комментаренной части есть. Оно работает.
Запись вроде идёт, но файла я потом не нашёл biggrin.gif , завтра гляну ..

Премного благодарен Вам, но попробовать смогу только 17.05 вечером после 22-00. У меня кстати CoIDE, но проблем не должно быть. Как попробую отпишусь. Если всё ок то попробую последнюю FATFS прикрутить, тут проблем не должно быть. Главное было USB библиотеку настроить, за что я Вам безгранично благодарен. beer.gif
glags
Цитата(glags @ May 15 2013, 23:44) *
Премного благодарен Вам, но попробовать смогу только 17.05 вечером после 22-00. У меня кстати CoIDE, но проблем не должно быть. Как попробую отпишусь. Если всё ок то попробую последнюю FATFS прикрутить, тут проблем не должно быть. Главное было USB библиотеку настроить, за что я Вам безгранично благодарен. beer.gif

Не сдержался и занялся сегодня, бросив все свои дела.
При компиляции не нашло следующие файлы: usb_hcd_int.h, usbh_core.h, usbh_msc_core.h и usb_bsp.h. Можите ли Вы их мне закинуть?
hd44780
Охота пуще неволи biggrin.gif

Это стандартные файлы из ST-шных библиотек.
Лежат обычно здесь - Libraries\STM32_USB_OTG_Driver\inc
Включите этот каталог в пути кокоса...

У меня подключено вот это:
$PROJ_DIR$\..\
$PROJ_DIR$\..\USB
$PROJ_DIR$\..\FATFS
$PROJ_DIR$\..\..\Libraries\CMSIS\Include
$PROJ_DIR$\..\..\Libraries\CMSIS\ST\STM32F4xx\Include
$PROJ_DIR$\..\..\Libraries\STM32F4xx_StdPeriph_Driver\inc
$PROJ_DIR$\..\..\Libraries\STM32_USB_HOST_Library\Core\inc
$PROJ_DIR$\..\..\Libraries\STM32_USB_HOST_Library\Class\MSC\inc
$PROJ_DIR$\..\..\Libraries\STM32_USB_OTG_Driver\inc
$PROJ_DIR$\..\..\Utilities\STM32F4-Discovery

$PROJ_DIR$ - IAR-овское волшебное слово, означает каталог, где проект лежит.

Кстати нашёл глюк, из-за которого запись не шла.
Файл для записи надо с флагом FA_WRITE открывать:
if (FR_OK == f_open(&file, "/list.txt", FA_CREATE_ALWAYS | FA_WRITE))
Если FA_WRITE не указать, то fwrite сразу же возвращается с кодом FR_DENIED. Файл при этом даже не формируется.
glags
Цитата(hd44780 @ May 16 2013, 12:24) *
Охота пуще неволи biggrin.gif

Это стандартные файлы из ST-шных библиотек.
Лежат обычно здесь - Libraries\STM32_USB_OTG_Driver\inc
Включите этот каталог в пути кокоса...
Если FA_WRITE не указать, то fwrite сразу же возвращается с кодом FR_DENIED. Файл при этом даже не формируется.


Добавил в проект все необходимые файлы и попёрла у меня куча ошибок компиляции. Если есть у Вас такая возможность прописать путь именно только к моему проекту не включая другие библиотеки и подсказать в чём моя ошибка.
GCC HOME: C:\CooCox\arm-2011.03-coocox\bin
compile:
[mkdir] Created dir: C:\CooCox\CoIDE\workspace\flash\flash\Debug\bin
[mkdir] Created dir: C:\CooCox\CoIDE\workspace\flash\flash\Debug\obj
[cc] 200
[cc] 25 total files to be compiled.
[cc] arm-none-eabi-gcc -mcpu=cortex-m4 -mthumb -Wall -ffunction-sections -g -O0 -c -DSTM32F407VG -DSTM32F4XX -ID:\STM32F4\lib\LIBRIARY -ID:\STM32F4\lib\LIBRIARY\FlashTest\USB -IC:\CooCox\CoIDE\workspace\flash\cmsis_boot -IC:\CooCox\CoIDE\workspace -ID:\STM32F4\lib\LIBRIARY\FlashTest -ID:\STM32F4\lib -IC:\CooCox\CoIDE\workspace\flash -IC:\CooCox\CoIDE\workspace\flash\cmsis -IC:\CooCox\CoIDE\workspace\flash\cmsis_lib\include -IC:\CooCox\CoIDE\workspace\flash\cmsis_lib -ID:\STM32F4\lib\LIBRIARY\FlashTest\FATFS D:\STM32F4\lib\LIBRIARY\FlashTest\USB\usb_core.c D:\STM32F4\lib\LIBRIARY\FlashTest\USB\usbh_hcs.c D:\STM32F4\lib\LIBRIARY\FlashTest\USB\usbh_stdreq.c C:\CooCox\CoIDE\workspace\flash\cmsis_boot\startup\startup_stm32f4xx.c D:\STM32F4\lib\LIBRIARY\FlashTest\stm32f4_discovery.c D:\STM32F4\lib\LIBRIARY\FlashTest\main.c C:\CooCox\CoIDE\workspace\flash\cmsis_lib\source\stm32f4xx_rcc.c D:\STM32F4\lib\LIBRIARY\FlashTest\stm32f4xx_it.c D:\STM32F4\lib\LIBRIARY\FlashTest\USB\usbh_msc_core.c D:\STM32F4\lib\LIBRIARY\FlashTest\USB\usbh_core.c D:\STM32F4\lib\LIBRIARY\FlashTest\stm32f4xx_gpio.c D:\STM32F4\lib\LIBRIARY\FlashTest\USB\usbh_msc_scsi.c C:\CooCox\CoIDE\workspace\flash\cmsis_boot\system_stm32f4xx.c D:\STM32F4\lib\LIBRIARY\FlashTest\stm32f4xx_dma.c D:\STM32F4\lib\LIBRIARY\FlashTest\USB\usbh_usr.c D:\STM32F4\lib\LIBRIARY\FlashTest\FATFS\ccsbcs.c D:\STM32F4\lib\LIBRIARY\FlashTest\USB\usb_bsp.c D:\STM32F4\lib\LIBRIARY\FlashTest\FATFS\ff.c D:\STM32F4\lib\LIBRIARY\FlashTest\USB\usb_hcd.c D:\STM32F4\lib\LIBRIARY\FlashTest\USB\usbh_msc_bot.c D:\STM32F4\lib\LIBRIARY\FlashTest\stm32f4xx_exti.c D:\STM32F4\lib\LIBRIARY\FlashTest\USB\usbh_ioreq.c D:\STM32F4\lib\LIBRIARY\FlashTest\FATFS\fattime.c D:\STM32F4\lib\LIBRIARY\FlashTest\stm32f4xx_tim.c D:\STM32F4\lib\LIBRIARY\FlashTest\USB\usb_hcd_int.c
[cc] D:\STM32F4\lib\LIBRIARY\FlashTest\stm32f4_discovery.c:69:34: error: 'GPIO_Pin_12' undeclared here (not in a function)
[cc] D:\STM32F4\lib\LIBRIARY\FlashTest\stm32f4_discovery.c:69:44: error: 'GPIO_Pin_13' undeclared here (not in a function)
[cc] D:\STM32F4\lib\LIBRIARY\FlashTest\stm32f4_discovery.c:69:54: error: 'GPIO_Pin_14' undeclared here (not in a function)
[cc] D:\STM32F4\lib\LIBRIARY\FlashTest\stm32f4_discovery.c:70:34: error: 'GPIO_Pin_15' undeclared here (not in a function)
[cc] D:\STM32F4\lib\LIBRIARY\FlashTest\stm32f4_discovery.c:71:34: error: 'RCC_AHB1Periph_GPIOD' undeclared here (not in a function)
[cc] D:\STM32F4\lib\LIBRIARY\FlashTest\stm32f4_discovery.c:76:39: error: 'GPIO_Pin_0' undeclared here (not in a function)
[cc] D:\STM32F4\lib\LIBRIARY\FlashTest\stm32f4_discovery.c:78:39: error: 'RCC_AHB1Periph_GPIOA' undeclared here (not in a function)
[cc] D:\STM32F4\lib\LIBRIARY\FlashTest\stm32f4_discovery.c:80:45: error: 'EXTI_Line0' undeclared here (not in a function)
[cc] D:\STM32F4\lib\LIBRIARY\FlashTest\stm32f4_discovery.c:82:46: error: 'EXTI_PortSourceGPIOA' undeclared here (not in a function)
[cc] D:\STM32F4\lib\LIBRIARY\FlashTest\stm32f4_discovery.c:84:45: error: 'EXTI_PinSource0' undeclared here (not in a function)
[cc] D:\STM32F4\lib\LIBRIARY\FlashTest\stm32f4_discovery.c:87:20: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'NVIC_InitStructure'
[cc] D:\STM32F4\lib\LIBRIARY\FlashTest\stm32f4_discovery.c: In function 'STM_EVAL_LEDInit':
[cc] D:\STM32F4\lib\LIBRIARY\FlashTest\stm32f4_discovery.c:118:3: error: 'GPIO_InitTypeDef' undeclared (first use in this function)
[cc] D:\STM32F4\lib\LIBRIARY\FlashTest\stm32f4_discovery.c:118:3: note: each undeclared identifier is reported only once for each function it appears in
[cc] D:\STM32F4\lib\LIBRIARY\FlashTest\stm32f4_discovery.c:118:21: error: expected ';' before 'GPIO_InitStructure'
[cc] D:\STM32F4\lib\LIBRIARY\FlashTest\stm32f4_discovery.c:121:3: warning: implicit declaration of function 'RCC_AHB1PeriphClockCmd'
[cc] D:\STM32F4\lib\LIBRIARY\FlashTest\stm32f4_discovery.c:124:3: error: 'GPIO_InitStructure' undeclared (first use in this function)
[cc] D:\STM32F4\lib\LIBRIARY\FlashTest\stm32f4_discovery.c:125:34: error: 'GPIO_Mode_OUT' undeclared (first use in this function)
[cc] D:\STM32F4\lib\LIBRIARY\FlashTest\stm32f4_discovery.c:126:35: error: 'GPIO_OType_PP' undeclared (first use in this function)
[cc] D:\STM32F4\lib\LIBRIARY\FlashTest\stm32f4_discovery.c:127:34: error: 'GPIO_PuPd_UP' undeclared (first use in this function)
[cc] D:\STM32F4\lib\LIBRIARY\FlashTest\stm32f4_discovery.c:128:35: error: 'GPIO_Speed_50MHz' undeclared (first use in this function)
[cc] D:\STM32F4\lib\LIBRIARY\FlashTest\stm32f4_discovery.c:129:3: warning: implicit declaration of function 'GPIO_Init'
[cc] D:\STM32F4\lib\LIBRIARY\FlashTest\stm32f4_discovery.c: In function 'STM_EVAL_PBInit':
[cc] D:\STM32F4\lib\LIBRIARY\FlashTest\stm32f4_discovery.c:190:3: error: 'GPIO_InitTypeDef' undeclared (first use in this function)
[cc] D:\STM32F4\lib\LIBRIARY\FlashTest\stm32f4_discovery.c:190:20: error: expected ';' before 'GPIO_InitStructure'
[cc] D:\STM32F4\lib\LIBRIARY\FlashTest\stm32f4_discovery.c:191:3: error: 'EXTI_InitTypeDef' undeclared (first use in this function)
[cc] D:\STM32F4\lib\LIBRIARY\FlashTest\stm32f4_discovery.c:191:20: error: expected ';' before 'EXTI_InitStructure'
[cc] D:\STM32F4\lib\LIBRIARY\FlashTest\stm32f4_discovery.c:192:3: error: 'NVIC_InitTypeDef' undeclared (first use in this function)
[cc] D:\STM32F4\lib\LIBRIARY\FlashTest\stm32f4_discovery.c:192:20: error: expected ';' before 'NVIC_InitStructure'
[cc] D:\STM32F4\lib\LIBRIARY\FlashTest\stm32f4_discovery.c:196:3: warning: implicit declaration of function 'RCC_APB2PeriphClockCmd'
[cc] D:\STM32F4\lib\LIBRIARY\FlashTest\stm32f4_discovery.c:196:26: error: 'RCC_APB2Periph_SYSCFG' undeclared (first use in this function)
[cc] D:\STM32F4\lib\LIBRIARY\FlashTest\stm32f4_discovery.c:199:3: error: 'GPIO_InitStructure' undeclared (first use in this function)
[cc] D:\STM32F4\lib\LIBRIARY\FlashTest\stm32f4_discovery.c:199:34: error: 'GPIO_Mode_IN' undeclared (first use in this function)
[cc] D:\STM32F4\lib\LIBRIARY\FlashTest\stm32f4_discovery.c:200:34: error: 'GPIO_PuPd_NOPULL' undeclared (first use in this function)
[cc] D:\STM32F4\lib\LIBRIARY\FlashTest\stm32f4_discovery.c:207:5: warning: implicit declaration of function 'SYSCFG_EXTILineConfig'
[cc] D:\STM32F4\lib\LIBRIARY\FlashTest\stm32f4_discovery.c:210:5: error: 'EXTI_InitStructure' undeclared (first use in this function)
[cc] D:\STM32F4\lib\LIBRIARY\FlashTest\stm32f4_discovery.c:211:36: error: 'EXTI_Mode_Interrupt' undeclared (first use in this function)
[cc] D:\STM32F4\lib\LIBRIARY\FlashTest\stm32f4_discovery.c:212:39: error: 'EXTI_Trigger_Rising' undeclared (first use in this function)
[cc] D:\STM32F4\lib\LIBRIARY\FlashTest\stm32f4_discovery.c:214:5: warning: implicit declaration of function 'EXTI_Init'
[cc] D:\STM32F4\lib\LIBRIARY\FlashTest\stm32f4_discovery.c:217:5: error: 'NVIC_InitStructure' undeclared (first use in this function)
[cc] D:\STM32F4\lib\LIBRIARY\FlashTest\stm32f4_discovery.c:222:5: warning: implicit declaration of function 'NVIC_Init'
[cc] D:\STM32F4\lib\LIBRIARY\FlashTest\stm32f4_discovery.c: In function 'STM_EVAL_PBGetState':
[cc] D:\STM32F4\lib\LIBRIARY\FlashTest\stm32f4_discovery.c:234:3: warning: implicit declaration of function 'GPIO_ReadInputDataBit'
[cc] In file included from D:\STM32F4\lib\LIBRIARY\FlashTest\main.c:3:0:
[cc] D:\STM32F4\lib\LIBRIARY\FlashTest\/stm32f4xx_conf.h:34:27: fatal error: stm32f4xx_adc.h: No such file or directory
[cc] compilation terminated.
[cc] C:\CooCox\CoIDE\workspace\flash\cmsis_lib\source\stm32f4xx_rcc.c: In function 'RCC_HSEConfig':
[cc] C:\CooCox\CoIDE\workspace\flash\cmsis_lib\source\stm32f4xx_rcc.c:240:3: warning: implicit declaration of function 'assert_param'
[cc] In file included from D:\STM32F4\lib\LIBRIARY\FlashTest\stm32f4xx_it.c:27:0:
[cc] D:\STM32F4\lib\LIBRIARY\FlashTest\/stm32f4xx_conf.h:34:27: fatal error: stm32f4xx_adc.h: No such file or directory
[cc] compilation terminated.
[cc] D:\STM32F4\lib\LIBRIARY\FlashTest\stm32f4xx_gpio.c: In function 'GPIO_DeInit':
[cc] D:\STM32F4\lib\LIBRIARY\FlashTest\stm32f4xx_gpio.c:123:3: warning: implicit declaration of function 'assert_param'
[cc] D:\STM32F4\lib\LIBRIARY\FlashTest\stm32f4xx_dma.c: In function 'DMA_DeInit':
[cc] D:\STM32F4\lib\LIBRIARY\FlashTest\stm32f4xx_dma.c:191:3: warning: implicit declaration of function 'assert_param'
[cc] D:\STM32F4\lib\LIBRIARY\FlashTest\USB\usbh_usr.c: In function 'USBH_USR_DeviceAttached':
[cc] D:\STM32F4\lib\LIBRIARY\FlashTest\USB\usbh_usr.c:84:2: warning: implicit declaration of function 'GPIO_SetBits'
[cc] D:\STM32F4\lib\LIBRIARY\FlashTest\USB\usbh_usr.c:84:22: error: 'GPIO_Pin_14' undeclared (first use in this function)
[cc] D:\STM32F4\lib\LIBRIARY\FlashTest\USB\usbh_usr.c:84:22: note: each undeclared identifier is reported only once for each function it appears in
[cc] D:\STM32F4\lib\LIBRIARY\FlashTest\USB\usbh_usr.c: In function 'USBH_USR_DeviceDisconnected':
[cc] D:\STM32F4\lib\LIBRIARY\FlashTest\USB\usbh_usr.c:104:2: warning: implicit declaration of function 'GPIO_ResetBits'
[cc] D:\STM32F4\lib\LIBRIARY\FlashTest\USB\usbh_usr.c:104:24: error: 'GPIO_Pin_14' undeclared (first use in this function)
[cc] D:\STM32F4\lib\LIBRIARY\FlashTest\USB\usbh_usr.c:105:24: error: 'GPIO_Pin_12' undeclared (first use in this function)
[cc] D:\STM32F4\lib\LIBRIARY\FlashTest\USB\usbh_usr.c: In function 'USBH_USR_MSC_Application':
[cc] D:\STM32F4\lib\LIBRIARY\FlashTest\USB\usbh_usr.c:253:22: error: 'GPIO_Pin_12' undeclared (first use in this function)
[cc] D:\STM32F4\lib\LIBRIARY\FlashTest\USB\usb_bsp.c: In function 'USB_OTG_BSP_Init':
[cc] D:\STM32F4\lib\LIBRIARY\FlashTest\USB\usb_bsp.c:87:2: error: 'GPIO_InitTypeDef' undeclared (first use in this function)
[cc] D:\STM32F4\lib\LIBRIARY\FlashTest\USB\usb_bsp.c:87:2: note: each undeclared identifier is reported only once for each function it appears in
[cc] D:\STM32F4\lib\LIBRIARY\FlashTest\USB\usb_bsp.c:87:19: error: expected ';' before 'GPIO_InitStructure'
[cc] D:\STM32F4\lib\LIBRIARY\FlashTest\USB\usb_bsp.c:90:2: warning: implicit declaration of function 'RCC_AHB1PeriphClockCmd'
[cc] D:\STM32F4\lib\LIBRIARY\FlashTest\USB\usb_bsp.c:90:26: error: 'RCC_AHB1Periph_GPIOA' undeclared (first use in this function)
[cc] D:\STM32F4\lib\LIBRIARY\FlashTest\USB\usb_bsp.c:93:2: error: 'GPIO_InitStructure' undeclared (first use in this function)
[cc] D:\STM32F4\lib\LIBRIARY\FlashTest\USB\usb_bsp.c:93:32: error: 'GPIO_Pin_9' undeclared (first use in this function)
[cc] D:\STM32F4\lib\LIBRIARY\FlashTest\USB\usb_bsp.c:94:4: error: 'GPIO_Pin_11' undeclared (first use in this function)
[cc] D:\STM32F4\lib\LIBRIARY\FlashTest\USB\usb_bsp.c:95:4: error: 'GPIO_Pin_12' undeclared (first use in this function)
[cc] D:\STM32F4\lib\LIBRIARY\FlashTest\USB\usb_bsp.c:97:34: error: 'GPIO_Speed_100MHz' undeclared (first use in this function)
[cc] D:\STM32F4\lib\LIBRIARY\FlashTest\USB\usb_bsp.c:98:33: error: 'GPIO_Mode_AF' undeclared (first use in this function)
[cc] D:\STM32F4\lib\LIBRIARY\FlashTest\USB\usb_bsp.c:99:34: error: 'GPIO_OType_PP' undeclared (first use in this function)
[cc] D:\STM32F4\lib\LIBRIARY\FlashTest\USB\usb_bsp.c:100:33: error: 'GPIO_PuPd_NOPULL' undeclared (first use in this function)
[cc] D:\STM32F4\lib\LIBRIARY\FlashTest\USB\usb_bsp.c:101:2: warning: implicit declaration of function 'GPIO_Init'
[cc] D:\STM32F4\lib\LIBRIARY\FlashTest\USB\usb_bsp.c:103:2: warning: implicit declaration of function 'GPIO_PinAFConfig'
[cc] D:\STM32F4\lib\LIBRIARY\FlashTest\USB\usb_bsp.c:103:25: error: 'GPIO_PinSource9' undeclared (first use in this function)
[cc] D:\STM32F4\lib\LIBRIARY\FlashTest\USB\usb_bsp.c:103:41: error: 'GPIO_AF_OTG1_FS' undeclared (first use in this function)
[cc] D:\STM32F4\lib\LIBRIARY\FlashTest\USB\usb_bsp.c:104:25: error: 'GPIO_PinSource11' undeclared (first use in this function)
[cc] D:\STM32F4\lib\LIBRIARY\FlashTest\USB\usb_bsp.c:105:25: error: 'GPIO_PinSource12' undeclared (first use in this function)
[cc] D:\STM32F4\lib\LIBRIARY\FlashTest\USB\usb_bsp.c:110:33: error: 'GPIO_Pin_10' undeclared (first use in this function)
[cc] D:\STM32F4\lib\LIBRIARY\FlashTest\USB\usb_bsp.c:111:34: error: 'GPIO_OType_OD' undeclared (first use in this function)
[cc] D:\STM32F4\lib\LIBRIARY\FlashTest\USB\usb_bsp.c:112:33: error: 'GPIO_PuPd_UP' undeclared (first use in this function)
[cc] D:\STM32F4\lib\LIBRIARY\FlashTest\USB\usb_bsp.c:115:25: error: 'GPIO_PinSource10' undeclared (first use in this function)
[cc] D:\STM32F4\lib\LIBRIARY\FlashTest\USB\usb_bsp.c:118:2: warning: implicit declaration of function 'RCC_APB2PeriphClockCmd'
[cc] D:\STM32F4\lib\LIBRIARY\FlashTest\USB\usb_bsp.c:118:25: error: 'RCC_APB2Periph_SYSCFG' undeclared (first use in this function)
[cc] D:\STM32F4\lib\LIBRIARY\FlashTest\USB\usb_bsp.c:119:2: warning: implicit declaration of function 'RCC_AHB2PeriphClockCmd'
[cc] D:\STM32F4\lib\LIBRIARY\FlashTest\USB\usb_bsp.c:119:25: error: 'RCC_AHB2Periph_OTG_FS' undeclared (first use in this function)
[cc] D:\STM32F4\lib\LIBRIARY\FlashTest\USB\usb_bsp.c: In function 'USB_OTG_BSP_EnableInterrupt':
[cc] D:\STM32F4\lib\LIBRIARY\FlashTest\USB\usb_bsp.c:248:2: error: 'NVIC_InitTypeDef' undeclared (first use in this function)
[cc] D:\STM32F4\lib\LIBRIARY\FlashTest\USB\usb_bsp.c:248:19: error: expected ';' before 'NVIC_InitStructure'
[cc] D:\STM32F4\lib\LIBRIARY\FlashTest\USB\usb_bsp.c:250:2: warning: implicit declaration of function 'NVIC_PriorityGroupConfig'
[cc] D:\STM32F4\lib\LIBRIARY\FlashTest\USB\usb_bsp.c:250:27: error: 'NVIC_PriorityGroup_1' undeclared (first use in this function)
[cc] D:\STM32F4\lib\LIBRIARY\FlashTest\USB\usb_bsp.c:252:2: error: 'NVIC_InitStructure' undeclared (first use in this function)
[cc] D:\STM32F4\lib\LIBRIARY\FlashTest\USB\usb_bsp.c:256:2: warning: implicit declaration of function 'NVIC_Init'
[cc] D:\STM32F4\lib\LIBRIARY\FlashTest\USB\usb_bsp.c: In function 'USB_OTG_BSP_DriveVBUS':
[cc] D:\STM32F4\lib\LIBRIARY\FlashTest\USB\usb_bsp.c:290:3: warning: implicit declaration of function 'GPIO_SetBits'
[cc] D:\STM32F4\lib\LIBRIARY\FlashTest\USB\usb_bsp.c:290:35: error: 'GPIO_Pin_0' undeclared (first use in this function)
[cc] D:\STM32F4\lib\LIBRIARY\FlashTest\USB\usb_bsp.c:295:3: warning: implicit declaration of function 'GPIO_ResetBits'
[cc] D:\STM32F4\lib\LIBRIARY\FlashTest\USB\usb_bsp.c: In function 'USB_OTG_BSP_ConfigVBUS':
[cc] D:\STM32F4\lib\LIBRIARY\FlashTest\USB\usb_bsp.c:307:2: error: 'GPIO_InitTypeDef' undeclared (first use in this function)
[cc] D:\STM32F4\lib\LIBRIARY\FlashTest\USB\usb_bsp.c:307:19: error: expected ';' before 'GPIO_InitStructure'
[cc] D:\STM32F4\lib\LIBRIARY\FlashTest\USB\usb_bsp.c:310:25: error: 'RCC_AHB1Periph_GPIOC' undeclared (first use in this function)
[cc] D:\STM32F4\lib\LIBRIARY\FlashTest\USB\usb_bsp.c:314:2: error: 'GPIO_InitStructure' undeclared (first use in this function)
[cc] D:\STM32F4\lib\LIBRIARY\FlashTest\USB\usb_bsp.c:314:32: error: 'GPIO_Pin_0' undeclared (first use in this function)
[cc] D:\STM32F4\lib\LIBRIARY\FlashTest\USB\usb_bsp.c:315:34: error: 'GPIO_Speed_50MHz' undeclared (first use in this function)
[cc] D:\STM32F4\lib\LIBRIARY\FlashTest\USB\usb_bsp.c:316:33: error: 'GPIO_Mode_OUT' undeclared (first use in this function)
[cc] D:\STM32F4\lib\LIBRIARY\FlashTest\USB\usb_bsp.c:317:34: error: 'GPIO_OType_PP' undeclared (first use in this function)
[cc] D:\STM32F4\lib\LIBRIARY\FlashTest\USB\usb_bsp.c:318:33: error: 'GPIO_PuPd_NOPULL' undeclared (first use in this function)
[cc] D:\STM32F4\lib\LIBRIARY\FlashTest\USB\usb_bsp.c: In function 'USB_OTG_BSP_TimeInit':
[cc] D:\STM32F4\lib\LIBRIARY\FlashTest\USB\usb_bsp.c:339:2: error: 'NVIC_InitTypeDef' undeclared (first use in this function)
[cc] D:\STM32F4\lib\LIBRIARY\FlashTest\USB\usb_bsp.c:339:19: error: expected ';' before 'NVIC_InitStructure'
[cc] D:\STM32F4\lib\LIBRIARY\FlashTest\USB\usb_bsp.c:342:2: warning: implicit declaration of function 'NVIC_SetVectorTable'
[cc] D:\STM32F4\lib\LIBRIARY\FlashTest\USB\usb_bsp.c:342:22: error: 'NVIC_VectTab_FLASH' undeclared (first use in this function)
[cc] D:\STM32F4\lib\LIBRIARY\FlashTest\USB\usb_bsp.c:345:27: error: 'NVIC_PriorityGroup_2' undeclared (first use in this function)
[cc] D:\STM32F4\lib\LIBRIARY\FlashTest\USB\usb_bsp.c:348:2: error: 'NVIC_InitStructure' undeclared (first use in this function)
[cc] D:\STM32F4\lib\LIBRIARY\FlashTest\USB\usb_bsp.c:355:2: warning: implicit declaration of function 'RCC_APB1PeriphClockCmd'
[cc] D:\STM32F4\lib\LIBRIARY\FlashTest\USB\usb_bsp.c:355:25: error: 'RCC_APB1Periph_TIM2' undeclared (first use in this function)
[cc] D:\STM32F4\lib\LIBRIARY\FlashTest\USB\usb_bsp.c: In function 'USB_OTG_BSP_TimerIRQ':
[cc] D:\STM32F4\lib\LIBRIARY\FlashTest\USB\usb_bsp.c:410:2: warning: implicit declaration of function 'TIM_GetITStatus'
[cc] D:\STM32F4\lib\LIBRIARY\FlashTest\USB\usb_bsp.c:410:28: error: 'TIM_IT_Update' undeclared (first use in this function)
[cc] D:\STM32F4\lib\LIBRIARY\FlashTest\USB\usb_bsp.c:412:3: warning: implicit declaration of function 'TIM_ClearITPendingBit'
[cc] D:\STM32F4\lib\LIBRIARY\FlashTest\USB\usb_bsp.c:419:4: warning: implicit declaration of function 'TIM_Cmd'
[cc] D:\STM32F4\lib\LIBRIARY\FlashTest\USB\usb_bsp.c: In function 'BSP_SetTime':
[cc] D:\STM32F4\lib\LIBRIARY\FlashTest\USB\usb_bsp.c:451:2: error: 'TIM_TimeBaseInitTypeDef' undeclared (first use in this function)
[cc] D:\STM32F4\lib\LIBRIARY\FlashTest\USB\usb_bsp.c:451:27: error: expected ';' before 'TIM_TimeBaseStructure'
[cc] D:\STM32F4\lib\LIBRIARY\FlashTest\USB\usb_bsp.c:454:2: warning: implicit declaration of function 'TIM_ITConfig'
[cc] D:\STM32F4\lib\LIBRIARY\FlashTest\USB\usb_bsp.c:454:21: error: 'TIM_IT_Update' undeclared (first use in this function)
[cc] D:\STM32F4\lib\LIBRIARY\FlashTest\USB\usb_bsp.c:459:3: error: 'TIM_TimeBaseStructure' undeclared (first use in this function)
[cc] D:\STM32F4\lib\LIBRIARY\FlashTest\USB\usb_bsp.c:467:42: error: 'TIM_CounterMode_Up' undeclared (first use in this function)
[cc] D:\STM32F4\lib\LIBRIARY\FlashTest\USB\usb_bsp.c:469:2: warning: implicit declaration of function 'TIM_TimeBaseInit'
[cc] D:\STM32F4\lib\LIBRIARY\FlashTest\USB\usb_bsp.c:472:2: warning: implicit declaration of function 'TIM_ARRPreloadConfig'
[cc] D:\STM32F4\lib\LIBRIARY\FlashTest\stm32f4xx_exti.c: In function 'EXTI_Init':
[cc] D:\STM32F4\lib\LIBRIARY\FlashTest\stm32f4xx_exti.c:124:3: warning: implicit declaration of function 'assert_param'
[cc] D:\STM32F4\lib\LIBRIARY\FlashTest\stm32f4xx_tim.c: In function 'TIM_DeInit':
[cc] D:\STM32F4\lib\LIBRIARY\FlashTest\stm32f4xx_tim.c:197:3: warning: implicit declaration of function 'assert_param'

BUILD FAILED
Total time: 5 seconds
glags
hd44780, я не хочу прописывать пути не из-за вредности, а просто не хочу хранить лишний мусор в своём проекте. Хочу выбрать только необходимое. Вам большое спасибо, за терпение и помощь, то обычно на форуме делают попытки помочь, а как надоедает, то бросают на пол пути. Для меня этот проект очень важен и я буду прилагать максимум усилий чтоб добиться результата. rolleyes.gif
hd44780
Я скачал Ваш проект, посмотрю.
Результат будет, наверное, завтра.
hd44780
Наклепал пока на IAR-е. Никаких внешних зависимостей, всё в себе.
В архиве только нужные файлы, мусора вроде нет.

Пошёл кокос ставить, ибо нет его у меня ....
glags
Цитата(hd44780 @ May 17 2013, 10:48) *
Наклепал пока на IAR-е. Никаких внешних зависимостей, всё в себе.
В архиве только нужные файлы, мусора вроде нет.

Пошёл кокос ставить, ибо нет его у меня ....

А скайп или ася у Вас есть? Может так быстрее будет.
hd44780
ICQ# кинул в личку ..

Ловите под кокос. НА ЖЕЛЕЗКЕ НЕ ПРОВЕРЕНО!
glags
Цитата(hd44780 @ May 17 2013, 13:05) *
ICQ# кинул в личку ..

Ловите под кокос. НА ЖЕЛЕЗКЕ НЕ ПРОВЕРЕНО!

Вот свежая библиотека FATFS, её можно прикрутить?
hd44780
С новым FatFs под кокос и под IAR.
demiurg_spb
Решил собрать приложенный проект компилятором версии arm-none-eabi-gcc-4.7.2 и получил весьма полезные предупреждения.
Так что тем кто будет пользоваться STM32_USB_HOST_Library стоит обратить внимание...
Код
[cc] Z:\Projects\coocox\FlashTest_WithLibs-Coocox\Libraries\STM32_USB_HOST_Library\Class\usbh_msc_scsi.c:145:37: warning: array subscript is above array bounds [-Warray-bounds]
[cc] Z:\Projects\coocox\FlashTest_WithLibs-Coocox\Libraries\STM32_USB_HOST_Library\Class\usbh_msc_scsi.c:217:37: warning: array subscript is above array bounds [-Warray-bounds]
[cc] Z:\Projects\coocox\FlashTest_WithLibs-Coocox\Libraries\STM32_USB_HOST_Library\Class\usbh_msc_scsi.c:303:37: warning: array subscript is above array bounds [-Warray-bounds]
[cc] Z:\Projects\coocox\FlashTest_WithLibs-Coocox\Libraries\STM32_USB_HOST_Library\Class\usbh_msc_scsi.c:401:37: warning: array subscript is above array bounds [-Warray-bounds]
[cc] Z:\Projects\coocox\FlashTest_WithLibs-Coocox\Libraries\STM32_USB_HOST_Library\Class\usbh_msc_scsi.c:493:37: warning: array subscript is above array bounds [-Warray-bounds]
[cc] Z:\Projects\coocox\FlashTest_WithLibs-Coocox\Libraries\STM32_USB_HOST_Library\Class\usbh_msc_scsi.c:583:37: warning: array subscript is above array bounds [-Warray-bounds]
[cc] Z:\Projects\coocox\FlashTest_WithLibs-Coocox\Libraries\STM32_USB_HOST_Library\Class\usbh_msc_bot.c:352:36: warning: array subscript is above array bounds [-Warray-bounds]
glags
Я извиняюсь за безграмотность, но что это значит. Можно как для чайника?
demiurg_spb
Это значит, что при обращении к массиву, происходит выход за его пределы.
Типа того:
Код
extern int a[5];
for (int i=5; i>0; i--) // бага
{
   a[i] = 0;
}
Что при первой-же итерации цикла вызовет ошибку выполнения если после массива лежат какие-то другие переменные.
glags
Цитата(demiurg_spb @ May 17 2013, 16:33) *
Это значит, что при обращении к массиву, происходит выход за его пределы.
Типа того:
Код
extern int a[5];
for (int i=5; i>0; i--) // бага
{
   a[i] = 0;
}
Что при первой-же итерации цикла вызовет ошибку выполнения если после массива лежат какие-то другие переменные.

Это ошибка компилятора? Если да как с этим бороться? sad.gif
hd44780
Народ, а чего у меня такого нету?

У меня только файл нулевого размера получается wacko.gif

Правильно и делаю, что IAR пользую sm.gif . На AT91SAM7S полгода писал - нормально, на STM32F4 - с января, тоже нормально ...
mdmitry
Цитата(glags @ May 17 2013, 18:00) *
Это ошибка компилятора? Если да как с этим бороться? sad.gif

Нет, это ошибка программиста. Элементов массива всего 5, а наибольший допустимый индекс 4 из примера demiurg_spb. 5 недопустимый индекс, будет выход за границу массива.
glags
Цитата(mdmitry @ May 17 2013, 19:16) *
Нет, это ошибка программиста. Элементов массива всего 5, а наибольший допустимый индекс 4 из примера demiurg_spb. 5 недопустимый индекс, будет выход за границу массива.

Понял, сначала не обратил внимания. Но у меня при компиляции таких ошибок не возникало. Помогите победить файл нулевого размера , при компиляции в кокосе. Файл из сообщения #22. rolleyes.gif
demiurg_spb
Цитата(hd44780 @ May 17 2013, 19:41) *
Правильно и делаю, что IAR пользую sm.gif
Чего тут правильного, если он не отлавливает такие баги в программе, а свежий gcc ловит?
hd44780
Цитата(demiurg_spb @ May 18 2013, 13:11) *
Чего тут правильного, если он не отлавливает такие баги в программе, а свежий gcc ловит?


1. Какие баги, если прога работает? Проверьте сами, скомпиленный IAR-ом вариант там есть в архиве.
2. Хорошо, баги есть. Согласен на 200%. Они всегда есть rolleyes.gif . И довольн серъёзные баги, раз он выходной файл не генерит crying.gif . Тогда почему нет ни единого сообщения об ошибках (скрин я давал выше)? Вместо этого тупо выходной файл нулевого размера wacko.gif blink.gif . Если я чего-то ему недодал, пусть выдаст внятное сообщение об ошибке, что в проекте чего-то не хватает и т.п.

Человек просил работу с флешкой, я дал вариант.
Вы меня извините, но не хочу я разбираться с особенностями кокоса/gcc. У меня и без их закидонов дел выше крыши.
Кто хочет - пожалуйста изучайте. Если найдёте у меня ошибку, буду только благодарен.

Могу дать ссылку на проект под STM32F103 (не мой) на том же кокосе. Проект серъёзный - 2-канальный 100 мегагерцовый цифровой осц.
Там вообще, на мой взгляд, бред, тупость и маразм. Начинаю компилить, он делает в Temp какие-то asm файлы, видимо сгенерённые сишным компилером и на них же ругается, что там неверные ассемблерные команды. Как это расценить?
demiurg_spb
Цитата(hd44780 @ May 19 2013, 11:41) *
1. Какие баги, если прога работает? Проверьте сами, скомпиленный IAR-ом вариант там есть в архиве.
2. Хорошо, баги есть. Согласен на 200%. Они всегда есть rolleyes.gif . Тогда почему нет ни единого сообщения об ошибках (скрин я давал выше)?
Потому что вы использовали более старую версию gcc, думаю что 4.4.х...4.6.х.
А то что программа работает - это счастливая случайность...

Цитата
Вместо этого тупо выходной файл нулевого размера. Если я чего-то ему недодал, пусть выдаст внятное сообщение об ошибке, что в проекте чего-то не хватает и т.п.
Никто никому ничем не обязан... Я тоже не пользуюсь кокосом - у меня все проекты make-управляемые и такое поведение с нулевым выходным файлом связано как-правило с ошибками в скрипте линкера...

Цитата
Вы меня извините, но не хочу я разбираться с особенностями кокоса/gcc. У меня и без их закидонов дел выше крыши.
Кто хочет - пожалуйста. Буду только благодарен.

Могу дать ссылку на проект под STM32F103 (не мой) на том же кокосе. Проект серъёзный - 2-канальный 100 мегагерцовый цифровой осц.
Там вообще, на мой взгляд, бред, тупость и маразм. Начинаю компилить, он делает в Temp какие-то asm файлы, видимо сгенерённые сишным компилером и на них же ругается, что там неверные ассемблерные команды. Как это расценить?
Как обоснованное нежелание разобраться с gcc и только.
hd44780
Цитата(demiurg_spb @ May 19 2013, 10:52) *
такое поведение с нулевым выходным файлом связано как-правило с ошибками в скрипте линкера...


О таких ошибках тоже надо как-то внятно сообщать. Он же сообщит об ошибке, если я начну писать не а C++, а на C#.

GCC - gcc-arm-none-eabi-4_7-2013q1-20130313-win32.exe , отсюда - https://launchpad.net/gcc-arm-embedded/+download . Ссылка с сайта кокоса.
demiurg_spb
Цитата(hd44780 @ May 19 2013, 11:59) *
О таких ошибках тоже надо как-то внятно сообщать. Он же сообщит об ошибке, если я начну писать не а C++, а на C#.

Линкер работает после компилятора и о синтаксических ошибках ничего не знает, а вот что в какую секцию разместить он просто получает сверху в виде скрипта и если так случилось, что в секцию текст ничего не надо класть - это не его вина.
Вы же увидели вывод программы size о размере секций - что ещё нужно?

Цитата
GCC - gcc-arm-none-eabi-4_7-2013q1-20130313-win32.exe , отсюда - https://launchpad.net/gcc-arm-embedded/+download . Ссылка с сайта кокоса.
Понятно, у меня взято с сайта атмела в составе студии...
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.