Перейти к содержанию
    

zorromen

Свой
  • Постов

    335
  • Зарегистрирован

  • Посещение

Весь контент zorromen


  1. STM32CubeIDE

    Ну с кейла я и и перешёл на куб, конечно кейл быстрее работает отладка, но сам редактор совсем не меняется, подсветка и особенно важен для меня, это список функций в файле, ибо листать код уже надоело, он как бы и есть, но реализован ужасно. Ну и я перешёл чисто на c++, все свои библиотеки уже на нем делаю что-то были моменты с этим, чего я и пересел на куб, да и это разные программы и компиляторы, ибо асемблер и всякие предпроцесорные команды различаются между ними, уже на чем-то одном хочется остаться.
  2. STM32CubeIDE

    Значит не один я так мучаюсь, есть кучка самописных библиотек, и когда добавляешь в проекты, только и сидишь каждой папке прописываешь пути, а если таких папок 10 штук, почему и спросил, чтобы в одном месте прописать и забыть, а не в каждой папке, особенно весело когда они друг от друга зависят.
  3. STM32CubeIDE

    А кто знает такой момент, который нормально работает в Keil, но тут не могу въехать, короче есть папка inc и она доступна всему проекту, где бы я не написал include, в любой папке она доступна везде, но если у меня например 10 папок и в каждой есть свой heder, я не могу заставить чтобы они были видны везде, приходится прописывать каждой папке патчи, мол, смотри нужный тебе инклуд там, в кейле прописал один раз мол там есть инклуды, и не морочишь голову, тут не пойму как заствить чтобы все 10 папок были доступны как inc всему проекту.
  4. Так от сюда и возьмите http://we.easyelectronics.ru/STM32/programmnyy-dekoder-mp3-perehod-na-platformu-stm32f407.html только под себя настроите. Так код рабочий вполне.После коррекции DMA открывает все, но нужно учесть еще и такой вариант, что Стерео может иметь 2304 и 1152, а моно 1152 и 576, https://www.silabs.com/documents/public/application-notes/an1112-efm32-helix-mp3-decoder.pdf Я встретил такие файлы, пришлось подстроиться под этот момент.
  5. Ну у меня тоже был ЦАП, Дискавери плата была, я его выпаял, не помню зачем, положил на полку, и потерял). Вы как работаете с картой, через полинг или дма?
  6. Нашел данный документ, там как раз описан данный баг http://we.easyelectronics.ru/STM32/programmnyy-dekoder-mp3-perehod-na-platformu-stm32f407.html Решил себе поставить, и о чудо, заработало. Да до такого не догадаться вообще, уже не первый день не мог понят почему такое, даже японца нашел, он в своем проекте тоже жаловался на то что не все файлы нормально работали.
  7. Вопросы по mp3 декодеру Helix, имею STM32F407 FreeRTOS SDIO и вывод на DAC, и вроде все хорошо, открывает, даже играет, но какая напасть, больше половины файлов при декодировке имеют ошибки фреймов, самая популярная ошибка это ERR_MP3_INVALID_HUFFCODES. И не понятно что вызывает проблему, ибо файлы из одного альбома, один работает другой нет, теги убраны чтобы не было и духу их, только данные. Может кто знает почему одни файлы как часы работают другие почти все фреймы с ошибкой идут.
  8. STM32CubeIDE

    Ага конечно. Кеил тоже страдает этим. Надоедает что открываются исходники сами, когда их не просят. Только и успевай закрывать.
  9. STM32CubeIDE

    Есть в кейле и тут одна бесящая штука, когда компилишь, то в момент прошивки редактор открывает некоторые исходники, я не знаю по какому принципу он это делает, но уже бесит что работаешь с одним исходником, и ту тебе куча открытых файлов и еще и фокус на них переведен, уже бесит прям. Как это отключить.
  10. STM32CubeIDE

    По поводу Tracealyzer китайцы помогут https://blog.csdn.net/u014360757/article/details/123321651 SystemView запустить не просто, точнее потребует мучений) Идея в том сто сеггер дает только патч который не подходит к STM freertos, нужно руками патчить файлы. И в идеале сразу в репозитории CubeMX чтобы при обновлении проекта не затерлось старые файлы с патчем. Не продумали вообще они этот момент, Tracealyzer не лезет в файлы самой Freertos и поэтому его запустить легче. По вашему патчу, это теперь новая ссылка, старая не работает http://www.nxp.com/lgfiles/updates/Eclipse/KDS
  11. STM32CubeIDE

    Я использовал Tracealyzer и SystemView
  12. Желейность CubeIDE

    Тогда непонятно что переустанавливать, ибо по яве у меня много чего уже стоит, Андроид студия и IntelliJ IDEA, там уже куча JDK для них уже накачано, просто видно прорисовка интерфейса, я и говорю как будно когда видюха без дров, типа не включено аппаратное ускорение при прорисовке интерфейса. Решил Линукс поставить для проверки, и там все приемлемо стало, явно быстрее работает, видно в винде что-то творится.
  13. Желейность CubeIDE

    Здравствуйте, подскажите что можно сделать с торомзнутостью работы CubeIDE, имею нормальное железо рязань7 1700x 16g gtx1070, чего вполне должно хватать для нормальной работы, но этот эклипс ведет себя как будто нет дров на видеокарту, а они есть, когда отрываешь настройки дивно как элементы подгружаются, а не вжык и готово. Keil вообще летет можно сказать, по сравнению с данным IDE. Вообще возможно ускорить этот эклипс? Вангую что нужно ставить Linux и там попробовать, но желейность общей работы, уже начала напрягать, все работает как будто у меня комп на пентиум4. На скорость компиляции не жалуюсь, только рендер интерфейса, ибо видно что именно там проблема.
  14. Разобрался, все не так, куб кидает при генерации port.c и portmacro.h из папки \RVDS\ARM_CM4F которая для 5 компилятора, 6 не принимает такого, и ему нужны файлы с \GCC\ARM_CM4F. Когда их скормил, тогда и пошла компиляция.
  15. KEIL, ARM Compiler 6.XX, FreeRTOS

    Здравствуйте, все мои попытки скомпилировать пустой проект от куба, с FreeRTOS и компилятором 6, не имели успеха, только на версии 5 все компилируется, вы скажите, ну таки и пользуйся 5 версией компилятора, а я скажу что она вешает мой компьютер и скорость компиляции очень маленькая, на 6 все быстро происходит. ../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F/port.c(439): error: expected '(' after 'asm' ../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F/port.c(283): error: use of undeclared identifier 'PRESERVE8' ../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F\portmacro.h(167): error: unknown type name '__forceinline' Ругается на port.c и portmacro.h 115 ошибок У кого получалось запустить это дело?
  16. Патч для FREERTOS я сделал, все как указано в официальном патче только с поправкой на ветер. И работает он только для него. Для вас можно посмотреть в сторону NoOS, и там можно сделать тоже самое, читаем документацию от SysnemView, там что-то с создать таск и все такое, сам когда-то такое писал чтобы видеть как работают свои функции, ну и самое мое любимое это смотреть за работой прерываний. Особенно находил визуально косяки, что требовали изменения приоритетов. Например, для прерываний конструкция void DMA1_Channel5_IRQHandler(void) { SEGGER_SYSVIEW_RecordEnterISR(); SEGGER_SYSVIEW_RecordExitISR(); } Ищем в исходниках _cbSendSystemDesc в конфигах segger, добавляем I#31=DMA1_5 UART RX И теперь в SystemView при прерывании 31 дается имя DMA1_5 UART RX static void _cbSendSystemDesc(void) { SEGGER_SYSVIEW_SendSysDesc("N="SYSVIEW_APP_NAME",D="SYSVIEW_DEVICE_NAME",O=FreeRTOS"); SEGGER_SYSVIEW_SendSysDesc("I#15=SysTick,I#31=DMA1_5 UART RX"); }
  17. SEGGER SystemView для FREERTOS10

    Здравствуйте, кто еще не пользовался данной программой от SEGGER тот много потерял. Все хорошо, удобно, но если использовать как для NO_OS, но если нужно использовать с STM32 FREERTOS10 от CubeMX, тот патч рельно отличается от того что идет от ST, только 2 файла из 5 подходят. Кто как патчит, как народ выкручивается? Я написал для себя патчер на лазарусе. Для M3 и M4F ядер, все прикручивал чисто к CubeMX. Инструкция 1. Кидаем в \Middlewares\Third_Party проекта Там кучка батников и мелких консольных прог, каждая патчит свой файл, поэтому не пугаемся. 2. Т.к. я такой еще программер, поэтому делаем по индуски, следующее, FREERTOS_Config.exe копируем в корень проекта И делаем на него ярлык и его копируем в папку SEGGER_FREERTOS_Patcher, это для батника чтобы легче запускать. 3. Запускаем Пропачтить M3.bat или Пропачтить M4.bat, готово, но учтите запускать один раз после генерации проекта, иначе если 10 раз нажать, то 10 раз пропатчит, это ерунда будет. Добавил батники Backup_In.bat и Backup_Out.bat это для бекапа 5 файлов в папку, и обратно в FREERTOS, ну это если кому нужно. Прога патчит абсолютно все что меняет CubeMX. Настройка муторная, но потом запускаете батник и готово. Думаю тем кто занимается FREERTOS будет интересно. SEGGER_FREERTOS_Patcher.rar
  18. Какие мануалы, как отец говорит, все должно работать само, ведь пишем на языке высокого уровня.
  19. Посмотрите мою тему, там может что и увидите подходящее. http://electronix.ru/forum/index.php?showtopic=129361
  20. STM32f4 + emWin

    Есть stm32F429, вроде все из примера запустилось само и работает, скажите, а emWin использует ускоритель DMA2D по умолчанию? И какие накладываются ограничения, на работу, ну типа многослойность или еще что.
  21. То будет не критично, вообще еще дурной вопрос. Нужно будет ловить импульс ответа, и измерить его длину, тут особых проблем не обнаружил, но реализация несколько смущает. Настройка порта на внешнее прерывание, тут настроил на передний фронт, но в самом прерывании после получения переднего фронта перенастраиваю на задний фронт. Сперва делал чтобы прерывание было от обоих фронтов сразу, но зайдя в прерывание тогда не получалось понять какой именно фронт его вызвал, почему-то чтение пина всегда возвращало 0. Сам импульс около 10 mS. Поэтому решил делать с переключением в прерывании. /*Configure GPIO pin : PE2 */ GPIO_InitStruct.Pin = GPIO_PIN_2; GPIO_InitStruct.Mode = GPIO_MODE_IT_RISING; GPIO_InitStruct.Pull = GPIO_NOPULL; HAL_GPIO_Init(GPIOE, &GPIO_InitStruct); /* EXTI interrupt init*/ HAL_NVIC_SetPriority(EXTI2_IRQn, 0, 0); HAL_NVIC_EnableIRQ(EXTI2_IRQn); void EXTI2_IRQHandler(void) { if ((EXTI->RTSR >> 2) & 1) { ........... EXTI->RTSR = 0; //Otkl rising EXTI->FTSR = 0x4; //Vkl Filling } else { ........... EXTI->RTSR = 4; //Vkl rising EXTI->FTSR = 0; //Otkl Filling } EXTI->PR |=0x04; }
  22. Ну принудительное обновления, я как раз и реализовал, а что такое штатная работа, это когда все на оборот, странно такой фигни например не помню когда програмил AVR и lpc2148.
  23. Упорство победило, если хотят играть по своим правилам, то по ним и с играем. После настройки в прерывании регистров, создаю новое прерывание и ref_register=1, в него заходим сразу после данного прерывания и тем самым обновляем теневые регистры PSC и ARR, и все заработало как нужно. Очень странно видеть, что сколько читал русскую документацию, не все объясняется, только в даташите нашел, что PSC тоже имеет теневой регистр. Настройка TIM6->PSC = 143; TIM6->ARR = 62499; //100 mS TIM6->DIER = TIM_DIER_UIE; TIM6->CR1 |= TIM_CR1_CEN | TIM_CR1_OPM | TIM_CR1_ARPE; void TIM6_DAC_IRQHandler(void) { if (ref_register == 0) { switch (UV_state) { case 0: TIM6->PSC = 0; TIM6->ARR = 0x707;//1799; //20 uS TIM6->CNT = 0; TIM6->EGR = TIM_EGR_UG; //Создать прерывание для обновления регистров ref_register = 1; //Обновить регистры TIM6->CR1 |= TIM_CR1_CEN; HAL_GPIO_WritePin(GPIOE, GPIO_PIN_5, GPIO_PIN_SET); UV_state = 1; break; case 1: TIM6->PSC = 0x008f;//143 TIM6->ARR = 0xF423;//62499; // 100 mS TIM6->CNT = 0; ref_register = 1; //Обновить регистры TIM6->EGR = TIM_EGR_UG; //Создать прерывание для обновления регистров TIM6->CR1 |= TIM_CR1_CEN; HAL_GPIO_WritePin(GPIOE, GPIO_PIN_5, GPIO_PIN_RESET); UV_state = 0; break; } } else { TIM6->SR = 0; ref_register = 0; } }
  24. А если это делать в прерывании, не вызовет ли это прерывание снова? Пока проверить не могу.
  25. Но ведь PSC тоже с буфером, и он вроде не отключается, и логично чтобы ARR и PSC обновились одновременно, чувствую что нужно использовать UG, но как не понял. Если не трогать вообще PSC, то все работает, управляется ARR без буфера, а если нужно менять еще и PSC?
×
×
  • Создать...