Jump to content

    

IRBaboon

Участник
  • Content Count

    63
  • Joined

  • Last visited

Community Reputation

0 Обычный

2 Followers

About IRBaboon

  • Rank
    Участник

Старые поля

  • skype
    Array
  • LinkedIn
    Array

Информация

  • Город
    Array

Контакты

  • Skype
    Array

Recent Profile Visitors

884 profile views
  1. Коллеги добрый день! Пытаюсь установить солид - выскакивает дикая ошибка, что обнаружена предыдущая установка Electrical - у кого нибудь было такое? Как снести следы старого солида начисто? Заранее спасибо за помощь!
  2. STM32H742VG Hardfault

    На данный момент получилось прошить контроллер с помощью j link а. Причём j link не знает моего ядра - пришлось обманывать и подпихивать родственника. Сложно сказать в чём конкретно проблема с СТ линком, кроме того, что он китайский. Адрес флеш памяти выбран верный - последние комментарии не про мой случай.
  3. STM32H742VG Hardfault

    Спасибо большое! Как только разберусь - расскажу обязательно в чём был затык.
  4. STM32H742VG Hardfault

    Именно методом тыка) С другой стороны, всё таки в большинстве приложений я не улетал в хардфолт. " Изучайте сечас, у вас есть прекрасная возможность." - я конечно же так и поступлю, вы правы. Для начала буду разбираться почему ничего не записано во флеш.
  5. STM32H742VG Hardfault

    Я понимаю - опцию Verify я всегда вообщем-то включаю. Наверное для начала попробую использовать другой программатор. " В эмбеддинге без знания ассемблера делать нечего." - ну, с одной стороны да, с другой из всех проектов которые я запускал такое первый раз - раньше хардфолт если и был, то решался либо внешним источником питания, либо кривым источником тактирования.
  6. STM32H742VG Hardfault

    Ну, я не слепой, просто для меня дизассембли это тёмный лес. Как же такое может быть, что во флеш ничего не записалось - битый программатор? Мне не до конца ясно почему в аутпуте мне пишут что No Algorithm Found, но я так понимаю, что это вообще для другого банка и меня не касается.
  7. STM32H742VG Hardfault

    Vbat висел в воздухе - никогда не понимал, что с ним конкретно делать. Подпаял к питанию, ничего не поменялось.
  8. STM32H742VG Hardfault

    Совершенно точно вываливаюсь при выполнении инструкции LDR R0, =SystemInit Боюсь что это происходит в самом начале - приложил скрин. Как только я вхожу в дебаг, и исполняю первую инструкцию он валиться сразу. Я сейчас заново запустил дебаг, и пошагово, как рекомендовали выше, начал искать, где - в итоге я вываливаюсь в момент запуска систем инита, выше приложил скрин
  9. STM32H742VG Hardfault

    Уважаемые коллеги! Столкнулся с проблемой, которую не могу решить: Я собрал проект в КУБе, запустил в Кейле. В качестве источника тактирования применяю внутренний HSI. Отладчик - китайский стлинк. После сборки и запуска дебага - выпадаю в хардфолт сразу после систем инита. Совершенно не понимаю, с чем это связано - пытался использовать разные делители, разные источники тактирования, даже проверял что происходит с ногой резет :) Сталкивался ли кто либо с подобной проблемой? Подскажите пожалуйста - в чём может быть загвоздка.
  10. Спасибо большое за помощь - проблема была в том, что я пытался работать по SWD интерфейсу в режиме дебага. Терминал при этом виснет.
  11. Большое спасибо за ответ, стало понятнее, но при этому хочу заметить, что CDC_Receive_FS у меня есть в usbd_cdc_if.c. В том числе перечислена в USBD_Interface_fops_FS. Прикладываю скрины и код. /* USER CODE BEGIN Header */ /** ****************************************************************************** * @file : usbd_cdc_if.c * @version : v2.0_Cube * @brief : Usb device for Virtual Com Port. ****************************************************************************** * @attention * * <h2><center>&copy; Copyright (c) 2021 STMicroelectronics. * All rights reserved.</center></h2> * * This software component is licensed by ST under Ultimate Liberty license * SLA0044, the "License"; You may not use this file except in compliance with * the License. You may obtain a copy of the License at: * www.st.com/SLA0044 * ****************************************************************************** */ /* USER CODE END Header */ /* Includes ------------------------------------------------------------------*/ #include "usbd_cdc_if.h" /* USER CODE BEGIN INCLUDE */ /* USER CODE END INCLUDE */ /* Private typedef -----------------------------------------------------------*/ /* Private define ------------------------------------------------------------*/ /* Private macro -------------------------------------------------------------*/ /* USER CODE BEGIN PV */ /* Private variables ---------------------------------------------------------*/ /* USER CODE END PV */ /** @addtogroup STM32_USB_OTG_DEVICE_LIBRARY * @brief Usb device library. * @{ */ /** @addtogroup USBD_CDC_IF * @{ */ /** @defgroup USBD_CDC_IF_Private_TypesDefinitions USBD_CDC_IF_Private_TypesDefinitions * @brief Private types. * @{ */ /* USER CODE BEGIN PRIVATE_TYPES */ /* USER CODE END PRIVATE_TYPES */ /** * @} */ /** @defgroup USBD_CDC_IF_Private_Defines USBD_CDC_IF_Private_Defines * @brief Private defines. * @{ */ /* USER CODE BEGIN PRIVATE_DEFINES */ /* USER CODE END PRIVATE_DEFINES */ /** * @} */ /** @defgroup USBD_CDC_IF_Private_Macros USBD_CDC_IF_Private_Macros * @brief Private macros. * @{ */ /* USER CODE BEGIN PRIVATE_MACRO */ /* USER CODE END PRIVATE_MACRO */ /** * @} */ /** @defgroup USBD_CDC_IF_Private_Variables USBD_CDC_IF_Private_Variables * @brief Private variables. * @{ */ /* Create buffer for reception and transmission */ /* It's up to user to redefine and/or remove those define */ /** Received data over USB are stored in this buffer */ uint8_t UserRxBufferFS[APP_RX_DATA_SIZE]; /** Data to send over USB CDC are stored in this buffer */ uint8_t UserTxBufferFS[APP_TX_DATA_SIZE]; /* USER CODE BEGIN PRIVATE_VARIABLES */ /* USER CODE END PRIVATE_VARIABLES */ /** * @} */ /** @defgroup USBD_CDC_IF_Exported_Variables USBD_CDC_IF_Exported_Variables * @brief Public variables. * @{ */ extern USBD_HandleTypeDef hUsbDeviceFS; /* USER CODE BEGIN EXPORTED_VARIABLES */ /* USER CODE END EXPORTED_VARIABLES */ /** * @} */ /** @defgroup USBD_CDC_IF_Private_FunctionPrototypes USBD_CDC_IF_Private_FunctionPrototypes * @brief Private functions declaration. * @{ */ static int8_t CDC_Init_FS(void); static int8_t CDC_DeInit_FS(void); static int8_t CDC_Control_FS(uint8_t cmd, uint8_t* pbuf, uint16_t length); static int8_t CDC_Receive_FS(uint8_t* pbuf, uint32_t *Len); /* USER CODE BEGIN PRIVATE_FUNCTIONS_DECLARATION */ /* USER CODE END PRIVATE_FUNCTIONS_DECLARATION */ /** * @} */ USBD_CDC_ItfTypeDef USBD_Interface_fops_FS = { CDC_Init_FS, CDC_DeInit_FS, CDC_Control_FS, CDC_Receive_FS }; /* Private functions ---------------------------------------------------------*/ /** * @brief Initializes the CDC media low layer over the FS USB IP * @retval USBD_OK if all operations are OK else USBD_FAIL */ static int8_t CDC_Init_FS(void) { /* USER CODE BEGIN 3 */ /* Set Application Buffers */ USBD_CDC_SetTxBuffer(&hUsbDeviceFS, UserTxBufferFS, 0); USBD_CDC_SetRxBuffer(&hUsbDeviceFS, UserRxBufferFS); return (USBD_OK); /* USER CODE END 3 */ } /** * @brief DeInitializes the CDC media low layer * @retval USBD_OK if all operations are OK else USBD_FAIL */ static int8_t CDC_DeInit_FS(void) { /* USER CODE BEGIN 4 */ return (USBD_OK); /* USER CODE END 4 */ } /** * @brief Manage the CDC class requests * @param cmd: Command code * @param pbuf: Buffer containing command data (request parameters) * @param length: Number of data to be sent (in bytes) * @retval Result of the operation: USBD_OK if all operations are OK else USBD_FAIL */ static int8_t CDC_Control_FS(uint8_t cmd, uint8_t* pbuf, uint16_t length) { /* USER CODE BEGIN 5 */ switch(cmd) { case CDC_SEND_ENCAPSULATED_COMMAND: break; case CDC_GET_ENCAPSULATED_RESPONSE: break; case CDC_SET_COMM_FEATURE: break; case CDC_GET_COMM_FEATURE: break; case CDC_CLEAR_COMM_FEATURE: break; /*******************************************************************************/ /* Line Coding Structure */ /*-----------------------------------------------------------------------------*/ /* Offset | Field | Size | Value | Description */ /* 0 | dwDTERate | 4 | Number |Data terminal rate, in bits per second*/ /* 4 | bCharFormat | 1 | Number | Stop bits */ /* 0 - 1 Stop bit */ /* 1 - 1.5 Stop bits */ /* 2 - 2 Stop bits */ /* 5 | bParityType | 1 | Number | Parity */ /* 0 - None */ /* 1 - Odd */ /* 2 - Even */ /* 3 - Mark */ /* 4 - Space */ /* 6 | bDataBits | 1 | Number Data bits (5, 6, 7, 8 or 16). */ /*******************************************************************************/ case CDC_SET_LINE_CODING: break; case CDC_GET_LINE_CODING: break; case CDC_SET_CONTROL_LINE_STATE: break; case CDC_SEND_BREAK: break; default: break; } return (USBD_OK); /* USER CODE END 5 */ } /** * @brief Data received over USB OUT endpoint are sent over CDC interface * through this function. * * @note * This function will issue a NAK packet on any OUT packet received on * USB endpoint until exiting this function. If you exit this function * before transfer is complete on CDC interface (ie. using DMA controller) * it will result in receiving more data while previous ones are still * not sent. * * @param Buf: Buffer of data to be received * @param Len: Number of data received (in bytes) * @retval Result of the operation: USBD_OK if all operations are OK else USBD_FAIL */ static int8_t CDC_Receive_FS(uint8_t* Buf, uint32_t *Len) { /* USER CODE BEGIN 6 */ USBD_CDC_SetRxBuffer(&hUsbDeviceFS, &Buf[0]); USBD_CDC_ReceivePacket(&hUsbDeviceFS); return (USBD_OK); /* USER CODE END 6 */ } /** * @brief CDC_Transmit_FS * Data to send over USB IN endpoint are sent over CDC interface * through this function. * @note * * * @param Buf: Buffer of data to be sent * @param Len: Number of data to be sent (in bytes) * @retval USBD_OK if all operations are OK else USBD_FAIL or USBD_BUSY */ uint8_t CDC_Transmit_FS(uint8_t* Buf, uint16_t Len) { uint8_t result = USBD_OK; /* USER CODE BEGIN 7 */ USBD_CDC_HandleTypeDef *hcdc = (USBD_CDC_HandleTypeDef*)hUsbDeviceFS.pClassData; if (hcdc->TxState != 0){ return USBD_BUSY; } USBD_CDC_SetTxBuffer(&hUsbDeviceFS, Buf, Len); result = USBD_CDC_TransmitPacket(&hUsbDeviceFS); /* USER CODE END 7 */ return result; } /* USER CODE BEGIN PRIVATE_FUNCTIONS_IMPLEMENTATION */ /* USER CODE END PRIVATE_FUNCTIONS_IMPLEMENTATION */ /** * @} */ /** * @} */ /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ Я очень благодарен вам за ваш код в качестве примера, могу сказать, что мне, как человеку, которому это нужно срочно и в качестве прикладного инструмента для отладки своих модулей это был бы лучший вариант. Хочу ещё раз отметить, что у меня именно зависает терминал, а в режиме дебага, на метку в эту функцию CDC_Receive_FS, я так и не попадаю.
  12. Уважаемые коллеги - пляс с бубном у меня продолжается. Я заранее оговорюсь, что ни на что большое пока что не претендую - просто пытаюсь поднять приёмопередатчик на ЮСБихе, чтобы не прикручивать к отладочным комплектам преобразователи интерфейсов. Короче говоря, собрал запустил я проект. Данные Хосту я отправляю успешно - Терминал их ловит и выводит. Но, если я пытаюсь послать данные наоборот - от Хоста к плате, то терминал виснет намертво. В функцию CDC_Receive_FS их подключенной либы я не попадаю... Уйму сайтов перелазал - вот такое находил например: https://www.cyberforum.ru/arm/thread2229504.html Но как он вис так и виснет - помогите пожалуйста.
  13. Спасибо большое! Мне ещё очень помогла эта статья - https://habr.com/ru/post/335018/
  14. Уважаемые коллеги, здравствуйте! Раньше не пользовался встроенным USB - мне порекомендовали и я решил попробовать. Может мне кто-нибудь порекомендовать годный топик или прям сходу рассказать, как настроить USB, как вирт. Ком порт? У меня на руках две отладочные платки STM - одна нуклео с STM32H7, а другая простенький блю пилл. Вот я хочу на втором в качестве примера реализовать обмен данными по ЮСБ. Спасибо за внимание.
  15. УСтановились! Проблема была в отсутствии свободного места на диске))