-
- но есть нюанс. В Вашем варианте будет call вместо jmp и в случае
бутлодера еще до перехода на надо бы поправить указатель стека(это
на сях не сделать) а то стартап код живущий на 0 может быть написан
в расчете на хардресет где указатель стека аппаратно
инициализируется. - Nikolay801_(28.02.2023 10:18)
- Разумеется, стартап-код пишется и компилируется для адреса 0, и
первое, что этот код делает - настраивает (заново!) стек и пр. Так
что состояние стека "в предыдущей жизни", в секции бутлоадера, уже
не играет никакой роли. А вот периферия - тут другое дело. Поэтому
в бутлоадерах перед переходом в аппликейшЫн, я использую аппаратный
вачдог ресет, чтобы проц полностью весь обнулился. - vpv.vpv(01.03.2023 07:47)
- стартап код из stdlib stm32 который почти ни кто не трогает. Nikolay801_(95 знак., 02.03.2023 10:23)
- Элементарно, Ватсон. Стек трогает таблица векторов прерываний, и
это тоже часть стартапа. - SciFi(02.03.2023 10:25)
- при хард ресете трогает, при жамп/колл на 0 таблица невозмутимо
лежит в сторонке. - Nikolay801_(02.03.2023 10:55)
- Виноват, влез, не глянув на контекст. Так-то да, обычно настраивают стек и прыгают. Причём я не устаю рекламировать свой способ прыжка (см. ниже). Но и без настройки стека можно. Просто убедиться, что стартап его настроит, и тогда нет проблем. Но такой вариант реже встречается, КМК. SciFi(201 знак., 02.03.2023 11:16)
- при хард ресете трогает, при жамп/колл на 0 таблица невозмутимо
лежит в сторонке. - Nikolay801_(02.03.2023 10:55)
- Элементарно, Ватсон. Стек трогает таблица векторов прерываний, и
это тоже часть стартапа. - SciFi(02.03.2023 10:25)
- стартап код из stdlib stm32 который почти ни кто не трогает. Nikolay801_(95 знак., 02.03.2023 10:23)
- Разумеется, стартап-код пишется и компилируется для адреса 0, и
первое, что этот код делает - настраивает (заново!) стек и пр. Так
что состояние стека "в предыдущей жизни", в секции бутлоадера, уже
не играет никакой роли. А вот периферия - тут другое дело. Поэтому
в бутлоадерах перед переходом в аппликейшЫн, я использую аппаратный
вачдог ресет, чтобы проц полностью весь обнулился. - vpv.vpv(01.03.2023 07:47)
- ресетнуть вотчдогом - Oman(28.02.2023 07:07)
- у кортексов, которые нынче везде, есть SYSRESETREQ Nikolay801_(1 знак., 28.02.2023 10:22, картинка)
- У AVR есть регистр MCUSR, в котором флажки указывают на то, как
закончилась предыдущая жизнь. Можно сделать выводы. :)) - vpv.vpv(01.03.2023 07:56)
- В msp430g пользую сброс при исполнении инструкции по запрещенному адресу. - Гyдвин(01.03.2023 08:04)
- ага, сам через него делаю, просто забыл) - Oman(28.02.2023 10:36)
- У AVR есть регистр MCUSR, в котором флажки указывают на то, как
закончилась предыдущая жизнь. Можно сделать выводы. :)) - vpv.vpv(01.03.2023 07:56)
- у кортексов, которые нынче везде, есть SYSRESETREQ Nikolay801_(1 знак., 28.02.2023 10:22, картинка)
- но есть нюанс. В Вашем варианте будет call вместо jmp и в случае
бутлодера еще до перехода на надо бы поправить указатель стека(это
на сях не сделать) а то стартап код живущий на 0 может быть написан
в расчете на хардресет где указатель стека аппаратно
инициализируется. - Nikolay801_(28.02.2023 10:18)