|
|
  |
STM32F429IDISCOVERY, просто вкусняшка и недорогая |
|
|
|
Nov 14 2013, 16:48
|
Гуру
     
Группа: Свой
Сообщений: 2 724
Регистрация: 14-05-07
Из: Ярославль, Россия
Пользователь №: 27 702

|
Цитата(kernel @ Nov 14 2013, 20:41)  adnega, нет, ветку-то прочитал и даже сообщения эти видел. Но так и не понял из этих сообщений, это у всех так должно быть? Что нужно сделать, кварц заменить? Извиняюсь за дилетантизм в своих вопросах, просто STM32 в глаза сегодня впервые увидел. А попробовать USB Mass Storage уже "руки чешутся"...  Итого: "из коробки" у меня не заработало. Отбросил SB18 (перемычка на плате) и подал на плату внешний клок ~7.46МГц. После этого флешка начала определятся и заработали примеры роликов. Сделать свой ролик, та еще работенка - нужен спец конвертер, с преобразованием видео к 320х240@15fps (в итоге сделал, но тормозит). Из исходников проект не собирал - пока нет времени(
|
|
|
|
|
Nov 14 2013, 18:34
|

Гуру
     
Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237

|
Цитата(adnega @ Nov 14 2013, 20:48)  Итого: "из коробки" у меня не заработало. Отбросил SB18 (перемычка на плате) и подал на плату внешний клок ~7.46МГц. После этого флешка начала определятся и заработали примеры роликов. Сделать свой ролик, та еще работенка - нужен спец конвертер, с преобразованием видео к 320х240@15fps (в итоге сделал, но тормозит). Из исходников проект не собирал - пока нет времени( Я про это уже писала: Цитата(Xenia @ Oct 31 2013, 20:39)  Ларчик просто открывался - для нормальной работы USB_OTG годятся только частоты, кратные 24 МГц, например: 168 или 192. А 180 МГц на 24 нацело не делится. Исправьте в проекте множитель частоты, переключив плату с 180 МГц на 168 МГц и все наладится. Ибо тогда такое переключение будет эквивалентно уменьшению частоты кварца на том же множителе до: 8*168/180=7.466..., что вы и доказали экспериментально. "Пересобирание проекта" ничего вам не даст. А замена кварца вместо замены множителя, мне кажется крывым путем.
|
|
|
|
|
Nov 14 2013, 20:58
|

Гуру
     
Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237

|
Цитата(adnega @ Nov 15 2013, 00:14)  Может я не корректно выразился, но для меня "исправьте в проекте множитель" и "пересобирание проекта (разумеется с поправлеными честотами)" вещи эквивалентные. Встречный вопрос: а могли бы Вы выложить hex или bin с поправленным множителем (до 168МГц)? У многих бы вопросы сразу отпали)). В файле system_stm32f4xx.c переправьте константу PLL_N с 360 на 336, после чего рабочая частота уменьшится со 180 МГц до 168 МГц. Это всё, что надо сделать! А частота USB уменьшится сама, т.к. она производная от рабочей частоты, и там коэффицент деления установлен правильно. P.S. Если за фразой "пересобирание проекта" вы понимаете необходимость перекомпиляции проекта, то тогда верно - перекомпиляция здесь необходима, т.к. PLL_N не переменная (место которой можно было бы найти в бинарнике и переправить), а константа, с помощью которой вычисляются многие другие величины. P.P.S. EWARM 6.60 компилирует правильно, но глючит при отладке (для STM32F429), тогда как в последней версии 6.70 с этим, кажется, всё в порядке.
|
|
|
|
|
Nov 15 2013, 21:29
|
Знающий
   
Группа: Свой
Сообщений: 875
Регистрация: 28-10-05
Пользователь №: 10 245

