

Pridnya
Свой-
Posts
208 -
Joined
-
Last visited
Reputation
0 ОбычныйAbout Pridnya
-
Rank
Местный
Контакты
-
Сайт
Array
-
ICQ
Array
Информация
-
Город
Array
Recent Profile Visitors
2,276 profile views
-
Нужно "Прошивка должна быть подписана цифровой подписью в соответствии с X509v3. Другие сертификаты не допускаются". И трафик при обновлении прошивки должен шифроваться. Получается, что прошивка должна иметь цифровую подпись, наверное, для проверки подлинности. Обмен между приложением и девайсом должен быть зашифрован. Похоже, что девайс принимает прошивку, расшифровывает её, проверяет подпись (подлинность прошивки) и обновляется.
-
Диагностическое приложение для ПК генерирует сертификат X509v3 для пользователя c Login Password (кто запустил на ПК диагностическое приложение) - получили файл сертификата. Как закрытым ключом подписать свой файл bin? И где взять этот закрытый ключ? Предполагается, что открытый ключ известен всем экземплярам (приложениям для ПК). PS: Открытый и закрытый ключ используется в алгоритмах асимметричного шифрования, а в моем случае прошивка шифруется алгоритмом симметричного шифрования - один ключ, закрытый.
-
Всем привет! Есть прошивка для микроконтроллера - файл *.bin полученный из *.hex, она встраивается в проект диагностического приложение для ПК - как файл ресурса, проект собирается с последней версией прошивки и после запуска диагностического приложения на ПК можно обновить прошивку в девайсе через интерфейс USB. Появилось требование "файл прошивки должен быть подписан сертификатом x509v3". Как это сделать?
-
А уточнить можете? В данный момент прием пакетов более 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 */ }
-
Здравствуйте, уважаемые разработчики! Функция принимающая данные вызывается каждый раз при приеме 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); Вопрос к функции приёма. Где я косячу?
-
Здравствуйте! Можно ли как-то отредактировать файл STM32***.SFR, чтобы в нем появились недостающие регистры (нет регистров ADC, RCC, FDCAN)?
-
Вот поэтому я и прошу совета, т.к. в описании на ULINK-и разных версий написано "поддержка Cortex M", "настраиваемые пользователем алгоритмы программирования FLASH...", но это относится к M0,M3,M4, а меня интересует M23. Может, на форуме есть разработчики, использующие ULINK для какого-нибудь Cortex-M23 (а желательно для Renesas RA2L1).
-
Здравствуйте, уважаемые разработчики! Интересует вопрос, Keil ULINK поддерживает отладку и программирование микроконтроллеров из серии RA2L1 (Cortex M23)? Renesas E2 Lite поддерживает, но его нет в списке отладчиков, в Keil. На данный момент остается только Segger JLink (версия 7.23). Кто что посоветует?
-
Renesas RA2L1 Group (Cortex-M23) Debugger & Programmer
Pridnya posted a topic in ARM, 32bit
Здравствуйте, уважаемые разработчики! Интересует вопрос, Keil ULINK поддерживает отладку и программирование микроконтроллеров из серии RA2L1? Renesas E2 Lite поддерживает, но его нет в списке отладчиков, в Keil. На данный момент остается только Segger JLink (версия 7.23). Кто что посоветует? -
Помоим подсчетам модуль I2S STM32F407 не может выдать частоту MainClock 49.152 MHz из-за ограничений на значения делителя и верхнего значения частоты I2SCLOCK <= 192 MHz. Минимальный делитель равен 4, а верхнее значение частоты I2SCLOCK <= 192 MHz. Или я не прав? Наверное, поэтому нужно использовать внешний генератор MainClock 49.152 MHz.
-
От внешнего кварцевого генератора подаете сигнал на вход mclk I2S Slave?
-
49.152 MHz = 1024 * Fs, где Fs=48kHz, но судя по описанию на STA333W, режим 1024*Fs не поддерживается микросхемой (я приводил таблицу в начале топика), поддерживаются режимы 32-768, поэтому не понятно, какая частота должна подаваться на вход ХTI. Сейчас частота XTI кратна Fs: XTI=256*Fs=12.288 MHz, где Fs=48kHz, но работают два канала из четырех, левый 200 Гц, правый 100 Гц. STM32F407 I2S умеет выдавать Fs*256. А в этом описании есть два термина external clock и internal clock (49.152 MHz for Fs 48 kHz) и еще к чему-то PLL упоминается, что предполагает кратность частот (подаем одну - получаем другую).
-
Внутреннего I2S PLL вполне хватает для некторых комбинаций частот. Не очень понятно, какую частоту нужно подавать на вход XTI STA333W. Работает (два канала из четырех) только от XTI=12.288 MHz = Fs*256, где Fs=48kHz, 16 бит на канал. Т.е. частоты на входах получаются такие: XTI = 12.288 MHz = Fs * 256. BCKI = 1.536 MHz = Fs * 32, где 32 бита на два канала. LRCKI = Fs = 48 kHz. Fpwm = 384kHz = Fs *8. А в документации на STA333W написано, что для Fs = 48 kHz нужна частота 49,152 MHz. Вот здесь совсем не понятно, почему 49.152 MHz и вообще не описаны поддержиаемые частоты XTI, BCLKI. Никто не мешает обрабатывать сэмплы через один, достаточно написать свои обработчики. Если данные приходят не от I2S, то нужно собирать их в буфер.