Jump to content

    
Rst7

i.MX RT Хитрости с TCM при сбросе.

Recommended Posts

Тут обнаружились интересные грабли. Если в вашем софте вы отключаете OCRAM (я, например, все доступное  ОЗУ переключаю в режим ITCM/DTCM), то при любом не Power On-сбросе все повиснет. Не Power On Reset - это, например, срабатывание сторожевого таймера или софтовый сброс через регистр AIRCR, или через отладчик.

Оказывается (это отражено в документации, понятное дело мелким шрифтом на одной из 3000 страниц мануала), что не POR (в терминах мануала - Cold reset) не сбрасывает в начальное состояние IOMUXC. Т.к. конфигурация ITCM/DTCM/OCRAM находится именно в регистрах IOMUXC, то при cold reset ядро стартует с измененной конфигурацией ОЗУ, а в Boot Rom'е колхозники забыли, что надо сначала инициализировать соответствующие регистры IOMUXC, а уже потом хоть что-то делать с ОЗУ (в конкретно Boot Rom'е первый же BL приводит к фатальным последствиям).

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

Думаю, что такая история во всей линейке i.MX RT, а может и шире. Конкретно я работал с 1020.

В общем, не наступите на грабли. Доклад окончен.

Share this post


Link to post
Share on other sites

Ну поглядите в документации, инициализирует ли там Cold Reset регистры, ответственные за конфигурацию TCM. Если нет - то, видимо, будет такая же жопа.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.