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

RuWorker2

Свой
  • Постов

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

  • Посещение

Репутация

0 Обычный

Информация о RuWorker2

  • Звание
    Местный
    Местный

Контакты

  • Сайт
    Array
  • ICQ
    Array

Посетители профиля

2 564 просмотра профиля
  1. Keil4 Manage Project Items

    um0424.zip Это не я добавил в проект несколько конфигураций, они изначально были в оригинальном архиве UM0424 um0424.zipот STM от 2011 года, предполагалось, что пользователь выбирает проект для Keil, например VirtualCOMPort.uvproj и далее выбирает свою демо-плату из списка. И чудным образом проект конфигурируется (выбирается одна из групп SPL и нужные сишные файлы для этой демо-платы). Только оригинальный архив был настроен для STM32L152, а мне нужно пересобрать для STM32F103. Из нескольких конфигураций не собирается только для STM3210E_EVAL, выдает: ..\src\system_stm32l1xx.c(99): error: #5: cannot open source input file "stm32l1xx.h": No such file or directory то есть включает в проект файл для STM32L152 вместо STM32F10x. Вот я и задумался, а как они так смогли сделать, что включается нужный сишный файл в проект, в зависимости от STM32xxx_EVAL. Интересует Кейл 4 без HAL, то есть старый способ с использованием SPL. Ведь HAL - это надстройка от STM, у других производителей свои SPL, периферийные библиотеки. Нашел, как это сделано. Для каждого файла можно индивидуально выбрать галочку Include in Target Build.
  2. Keil4 Manage Project Items

    Добрый день, уважаемое сообщество! В оригинальных примерах от ST, в проекте для Keil4, можно выбрать конфигурацию для одной из нескольких отладочных плат, при этом после смены конфигурации выбирается один из двух файлов. Например в группе User включается файл stm32f10x_it.c, а файл stm32l1xx_it.c исключается из сборки. Иконки исключенных фалов и даже групп помечаются тремя квадратиками, при этом они остаются в дереве проекта. Как это делается в Keil? Как включить в группу один из двух похожих файлов? Или даже одну из двух периферийных библиотек для STM32F10x и STM32L15x?
  3. Нужно "Прошивка должна быть подписана цифровой подписью в соответствии с X509v3. Другие сертификаты не допускаются". И трафик при обновлении прошивки должен шифроваться. Получается, что прошивка должна иметь цифровую подпись, наверное, для проверки подлинности. Обмен между приложением и девайсом должен быть зашифрован. Похоже, что девайс принимает прошивку, расшифровывает её, проверяет подпись (подлинность прошивки) и обновляется.
  4. Диагностическое приложение для ПК генерирует сертификат X509v3 для пользователя c Login Password (кто запустил на ПК диагностическое приложение) - получили файл сертификата. Как закрытым ключом подписать свой файл bin? И где взять этот закрытый ключ? Предполагается, что открытый ключ известен всем экземплярам (приложениям для ПК). PS: Открытый и закрытый ключ используется в алгоритмах асимметричного шифрования, а в моем случае прошивка шифруется алгоритмом симметричного шифрования - один ключ, закрытый.
  5. Всем привет! Есть прошивка для микроконтроллера - файл *.bin полученный из *.hex, она встраивается в проект диагностического приложение для ПК - как файл ресурса, проект собирается с последней версией прошивки и после запуска диагностического приложения на ПК можно обновить прошивку в девайсе через интерфейс USB. Появилось требование "файл прошивки должен быть подписан сертификатом x509v3". Как это сделать?
  6. А уточнить можете? В данный момент прием пакетов более 64-х байт выполняю склейкой пакетов по 64 байта. 64+64=128, 64+32=96. Каждый раз при вызове функции копирую фрагмент данных в другой массив. #define APP_RX_DATA_SIZE 64 #define APP_TX_DATA_SIZE 128 uint8_t UserRxBufferFS[APP_RX_DATA_SIZE]; uint8_t UserTxBufferFS[APP_TX_DATA_SIZE]; uint8_t UserRxBuffer[256]; uint8_t UserTxBuffer[256]; uint16_t UsbRxCtr = 0; uint16_t UsbLenCtr = 0; static int8_t CDC_Receive_FS(uint8_t* Buf, uint32_t *Len) { /* USER CODE BEGIN 6 */ USBD_CDC_SetRxBuffer(&hUsbDeviceFS, &UserRxBufferFS[0]); USBD_CDC_ReceivePacket(&hUsbDeviceFS); memcpy(UserRxBuffer + (64*UsbRxCtr), UserRxBufferFS, *Len); UsbRxCtr++; UsbLenCtr += (*Len); return (USBD_OK); /* USER CODE END 6 */ }
  7. STM32CubeMX USB CDC CDC_Receive_FS

    Здравствуйте, уважаемые разработчики! Функция принимающая данные вызывается каждый раз при приеме 64-х байт. Если принимается пакет из 128 байт, то она вызывается дважды, при этом при второй пакет из 64-х байт записывается с начала буфера UserRxBufferFS. Я предполагал, что APP_RX_DATA_SIZE 128 позволит принимать пакеты до 128 байт. #define APP_RX_DATA_SIZE 128 #define APP_TX_DATA_SIZE 128 uint8_t UserRxBufferFS[APP_RX_DATA_SIZE]; uint8_t UserTxBufferFS[APP_TX_DATA_SIZE]; static int8_t CDC_Receive_FS(uint8_t* Buf, uint32_t *Len) { /* USER CODE BEGIN 6 */ USBD_CDC_SetRxBuffer(&hUsbDeviceFS, &UserRxBufferFS[0]); USBD_CDC_ReceivePacket(&hUsbDeviceFS); return (USBD_OK); /* USER CODE END 6 */ } Функция передачи корректно передает 128 байт: memcpy(UserTxBufferFS, "01234567ABCDEFGH01234567ABCDEFGH01234567ABCDEFGH01234567ABCDEFGH01234567ABCDEFGH01234567ABCDEFGH01234567ABCDEFGH01234567ABCDEFGH", 128); Stat = CDC_Transmit_FS((uint8_t*)UserTxBufferFS, 128); Вопрос к функции приёма. Где я косячу?
  8. System Viewer File

    Здравствуйте! Можно ли как-то отредактировать файл STM32***.SFR, чтобы в нем появились недостающие регистры (нет регистров ADC, RCC, FDCAN)?
  9. Вот поэтому я и прошу совета, т.к. в описании на ULINK-и разных версий написано "поддержка Cortex M", "настраиваемые пользователем алгоритмы программирования FLASH...", но это относится к M0,M3,M4, а меня интересует M23. Может, на форуме есть разработчики, использующие ULINK для какого-нибудь Cortex-M23 (а желательно для Renesas RA2L1).
  10. Keil ULINK & Renesas RA2L1 Group (Cortex-M23)

    Здравствуйте, уважаемые разработчики! Интересует вопрос, Keil ULINK поддерживает отладку и программирование микроконтроллеров из серии RA2L1 (Cortex M23)? Renesas E2 Lite поддерживает, но его нет в списке отладчиков, в Keil. На данный момент остается только Segger JLink (версия 7.23). Кто что посоветует?
  11. Здравствуйте, уважаемые разработчики! Интересует вопрос, Keil ULINK поддерживает отладку и программирование микроконтроллеров из серии RA2L1? Renesas E2 Lite поддерживает, но его нет в списке отладчиков, в Keil. На данный момент остается только Segger JLink (версия 7.23). Кто что посоветует?
  12. STM32F4 I2S DMA

    Помоим подсчетам модуль I2S STM32F407 не может выдать частоту MainClock 49.152 MHz из-за ограничений на значения делителя и верхнего значения частоты I2SCLOCK <= 192 MHz. Минимальный делитель равен 4, а верхнее значение частоты I2SCLOCK <= 192 MHz. Или я не прав? Наверное, поэтому нужно использовать внешний генератор MainClock 49.152 MHz.
  13. STM32F4 I2S DMA

    От внешнего кварцевого генератора подаете сигнал на вход mclk I2S Slave?
×
×
  • Создать...