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

TOG

Свой
  • Постов

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

  • Посещение

Сообщения, опубликованные TOG


  1. On 12/14/2022 at 1:23 PM, haker_fox said:

    Возможно, что автор хочет эти данные менять по ходу пьесы) Как я понял, ему интересно, где находятся его данные для инициализации:blum:

    Сотрудник, который сделал эту программу на больничном. У меня есть только МК с прошивкой. У него в программе на Си я точно видел, что объявлен массив был просто uint8_t data[] = {1,1,1,0,0,1 ..... всего 180 байт).

    Сейчас хотел немного подправить массив в прошивке, а найти его не могу.

    Для эксперимента сделал два проекта в котором массивы нулей и единичек отличаются только первым и последним байтом. И вот так выглядим место в прошивке, где есть отличия.

    То есть так просто тут изменения не внесешь.

     F100RE.thumb.png.3188c2b917a6c6a559c594d4ae80a31a.png

  2. Товарищи,

    имеется программа для STM32 на Си. Компилятор Keil MDK-ARM, оптимизация отключена.

    В программе имеется такой массив нулей и единичек.

    uint8_t data[] = {1,1,1,0,0,0,1,0,1,0,1,1,1,0,0,0,1,0,1,0,1,0,1,0 .. и так далее 180 байт всего};

    Я решил поискать эту последовательность в файле прошивки и ничего похожего там не нашел.

    Как создаются в памяти эти инициализированные переменные при старте программы ? И кто этим занимается ?

  3. Товарищи,

    имеется фирменное устройство, которое общается со своим внешним модулем по Bluetooth 4.2 (не LowEnergy, а просто BT 4.2 base data rate).

    (Моя задача подсунуть свое устройство вместо фирменного модуля)

    Что я выяснил: К этому внешнему модулю можно подключиться с любого Android смартфона. Просто тыкаю на название модуля в списке обнаруженных устройств и происходит соединение.

    Нашел я у себя Bluetooth 2.0 модуль HC-05. И тоже могу подключиться к HC-05 с любого Android смартфона. Но перед установкой соединения смартфон запрашивает PIN-код.

    Я в документации вижу, что PIN-код можно поменять, но нигде не вижу как совсем отключить его проверку, чтобы любой Мастер мог подключиться без всяких PIN-кодов.

    В общем мне нужно как-то отключить в блютус модуле проверку pin-кода. Может конкретно в HC-05 это сделать нельзя ? Или нужен именно BT 4.2 ?

  4. Привет,

    запустил MIPI DSI дисплей 5" . (720x1280). Выводится статическое изображение.

    Картинка четкая, стабильная, ничего не трясется.  Но как только прогреется некоторые зеленые пиксели кое-где начинают помигивать. Выглядит как-то не очень.

    Настроек у драйвера дисплея(ILI9881C) море. Не подскажете что проверить ? VCOM , VGL, VGH ... даже не представляю куда лезть.

    (Использую STM32H743 и мост MIPI DSI SSD2828)

  5. Друзья,

    пытаюсь освоить такую TFT  LVDS панель WF101FSYAPLNG0

    В даташите есть последовательность включения и выключения. Если мне не охота заморачиваться, что будет если все эти напряжения я подам как попало ?

    С RGB дисплеями я не заморачивался, хотя там тоже есть какая-то последовательность включения и выключения и все работало.

    Прикладываю даташит на нее, т.к на сайте он не полный.

     

     

    power_seq.png

    FW101FSYAPLNN0 1280x800 (10.1in CTP LVDS TFT).pdf

  6. On 9/21/2022 at 9:38 AM, uriy said:

    Разве получится дебажить из кейла основную программу если туда перескакиваем из бута?

    Да, отладка работает. Загрузчик отработал и передал управление основной программе и отладчик остановился на main.  

  7. On 9/19/2022 at 6:57 PM, Intel4004 said:

    Делаете из скомпиленного бутлоадера сишный массив и подключаете его к проекту

    Тоже отличный вариант, Intel4004 !

  8. On 9/19/2022 at 3:55 PM, jcxz said:

    Не очень понятен смысл всех этих телодвижений... Зачем например при отладке основной программы всё время перешивать бутлоадер???

    Это чтобы через полгода, когда понадобится запустить этот проект я не вспоминал нужен ли приложению бутлоадер и где его искать, а просто нажал F8 и все заработало :sun_bespectacled:

  9. On 9/19/2022 at 11:23 AM, x893 said:

    Как делать расписано на сайте Keil ну и конечно в google.com

    Гениально, x893 !

    Всего одна строчка.

    Создаем файл bootloader.ini с одной командой "LOAD Bootloader.hex"

    Потом в основном проекте идем в Options->Utilities->Init File и прицепляем там этот init файл.

    Теперь при нажатии F8(download) автоматом прошивается bootloader.hex и основной проект. Красота ! 

  10. On 9/19/2022 at 10:28 AM, Arlleex said:

    Я это делаю собственной консольной утилитой, пишется за 10 минут на Си.

    Понял, Arlleex. Спасибо. 

    On 9/19/2022 at 10:30 AM, x893 said:

    Делаете две конфигурации. Одна с бутом, вторая с прошивкой.

    Добавляете load бут... в Debug init script для прошивки.

    Поподробнее бы чуть-чуть. Не пойму как эти конфигурации делать и где этот Debug init script ?

  11. Друзья,

    сделал простенький бутлоадер, заливаю его в STM32 по адресу 0x08000000. Потом заливаю основную программу по адресу 0x0800D000.

    Все работает, бутлоадер запускается, потом передает управление основной программе.

    Не могу сообразить как сделать, чтобы при заливке основной программы в чистый МК, туда автоматом бы заливался и бутлоадер ?

    (Пользуюсь Keil MDK ARM)

     

  12. Друзья,

    хочу на Али купить LVDS кабель типа такого(40 см). Подскажите пожалуйста название ответных разъемов ?

    Мне нужно соединить 2 платы. На одной плате RGB->LVDS мост и разъем. На второй плате разъем и LVDS TFT панель. 

    lvds1.thumb.jpg.6694004e514547ddabd429b6e93bd808.jpg

  13. On 9/9/2022 at 11:07 AM, x893 said:

    Я использовал SSD202D

    Очень крутая штука.

    В продаже нашли такой модуль IDO-SOM2D02

    Пишут, что в нем установлен Linux

    Правильно ли я понимаю, что там уже есть все драйвера для работы с периферией установленной на модуле ?

    То есть имеется какой-то набор API ? Примеры программ ?

     

  14. On 9/8/2022 at 4:00 PM, aaarrr said:

    К STM32H - никак. Выбирайте процессор, который сможет полноценно обслуживать такую панель.

    Спасибо aaarrr.

    Может есть какое-то народное решение ? (Популярный в сообществе процессор для вывода на Full HD панель) ? 

  15. Друзья,

    сейчас работаем с STM32H743. Небольшие дисплеи(до 800х600) он тянет и по RGB и через MIPI DSI мост.

    Есть потребность подключить большую Full HD панель или хотя бы 1920x720 (типа этого).

    Как вообще такие панели подключают к своим проектам ?

  16. Друзья,

    программирую для МК STM32 и во все программы вставляется защита от клонирования (шифрование данных по UID).

    Сейчас настройка этой защиты делается вручную, что очень долго, а главное я постоянно косячу с ее настройкой и защита постоянно затирает что-то лишнее.

    В итоге отладка занимает по несколько дней.

    Я хотел бы сделать как-то так:

    В исходном тексте программы вставляю пору комментариев (PROTECT_BEGIN), (PROTECT_END) указывая между ними какие данные нужно шифровать.

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

    // PROTECT_BEGIN 

    uint8_t data1[] = {12, 13, 14, 15};

    uint8_t data2[] = {16, 17, 18, 19};

    ...

    uint8_t data99[] = {20, 21, 22, 23};

    // PROTECT_END

     

    Подскажите, может есть уже какие-то заточенные под разбор текстов инструменты ?

    Пока, что я планирую на C это делать.

  17. On 8/24/2022 at 12:48 PM, Сергей Борщ said:

    Может кабель слишком умный и ожидает резисторы 5.1 кОм на землю на контактах A5 и B5, а в вашем разъеме их забыли допаять?

    Точно ! Подключил другим кабелем, есть +5 Вольт.

    Спасибо Сергей Борщ !

  18. Друзья,

    купили на Али такой разъем USB Type-C для питания устройства, данные передавать не надо.

    На разъеме всего 2 контакта VBUS и GND. Пытаюсь подключить это все к компу через кабель USB2.0 - Type-C.

    Питания нет. Кабель рабочий, другие устройства от него питание получают.

    Как получить питание от USB Type-C ?

    (Подключать будем и через стандартный Type-C кабель и через кабель-переходник USB2.0 - Type-C)

  19. Друзья,

    есть инфракрасный приемопередатчик и я отключаю прием на время пока идет передача.

    Отключаю глобальное прерывание USART1:

    HAL_NVIC_DisableIRQ(USART1_IRQn)   // Вижу, что бит Enable сбросился

    Передаю данные по USART1 (без использования прерываний). У меня почему-то выставляется бит Pending в USART1 global interrupt

    Пытаюсь сбросить бит Pending (HAL_NVIC_ClearPending(USART1_IRQn). Не выходит. Бит не сбрасывается.

    Потом включаю глобальное прерывание USART1:

    HAL_NVIC_EnableIRQ(USART1_IRQn)  // Вижу, что бит enable установился. И срабатывает прерывание которое обрабатывает мусор.

    Как мне напрочь отключить прерывание, чтобы бит Pending не выставлялся ? Или как сбросить бит Pending ?

     

  20. Друзья,

    Имеется проект созданный в CubeMX для STM32.

    Мне нужно, чтобы мой код (тот, что между #ifndef...#endif) был перед функцией MX_TouchGFX_Init, чтобы TouchGFX мог начать грузить графику с QSPI флешки.

    Мне каждый раз при перегенерации проекта в CubeMX приходится помнить, что надо вручную вставить этот код перед MX_TouchGFX_Init, потому-что из этого места  куб сносит все, что не его. 

    Как бы кубу это объяснить ?

     /* USER CODE BEGIN SysInit */
    
      /* USER CODE END SysInit */
    
      /* Initialize all configured peripherals */
      MX_GPIO_Init();
      MX_TIM6_Init();
      MX_LTDC_Init();
      MX_FMC_Init();
      MX_CRC_Init();
      MX_QUADSPI_Init();
      MX_DMA2D_Init();
      MX_DMA_Init();
      MX_USART1_UART_Init();
      MX_TIM2_Init();
      MX_ADC3_Init();
    #ifndef SIMULATOR
      qfs.hqspi       = &hqspi;
      qfs.qspi_addr   = (__IO uint8_t *)(QSPI_FLASH_ADDR);
      Sta = FlashDeviceInit(&qfs); 
      Sta = FlashDeviceSetMemoryMappedMode(&qfs);
    #endif   
      MX_TouchGFX_Init();
      /* USER CODE BEGIN 2 */

     

  21. On 7/18/2022 at 10:10 AM, Allregia said:

    1) union

    2) через #define

    3) свое описание структуры для каждой ф-ии

     

    Возможно подойдет вариант 3.

    Сделаю свое описание структуры для каждой ф-и.

    1.
    
    typedef struct
    
    {
    
    int16_t  quart;
    
    int16_t  X
    
    ... еще много всякого
    
    } DSP_DATAtype1
    
    
    
    2.
    
    typedef struct
    
    {
    
    int8_t  Temp;
    
    int8_t  Bat
    
    ... еще много всякого
    
    } DSP_DATAtype2

     

    Сейчас память выделяется статически во время компиляции:

    DSP_DATAtype1  DspData1; 

     

    А как сделать это ? (Мне бы хотелось во время работы как-то переключать описания структуры)

    On 7/18/2022 at 10:10 AM, Allregia said:

    но выделять память только на одну, и далее по указателю на эту память.

     

×
×
  • Создать...