но это не отменяет того, что деинит кривое уебищо ,которое не возвращает взад все то что сделал инит Короче, вот вам посоны как кошерно сьябывать с бутлоадера. void flash_jump_to_app(void) { /* Function pointer to the address of the user application. */ fnc_ptr jump_to_app; jump_to_app = (fnc_ptr)(*(volatile uint32_t*) (FLASH_APP_START_ADDRESS+4u)); //HAL_DeInit(); RCC->APB1RSTR = 0xFFFFFFFFU; RCC->APB1RSTR = 0x00; RCC->APB2RSTR = 0xFFFFFFFFU; RCC->APB2RSTR = 0x00; //SysTick DeInit SysTick->CTRL=0; SysTick->VAL=0; SysTick->LOAD=0; __disable_irq(); //NVIC DeInit __set_BASEPRI(0); __set_CONTROL(0); NVIC->ICER[0]=0xFFFFFFFF; NVIC->ICPR[0]=0xFFFFFFFF; NVIC->ICER[1]=0xFFFFFFFF; NVIC->ICPR[1]=0xFFFFFFFF; NVIC->ICER[2]=0xFFFFFFFF; NVIC->ICPR[2]=0xFFFFFFFF; __enable_irq(); /* Change the main and local stack pointer. */ __set_MSP(*(volatile uint32_t*)FLASH_APP_START_ADDRESS); SCB->VTOR=*(volatile uint32_t*)FLASH_APP_START_ADDRESS; jump_to_app(); }
Комментарии: 23
W1ruus
Ты ж вроде неебенно с жопытом, как так наебался ? Ручками на ассемблере не ? )))
Anonim
да стар я стал, ленив
Vga
а из-за чего оно косячило разобрался?
Anonim
тем более ассемблер армов я не курил никогда
Anonim
думаю изза того, что он начал мутить и оптимизировать вызовы и похоже где то попытался замутить коллаб с пряжком, а я там ему стек пойнтер поменял на ходу. Вот он и улетел в астрал
Jirafivanich
и там массив er-pr распидорашен по памяти?
Vga
а в ассемблере ты это чекал?
Anonim
неа
W1ruus
Ну чо тут сказать )))
Vga
а неплохо бы посмотреть что именно сделал компилер
W1ruus
За удачу !!! ))) Ди, бросай хуйню !!! Сделай паузу, наебенься !!! )))
Anonim
И то верно. у меня тут флян винища стоит. Надо накатить
W1ruus
Завтра всё переделаешь )))
Anonim
Бля че-то сала захотелось теперь...
Vasiliy
Ты у кого-то на дачке?
W1ruus
Продам свои запасы ))) И куплю какую нить нефтекомпанию ))) На днюхе, я ж писал, тут скучно, сходка сосисок, пэрсиков нет )))
Vasiliy
Лучше бы приходил чугуний разглядывать
W1ruus
Нэ мог, обестчал давно... Давнее чем Белке обещал )))
Anonim
да чет он по дефолту листинг не генерит, а бегло на нашел какой ключ ему подсунуть
Vga
objdump умеет дизассемблировать обратно не помню только подтягивает ли строки из сырка еще мона попробовать притащить весь релевантный код в годболт и смотреть там
Jirafivanich
я дико извиняюся, а чево, в си не завезли какой-нить memset или ещё чевонить для заполнения блока памяти байтиком?
Vga
а то может оно по-прежнему содержит ошибку, просто она пока перестала прооявляться
Anonim
а он всегда там был в стдинте вроде бы есть. юзаю его в том числе тут