|
Цитата(sherr @ Nov 5 2013, 22:39)  Сегодня с матами-перематами запихнул три родных примера (графика) в Eclipse Kepler + ARM GCC 4.7.1 - 2013q3. Поправил несколько мелких ошибок в исходниках, ... Пытаюсь под windows7 наладить работу этой связки Eclipse Kepler + Eclipse CDT Extension for GNU ARM Toolchains + GNU Tools for ARM Embedded Processors Настраивал по http://gnuarmeclipse.livius.net/blog/install/ Простые примеры собираются без проблем, а вот пример для "stm32f4xx StdPeriph Lib 1.2 C Project" из темплейта CDT Extension for GNU ARM Toolchains не собирается. Вот такие сообщения вылезают: Код **** Incremental Build of configuration Debug for project test_f4 **** make all 'Building file: ../libs/StdPeriph/src/stm32f4xx_fsmc.c' 'Invoking: Cross ARM C Compiler' arm-none-eabi-gcc -mcpu=cortex-m4 -mthumb -mfloat-abi=hard -mfpu=fpv4-sp-d16 -O0 -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -Wall -g3 -DSTM32F429_439xx -DUSE_STDPERIPH_DRIVER -DHSE_VALUE=8000000 -DDEBUG -I"../include" -I"../libs/CMSIS/include" -I"../libs/StdPeriph/include" -I"../libs/misc/include" -MMD -MP -MF"libs/StdPeriph/src/stm32f4xx_fsmc.d" -MT"libs/StdPeriph/src/stm32f4xx_fsmc.d" -c -o "libs/StdPeriph/src/stm32f4xx_fsmc.o" "../libs/StdPeriph/src/stm32f4xx_fsmc.c" ../libs/StdPeriph/src/stm32f4xx_fsmc.c: In function 'FSMC_NORSRAMDeInit': ../libs/StdPeriph/src/stm32f4xx_fsmc.c:129:5: error: 'FSMC_Bank1' undeclared (first use in this function) ../libs/StdPeriph/src/stm32f4xx_fsmc.c:129:5: note: each undeclared identifier is reported only once for each function it appears in ../libs/StdPeriph/src/stm32f4xx_fsmc.c:137:3: error: 'FSMC_Bank1E' undeclared (first use in this function) ../libs/StdPeriph/src/stm32f4xx_fsmc.c: In function 'FSMC_NORSRAMInit': ../libs/StdPeriph/src/stm32f4xx_fsmc.c:173:3: error: 'FSMC_Bank1' undeclared (first use in this function) ../libs/StdPeriph/src/stm32f4xx_fsmc.c:210:5: error: 'FSMC_Bank1E' undeclared (first use in this function) ../libs/StdPeriph/src/stm32f4xx_fsmc.c: In function 'FSMC_NORSRAMCmd': ../libs/StdPeriph/src/stm32f4xx_fsmc.c:281:5: error: 'FSMC_Bank1' undeclared (first use in this function) ../libs/StdPeriph/src/stm32f4xx_fsmc.c: In function 'FSMC_NANDDeInit': ../libs/StdPeriph/src/stm32f4xx_fsmc.c:354:5: error: 'FSMC_Bank2' undeclared (first use in this function) ../libs/StdPeriph/src/stm32f4xx_fsmc.c:363:5: error: 'FSMC_Bank3' undeclared (first use in this function) ../libs/StdPeriph/src/stm32f4xx_fsmc.c: In function 'FSMC_NANDInit': ../libs/StdPeriph/src/stm32f4xx_fsmc.c:422:5: error: 'FSMC_Bank2' undeclared (first use in this function) ../libs/StdPeriph/src/stm32f4xx_fsmc.c:429:5: error: 'FSMC_Bank3' undeclared (first use in this function) ../libs/StdPeriph/src/stm32f4xx_fsmc.c: In function 'FSMC_NANDCmd': .........Еще много строк про FSMC_Bank .......... make: *** [libs/StdPeriph/src/stm32f4xx_fsmc.o] Ошибка 1
01:23:02 Build Finished (took 5s.921ms) Как это победить, вроде все FSMC_Bank объявлены в stm32f4xx.h который лежит в CMSIS\include.
|
|
|
|
|
Nov 16 2013, 11:29
|
Знающий
   
