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

haker_fox

Модератор
  • Постов

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

  • Посещение

  • Победитель дней

    12

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


  1. 52 minutes ago, Arlleex said:

    А у STM нет аналога этого МК? Там бы посмотреть.

    Даже не занимался данным вопросом. Но даже если у STM32 именно так, то очень похоже на кривизну) Ибо может привести к массовым ошибкам в программировании, а значит, и к падению продаж) Проще, наверное, какое-то количество лишних вентилей добавить в исходный дизайн)

  2. Тоже отлаживаю загрузчик. Специально Вам скопировал скрин. Это - момент перед переходом на приложение. R0 - содержит адрес, указанный в таблице векторов по смещению 4 байта. MSP инициализирован валидным значением. Нажимаю F11, и...

    image.thumb.png.ee637ce7ca9b8833debd4572fc0702c9.png

    ... оказываюсь уже в приложении)

    image.thumb.png.bd354f650444e940547e77bfca56a794.png

     

  3. 12 minutes ago, arm-user said:

    К сожалению, отладочный интерфейс не разведен на плате и я никогда не пользовался отладчиком на NXP.

    Припаяйте три проводка: GND, SWCLK, SWDIO. Это отладочный интерфейс SWD.

     

    13 minutes ago, arm-user said:

    Что-то не так с переходом.

    Вот это я и предлагаю Вам выяснить с помощью отладочного интерфейса. Прикошачить три проводка не так сложно, даже к корпусу с 208 выводами при наличии обычного бинокуляра (крайний случай, лучше под микроскопом).

    3 hours ago, arm-user said:
     const UserProgram user_program = *((volatile UserProgram*)(APP_BASE+0x4));  //4+1

    Какого типа APP_BASE? Если это указатель на 32 бита (uint32_t *), то прибавляя к нему 4, Вы получите смещение в 16 байт, а не в 4, как ожидалось.

    18 minutes ago, arm-user said:

    Код приложения для теста упрощен до минимума

    Это не играет роли. Если переход содержит ошибки, то неважно, простое приложение это из одной команды безусловного перехода или сложнейший алгоритм - результат будет один (тот же HardFault).

    • Upvote 1
  4. 1 hour ago, arm-user said:

    При перезагрузке видит метку, но при попытке запустить приложение уходим на HardFault.

    Пройдитесь пошагово в отладчике до момента вызова приложения (BX Rx). Посмотрите, верно ли инициализирован указатель стека. И какой адрес в действительности находится в регистре Rx. Если оба адреса (верхушка стека и начала приложения) указаны верно, переход на приложение 100% должен осуществиться. Заметьте, именно переход: т.е. на адрес функции, находящийся по смещению +4 байта от начала таблицы векторов. Что там дальше будет - зависит уже от кода приложения и состояния микроконтроллера на текущий момент (в загрузчике Вы могли инициализировать какую-то периферию).

  5. Коллеги, благодарю за помощь!

    Пришёл к выводу, что после записи файла на диск пользователь должен будет отключить шланг USB от устройства. Это и будет ялвяться для загрузчика сигналом к проверке наличия файла, его целостности и т.д. и т.п. О том, чтобы кеши были сброшены на диск должна заботится ОС, либо, пользователь должен будет делать безопасное извлечение диска. Вроде это на старых ОС Windows точно требовалось. На новых версия, насколько мне известно, кэширование отключено по умолчанию, и флешку можно просто выдернуть из разъёма. Но в любом случае это уже не загрузчика забота.

  6. 57 minutes ago, gerber said:

    Проще говоря, это костыли.

    Как тогда работают загрузчики, обновляющие прошивку через USB MSC? Там же механизм простой: закинул файл, и ПО обновлено...

  7. 5 minutes ago, TOG said:

    Видимо на частоте 110 МГц еще не критично.

    То же самое. Только частота 90 МГц. Где-то на форуме были размышления на тему, что на частоте 100 МГц можно сильно не задумываться о длинах проводников.

  8. 1 minute ago, Forger said:

    Прочитать fat таблицу диска и найти там его, разбирая эту область. Полностью реализовывать поддержку fat не обязательно. Что-то типа read only fat, но еще сильнее урезанная.

    Мда... Сейчас стал приходить к подобному же выводу. И, как мне кажется, теперь становится очевидным взять FatFS от мистера Чана, скомпилировать её в режиме только чтение, и не выдумывать альтернативу велосипеду:blum:

    • Upvote 1
  9. Добрый день, коллеги!

     

    Есть железка, которая предстаёт как USB MSC для ПК. Сам диск реализован в ОЗУ. Размер 16 Мб. На этот диск записывается один! файл. Можно ли внутри железки без FAT (как я понимаю, именно эта ФС используется в USB MSC по умолчанию в Win) обнаружить, что файл был записан (имя всегда одно и то же) и считать его? Не могу найти вразумительного ответа на просторах сети.

     

    Спасибо!

  10. 6 hours ago, kovigor said:

    Думаю, что это плохо.

    Гм. Но это всего лишь напряжение смещения. Т.е. "последовательно" с Вашим шунтом включен источник напряжения 3 мВ, который дополнительно имеет ТКН. В принципе, на мой взгляд, эта погрешность поддаётся калибровки. Но то, что результирующий выходной сигнал на 20% состоит из смещения - не очень хорошо. Но всё же приемлемо. Гораздо хуже, как я считаю, что этот вклад имеет зависимость от температуры.

    6 hours ago, kovigor said:

    Да, питание ОУ однополярное.

    Немного хуже, но выше уважаемый @V_G прокомментировал данную ситуацию. Я бы ещё добавил, что выход тоже должен быть способен выдать нуль, при отсутствии тока через шунт. Также, насколько я помню, rail-to-rail ОУ не совсем просты, как кажется. Ибо при приближении выходного (или входного) сигнала могут возникать нелинейные искажения. Документ.

  11. 8 minutes ago, Сергей Борщ said:

    но иметь такой механизм на случай необходимости и уметь им пользоваться - вполне здоровое желание.

    Ну да, выше дал подобный ответ!

     

    11 minutes ago, VladislavS said:

    Даже Cortex-M бывают очень разные.

    Я не возражаю. Но и со всеми кортексами не знаком. А охватывать широкий круг этих изделий в мои планы не входит. Я знаком только с Cortex-M0/M3/M4/М7. На них и ориентируюсь.

  12. 14 minutes ago, jcxz said:

    Зачем "сначала запускать загрузчик" при отладке приложения?

    А, теперь понял Ваш вопрос) Ответ на него банальный и субъективный: просто хочу:acute: Ну и интересно сделать шаг влево-вправо при отладке.

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