Jump to content

    

derun

Свой
  • Content Count

    133
  • Joined

  • Last visited

Community Reputation

0 Обычный

About derun

  • Rank
    Частый гость
  • Birthday 07/17/1978

Контакты

  • Сайт
    http://
  • ICQ
    0

Информация

  • Город
    Украина. Чернигов
  1. Разобрался, неверно передавал параметр адреса. Правильно так: fsmc_addr = 0x60000000; HAL_SRAM_Read_16b(&hsram1, (uint32_t *)fsmc_addr, fsmc_rd, 1);
  2. Доброе время суток, Я пытаюсь получить доступ ко внешней SRAM через FSMC. Память SRAM CY62177EV30LL-55 подключено к NE1. Код инициализации сгенерирован CubeMX. При вызове функции чтения или записи в память нет никакой активности сигналов OE, WE, NE1 . В приложении конфигурационный файл куба. Может кто-то с таким сталкивался. Спасибо. Код примерно такой. Код/* Reset of all peripherals, Initializes the Flash interface and the Systick. */ HAL_Init(); /* Configure the system clock */ SystemClock_Config(); /* Initialize all configured peripherals */ MX_GPIO_Init(); MX_FSMC_Init(); /* USER CODE BEGIN 2 */ fsmc_addr = 0x60000000; HAL_SRAM_Read_16b(&hsram1, &fsmc_addr, fsmc_rd, 1);
  3. Цитата(Uree @ Jun 13 2014, 02:20) Не Cadstar. Может действительно ПАДС? Это похоже PADS-PowerPCB какая-то из последних версий. Судя по номеру в конце файла "2FE18320-6448-11d1-A412-000000000000" Но у меня его нет что бы попробовать открыть.
  4. Цитата(DmitryM @ May 22 2014, 16:03) странно может JRE таки поставить х64? Решил проблему переустановкой Eclipse x64 и Java x64. Только Java не хватило.
  5. После установки плагина Eclipse при запуске выдает ошибку. An error has occurred. See the log file. Как лечить проблему? Пока единственным рабочим решением является перезапись папки configuration из резервной копии. Но желаемого плагина в этом случае у меня нет. платформа Windows7 x64
  6. Цитата(alexf @ May 17 2014, 05:35) Интересно, что я пробовал 3 разных discovery платы с разными процессорами: 103, 303 и 429. На 103 плате стоит ST-LINK V1, про него уже писал. А на 303 - ST-LINK V2, так что с ним работает st-util, который не работал с ST-LINK V1 на Win7. А вот на STM32F429I DISCO плате стоит тоже ST-LINK V2, но с ним почему-то st-util работать отказывается. Зато работает OpenOCD. Но только если я его запускаю ручками. Попытка запускать через "Start OpenOCD locally" Other options: -f stm32f4discovery.conf ничего не запускает. Может потому что не из той дериктории пускает и не знает где dll лежат? Не так страшно, могу и руками стартовать. Кстати так и не понял как задействовать SWO канал. Конечно UARTов хватает, но все же... Думаю что ST-link не поддерживает SWO, Segger J-link поддерживает. Есть его китайские клоны, цена порядка 20$. Но у них свои приколы, слетает прошивка иногда.
  7. Цитата(scifi @ May 21 2014, 11:26) Плохенький листинг. Четыре инструкции просятся, чтобы их вынесли за цикл. Оптимизация по скорости не была включена, видимо. На самом деле мне цикл и не нужен , нужно просто устанавливать порт в нужное состояние. Я использую цикл для наглядности, для проверки сколько времени нужно чтобы порт в нужное состояние установить. Хoтя с оптимизацией надо бы разобраться. У меня Eclipse и GNU Tools ARM Embedded Тут такой опции нет "Speed optimize" есть "Optimize most" Цитата(scifi @ May 21 2014, 11:34) Потому и говорю: оптимальный по скорости результат гарантированно можно получить только при помощи ассемблера. По видимому дальше можно улучшать только ассемблером. Подскажите пожалуйста как правильно оформить ассемблерную вставку, например для этой программы. Спасибо.
  8. Цитата(ViKo @ May 21 2014, 11:24) А оптимизация не задана? Задавал : и без оптимизации и максимальная. На код не влияет.
  9. Цитата(ViKo @ May 21 2014, 10:54) 12 тактов на весь цикл? Многовато. А листинг покажите. GPIOC->BSRRL = (1 << 13); 080002d8: ldr r3, [pc, #16] ; (0x80002ec <main+116>) 080002da: mov.w r2, #8192 ; 0x2000 080002de: strh r2, [r3, #24] 117 GPIOC->BSRRH = (1 << 13); 080002e0: ldr r3, [pc, #8] ; (0x80002ec <main+116>) 080002e2: mov.w r2, #8192 ; 0x2000 080002e6: strh r2, [r3, #26] 120 } 080002e8: b.n 0x80002d8 <main+96> Как-то так
  10. Нужно просто быстро. Порт сконфигурирован на 100 MHz. Попробовал предложенный способ: Код  while (1) {         GPIOC->BSRRH = (1 << 13);       GPIOC->BSRRL = (1 << 13); } Этот вариант работает быстрее получил частоту 14 MHz Думаю этого будет вполне достаточно. Посмотрел код дизассемблером, выглядит прилично думаю врядли смогу его сильно оптимизировать. Спасибо всем за советы и adnega за его вариант решения.
  11. Мне необходимо быстро менять состояние линии порта (програмно, без таймеров и прочего аппаратного). Пишу кусочек кода для проверки скорости функций управления линией порта portC.13. Код while (1) { HAL_GPIO_TogglePin(GPIOC, 1 << 13); } Получаю меандр с частотой порядка 2.4MHz. Это очень медленно. Посмотрел как работает функция и переписал код так: Код  while (1) {       GPIOC->ODR ^= 1 << 13; } Получил меандр 8.4 MHz Уже лучше, но все равно очень медленно. Учитывая что ядро летает на скорости 168 MHz. Подскажите пожалуйста как сделать управление эффестивнее и быстрее.
  12. STMicroelectronics Virtual COM Port

    Цитата(ViKo @ May 13 2014, 12:01) Вот так и пишет, как в подзаголовке показал, скопировал: "Запуск этого устройства невозможен. (Код 10)" Зашиваю прошивку, втыкаю USB разъем, нажимаю сброс, Windows 7 находит устройство, автоматически находит драйвер для него (и вручную ставил - тот же, с сайта ST), устанавливает. После в Диспетчере устройств появляется COM3, но "запуск..." (см. выше). Конфигурация в Cube - простая, выбираю Discovery плату, в ней включаю USB выводы, в USB включаю CDC. Своего не пишу ничего. И так на двух разных платах. Вот есть ссылка с подобной проблемой. https://my.st.com/public/STe2ecommunities/m...rentviews=13131 С x86 не работал, не имею. Версия драйвера - последняя, что есть, 1.3.1 С этим возился дома, сейчас ничего больше сказать не могу. На форуме ST была рекомендация заменить строку: pdev->pClassData = USBD_malloc(sizeof (USBD_CDC_HandleTypeDef)); в файле usbd_cdc.c на : pdev->pClassData = (void *) USBD_malloc(sizeof (USBD_CDC_HandleTypeDef));
  13. STMicroelectronics Virtual COM Port

    Цитата(uriy @ May 13 2014, 11:29) C 32 битнымми windows плата работает? Если да отключите проверку подписи драйвера в 64 битной windows. Думаю Вы правы, причина может быть именно в этом, хотя у меня заработало и без отключения цифровой подписи драйвера. Может какая-то старая версия драйвера.
  14. STMicroelectronics Virtual COM Port

    Цитата(ViKo @ May 13 2014, 08:26) Попробовал на двух платах Discovery (STM32F407, STM32F429) создать CDC устройство в STM32CubeMX. И оба раза компьютер обнаруживает устройство, устанавливает драйвер, но не может его запустить. И в настройках USB в Cube менял, и все равно. ОС - Windows 7 x64. Что не так? Полный интернет подобных сообщений, но ни одного ответа я не нашел. И кабель менял, и в другую щель засовывал. Непонятна фраза "Не Запускается driver" -это как, какие сообщения выдает Винда? У меня тоже Виндовс 7 x64 и все работает. Подробнее проблему опишите пожалуйста. Файл конфигурации Куба (*.ioc) приложите если можно.
  15. STM32F4xx новые библиотеки V2.0.0 (от CubeMX) для USB-виртуальный COM порт. Кто пробовал использовать? Сконфигурировал, запустил, устройство определилось правильно, порт появился. Как из main.c вызвать передачу данных, не могу найти нужную функцию?