Патч-стол - в основном у вашего ПЗУ есть еще один встроенный переход в встроенные в него ОД (Flash) adddresses. Вспышка всегда имеет какой-то прыжок обратно в позицию сразу после вызова ПЗУ, чтобы вернуться к исходному коду. Теперь у вас есть возможность изменить поведение вашей программы из ОЗУ. Это предполагает, что вы, конечно, можете запускать код из ОЗУ. Если нет, тогда только таблицы данных могут быть изменены «на лету».
Теперь, просто имея один прыжок при запуске, вы можете изменить исходный код состояния, например номера версий или другие глобальные/постоянные данные, но этого может быть недостаточно. Вы можете добавить еще один прыжок в flash, который запускается каждый раз «так часто» для вашего кода, чтобы он мог обновить состояние программы после его запуска - что-то вроде vblank или один раз в петле приложения.
Вышеупомянутое должно дать вам достаточно возможностей для изменения данных, которые были изменены со временем с момента выпуска или, возможно, для исправления небольшой логической ошибки, но это не позволит вам выполнять функции изменения всей продажи. Для этого вам нужно больше кода. И что больше кода зависит от того, сколько оперативной памяти вы можете использовать.
Например, если у вас достаточно ОЗУ и работает из Flash RAM, это не повредит слишком много (и разрешено), вы можете сделать вещи очень гибкими, скопировав все свои функции ROM-ROM в ОЗУ при запуске, затем вызвав описанный выше скачок патча RAM, который позволит новому коду, хранящемуся в другом месте вашего патча RAM, перезаписать ранее скопированный код. Если вы примете такой подход, вы также захотите убедиться, что вы оставили дополнительное пространство вокруг своих оригинальных функций, чтобы новые функциональные функции немного расширялись. Исходный код, который нужно скопировать в ОЗУ, можно сохранить в сжатом виде, чтобы сохранить пространство ПЗУ. Это позволяет вам что-то менять после факта. Он также вводит очень простой способ использовать ваш код, если что-то еще разрешено записывать в ОЗУ, поэтому будьте осторожны.
Надеюсь, это поможет.
Вам нужно предоставить немного больше информации, чем это. (например: какое устройство вы говорите и т. д.). Обновите свой вопрос и добавьте соответствующий тег (и). –