спеки на первой странице выдачи.
Короче. Описываю ситуацию целиком. Я пишу прошивку контроллера. При наступлении определённой ситуации, мне нужно прыгнуть в область системной памяти (зашитой на заводе). Для успешного прыжка, согласно даташиту, я отключаю периферию, поэтому теряю отладчик. В области системной памяти по адресу 0x1FFFD800 находится фукнция сигнатуры void func(void). Мне нужно всего лишь правильно туда прыгнуть. Мой вопрос состоит в том, почему код void (*func)() = (void (*)())(0x1FFFD800); func(); не прыгает, а код uint32_t address = *(volatile uint32_t*)(0x1FFFD800 + 4); void (*func)() = (void (*)())address; func(); прыгает.
Обсуждают сегодня