Jump to content

    

UniSoft

Свой
  • Content Count

    103
  • Joined

  • Last visited

Community Reputation

0 Обычный

About UniSoft

  • Rank
    Частый гость
  • Birthday 08/02/1979

Контакты

  • Сайт
    http://
  • ICQ
    345012614
  • Yahoo
    uniskz

Информация

  • Город
    China, Shenzhen

Recent Profile Visitors

12961 profile views
  1. не надо ничего конфигурировать, единственное что надо P2_7 на землю посадить. Там стоит защита от чтения, так что не помню читается ли сигнатура. Надо стирать полностью. Но учтите, при стирании уничтожите сигнатуру, потом ее никак не восстановить... останется только искать дамп (сигнатуру и соответствующий ей uniqID) с рабочего девайса, и делать патч подменяющий uniqID.
  2. Там же указан Part-No: 8.08.90 это 10.1 EDU
  3. EDU ровно такой-же как и BASE... только для EDUCATIONAL purposes... Есть некоторое неудобство: будет выскакивать наг-диалог с условиями использования... раз в сутки...
  4. Tracealyzer для FreeRTOS

    Версия 4.3.4... Взять можно пройдя по той-же ссылке (на rgho.st), в описании ссылка на 4.3.4 (ну или в ПМ, либо на email)
  5. Tracealyzer для FreeRTOS

    Версия 4.3.2... Взять можно пройдя по той-же ссылке (на rgho.st), в описании ссылка на 4.3.2 (ну или в ПМ, либо на email)
  6. Встречался с чем-то подобным, но только на v10... но поведение очень похоже... Если тут так-же (а скорее всего так и есть), то это защита от клонов. Вы не указали у вас клон или оригинал? Защита основана на RSA подписи с unique ID контроллера. В случае с оригиналом, тут уже ничего не сделаешь. В клонах в bootloader'е добавлен патч, но сеггер кое-что поменяли и он перестал работать (так было у меня в v10). что происходит сейчас: подключаете j-link он несколько секунд думает мигая красным, потом запускается bootloader режиме. запускаете J-Link Commander, он видит j-link, но сообщает что прошивка повреждена (что-то там corrupted). подтверждаете восстановление, идет процесс обновления, но по окончании j-link не перезапускается, а просто зависает. после передергивания usb, все повторяется. Вам надо понизить версию, до той которая работала. Но тут есть одна проблема, j-link не дает понизить версию, тут бы как раз и помогла "exec invalidatefw", но ее не послать, т.к. j-link не отвечает. Придется повозиться с hex редактором. Скопируйте два файла: JLink.exe и JLinkARM.dll куда-нибудь во временную директорию. откройте JLinkARM.dll в hex-редакторе, вам нужно повысить дату компиляции (искусственно поднять версию). пример: "J-Link V10 compiled Mar 7 2019 15:19:19" повысить например год до 2029... но это надо сделать именно для прошивки вашего девайса (просто там множество прошивок, под разные j-link'и). Ну или просто не заморачиваться и поиском найти все даты, да увеличить их. Так удастся обмануть j-link и он зальет более старую версию, считая что она новее, того что уже залито.
  7. Мой выбор остановился на: Visual Studio 2015 + Visual Assist X + VisualGDB + TabsStudio VS конечно очень тяжелая, но если комп тянет, то можно пользоваться... VisualGDB позволяет создавать проекты и (с недавнего времени) поддерживает компилятор Keil, можно в нем же собирать и отлаживать (использую JLink), в плагине также есть опция RAW Terminal, которую можно заюзать для приема ITM сообщений. Лучшего пока что ничего не видел :(
  8. Tracealyzer для FreeRTOS

    Версия 4.2.12... поддерживает следующие RTOS: FreeRTOS SafeRTOS Keil RTX5 Micrium µC/OS-III On Time RTOS-32 OpenVX/Synopsys VxWorks ThreadX Взять можно пройдя по той-же ссылке (на rgho.st), в описании ссылка на 4.2.12 (ну или в ПМ, либо на email)
  9. STM32F722 и Cache Coherency

    Интересное объяснение. И что-то в этом есть... но ведь стартап и инициализация памяти выполняется до входа в main, а D-кэш включается именно в начале main.
  10. STM32F722 и Cache Coherency

    Всем спасибо, проблему решил. Избавился полностью от HAL, надергал функции в свой файл, что-то убрал, что-то оптимизировал, в общем весь драйвер получился в одном файле. Сначала правда тоже не работало, но как только раскомментировал очистку кэша до чтения (которую ранее пробовал и закомментировал, так как не помогало), так сразу все и заработало. Так что @GenaSPB был прав, нужна очистка кэша до вызова процедуры чтения, хоть и выглядит это совершенно нелогично. Как только ее убираю, перестает работать. И почему об этот нет никакого упоминания в примерах, а код частично брался как раз из них (с самого последнего - STM32Cube_FW_F7_V1.15.0), и там еще есть косяки ну например, найдите ошибку timer = osKernelSysTick() + SD_TIMEOUT; /* block until SDIO IP is ready or a timeout occur */ while(timer > osKernelSysTick()) { if (BSP_SD_GetCardState() == SD_TRANSFER_OK) { res = RES_OK; break; } } Ну во первых так писать категорически нельзя (хотя и довольно часто такое видел, и в HAL такое тоже есть) ведь при "osKernelSysTick() + SD_TIMEOUT" возможно переполнение.. ну да ладно, косяк не в этом, а в osKernelSysTick(), в дебрях RTX5 это: #define osKernelSysTick osKernelGetSysTimerCount И функция osKernelGetSysTimerCount() возвращает далеко не SysTick и не время в миллисекундах, а как видно по имени скорее время в тактах SysTick таймера, а вот SD_TIMEOUT время в миллисекундах, таким образом этот цикл в моем случае крутился менее 1/20 ms.
  11. STM32F722 и Cache Coherency

    Посмотрел, к сожалению, ничего нового не увидел. Единственное, что очистка кэша до чтения... хотя я это и не понимаю, но как уже сказал, такой вариант пробовал... не помогло. А на счет идеально работающий, это еще не факт... ради интереса, разместите буфер куда-нибудь за пределы DTCM... ну, например вот так: #define __AT(__ADDR) __attribute__((section(".ARM.__at_" #__ADDR))) #define AT_ADDR(__ADDR) __AT(__ADDR) AT_ADDR(0x20010200) static RAMNOINIT_D1 FATFS wave_Fatfs;
  12. STM32F722 и Cache Coherency

    Да это как-то странно, распределять буферы... А если это локальные буферы? ну там прочитать заголовок файла... можно конечно двойную буферизацию, но пока ищу нормальное решение. А атрибуты памяти выкурил все в корень, все перепробовал и CACHEABLE и NOT_CACHEABLE, SHAREABLE и NOT_SHAREABLE, LL_MPU_REGION_NUMBER0 и LL_MPU_REGION_NUMBER1 (в разных примерах по разному) при некоторых валится в HardFault, при других ничего не меняется. Прежде чем сюда написать, перепробовал все, что только мог. Перерыл множество примеров.
  13. STM32F722 и Cache Coherency

    Да смотрел, а что толку... Я честно говоря, не понимаю зачем нужно делать CleanInvalidate до чтения, но (читал обсуждение) и видел в исходниках https://github.com/micropython/micropython/blob/86f06d6a874d4eb3d6c50deec0240942344c01ea/ports/stm32/sdcard.c И тоже пробовал ставить очистку еще и до чтения, но результата это не дало...