Группа: Свой
Сообщений: 875
Регистрация: 28-10-05
Пользователь №: 10 245

|
Цитата(Сергей Борщ @ Nov 16 2013, 12:28)  А включен ли этот файл в исходник? Если включен, то не обрамлены ли эти определения каким-нибудь #ifdef не опеределенного в вашем проекте символа? Я тестовый проект создавал по этому описанию http://gnuarmeclipse.livius.net/blog/test-project/ Для "stm32f10x StdPeriph Lib 3.5 C Project" и "stm32f3xx StdPeriph Lib 1.0 C Project" сборка проекта происходит без ошибок, а для "stm32f4xx StdPeriph Lib 1.2 C Project" лезут ошибки как для stm32f401xx так и для stm32f429_439xx , я не думаю что они не проверяли на сборку тестовый проект. Но у меня чего то не хватает, а вот чего, найти не могу.
|
|
|
|
|
Nov 16 2013, 14:15
|
Местный
  
Группа: Участник
Сообщений: 257
Регистрация: 10-06-06
Из: Ставрополь
Пользователь №: 17 955

|
Цитата(Lagman @ Nov 16 2013, 15:29)  Я тестовый проект создавал по этому описанию http://gnuarmeclipse.livius.net/blog/test-project/ Для "stm32f10x StdPeriph Lib 3.5 C Project" и "stm32f3xx StdPeriph Lib 1.0 C Project" сборка проекта происходит без ошибок, а для "stm32f4xx StdPeriph Lib 1.2 C Project" лезут ошибки как для stm32f401xx так и для stm32f429_439xx , я не думаю что они не проверяли на сборку тестовый проект. Но у меня чего то не хватает, а вот чего, найти не могу. 1. я файл ,,,stm32f4xx_fsmc.c просто удалил из проекта до лучших времён... 2. Какой версией плагина пользуетесь - если последней 1,15 - то там вообще тихий ужас с вынесением стартапа в три С-файла, причем с ошибками, предпоследняя работает адекватнее, только надо перенести в проект папку STM32F429I-Discovery из софта идущего к данной плате, а для сборки более сложных проектов взять оттуда же .ld скрипт и поправить кое-что в .s файле ... Короче вот демопроект рисования на тачскрине, который собирается
F429_ts.zip ( 1.04 мегабайт )
Кол-во скачиваний: 115Eclipse Kepler SP1 + GnuARM toolchain - 4.7.1 -2013q3 (OS - Linux Debian 6 , но это не важно).
|
|
|
|
|
Nov 16 2013, 15:47
|
Знающий
   
Группа: Свой
Сообщений: 875
Регистрация: 28-10-05
Пользователь №: 10 245

|
Цитата(sherr @ Nov 16 2013, 18:15)  1. я файл ,,,stm32f4xx_fsmc.c просто удалил из проекта до лучших времён... 2. Какой версией плагина пользуетесь - если последней 1,15 - то там вообще тихий ужас с вынесением стартапа в три С-файла, причем с ошибками, предпоследняя работает адекватнее, только надо перенести в проект папку STM32F429I-Discovery из софта идущего к данной плате, а для сборки более сложных проектов взять оттуда же .ld скрипт и поправить кое-что в .s файле ... Короче вот демопроект рисования на тачскрине, который собирается
F429_ts.zip ( 1.04 мегабайт )
Кол-во скачиваний: 115Eclipse Kepler SP1 + GnuARM toolchain - 4.7.1 -2013q3 (OS - Linux Debian 6 , но это не важно). Ага, stm32f4xx_fsmc.c тоже убрал из проекта (посмотрел в IARe что он не участвует в сборке проекта). Но сейчас другая ошибка вылезла Код 'Building file: ../libs/CMSIS/src/vectors_stm32f4xx.c' 'Invoking: Cross ARM C Compiler' arm-none-eabi-gcc -mcpu=cortex-m4 -mthumb -mfloat-abi=soft -O0 -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -Wall -g3 -DSTM32F429_439xx -DUSE_STDPERIPH_DRIVER -DHSE_VALUE=8000000 -DDEBUG -I"../include" -I"../libs/CMSIS/include" -I"../libs/StdPeriph/inc" -I"../libs/misc/include" -MMD -MP -MF"libs/CMSIS/src/vectors_stm32f4xx.d" -MT"libs/CMSIS/src/vectors_stm32f4xx.d" -c -o "libs/CMSIS/src/vectors_stm32f4xx.o" "../libs/CMSIS/src/vectors_stm32f4xx.c" ../libs/CMSIS/src/vectors_stm32f4xx.c:411:5: error: expected '}' before 'UART7_IRQHandler' make: *** [libs/CMSIS/src/vectors_stm32f4xx.o] Error 1 Спасибо за проект. Еще покопаюсь и если не получится попробую ваш проект. Использую последний eclipse + последняя версия плагина. P.S. Скомпилировал и прошил проект от sherr, все работает. Значит CMSIS (стартап файлы) из плагина для эклипса у меня неверно компилируются, попробую по старым рекомендациям.
|
|
|
|
|
Nov 16 2013, 19:36
|
Местный
  
Группа: Участник
Сообщений: 257
Регистрация: 10-06-06
Из: Ставрополь
Пользователь №: 17 955

|
Цитата(Lagman @ Nov 16 2013, 19:47)  Ага, stm32f4xx_fsmc.c тоже убрал из проекта (посмотрел в IARe что он не участвует в сборке проекта). Но сейчас другая ошибка вылезла Код 'Building file: ../libs/CMSIS/src/vectors_stm32f4xx.c' 'Invoking: Cross ARM C Compiler' arm-none-eabi-gcc -mcpu=cortex-m4 -mthumb -mfloat-abi=soft -O0 -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -Wall -g3 -DSTM32F429_439xx -DUSE_STDPERIPH_DRIVER -DHSE_VALUE=8000000 -DDEBUG -I"../include" -I"../libs/CMSIS/include" -I"../libs/StdPeriph/inc" -I"../libs/misc/include" -MMD -MP -MF"libs/CMSIS/src/vectors_stm32f4xx.d" -MT"libs/CMSIS/src/vectors_stm32f4xx.d" -c -o "libs/CMSIS/src/vectors_stm32f4xx.o" "../libs/CMSIS/src/vectors_stm32f4xx.c" ../libs/CMSIS/src/vectors_stm32f4xx.c:411:5: error: expected '}' before 'UART7_IRQHandler' make: *** [libs/CMSIS/src/vectors_stm32f4xx.o] Error 1 В файле vectors_stm32f4xx.c генерируемого плагином не хватает кучи запятых, первая - там, где говорит компилятор, далее - по аналогии ,,, но даже когда вы это устраните, будет ругаться на неопределённый символ end в одном из .ld файлов, а в них я пока слаб  Проект с просмотром BMP c USB-flash вообще собрать под GCC не смог ( Кейл 4,73 собирает нормально) Поэтому присматриваюсь к немецкому проекту F429 - там всё попроще, и собрал пару примеров, взяв недостающие файлы из проекта, выложенного чуть выше ( в оригинале там под CooCox)
F429_De19.zip ( 1.32 мегабайт )
Кол-во скачиваний: 115 показывает картинки из внутренней флеш и даже с jpeg - декодером на борту .
Сообщение отредактировал sherr - Nov 16 2013, 19:57
|
|
|
|
|
  |
4 чел. читают эту тему (гостей: 4, скрытых пользователей: 0)
Пользователей: 0
|
|
|