реклама на сайте
подробности

 
 
2 страниц V  < 1 2  
Reply to this topicStart new topic
> [Решено] LPC1788 bootloader переход на адрес приложения, приводит к lockup
Dunduk
сообщение Nov 11 2013, 14:58
Сообщение #16


Частый гость
**

Группа: Участник
Сообщений: 87
Регистрация: 15-08-09
Пользователь №: 51 904



Цитата(ar__systems @ Sep 30 2013, 21:17) *
Этот метод не работает, точнее работает неправильно. При заходе в main() стэк оказывается сдвинут на 0x680 по сравнению с запуском приложения без бутлоадера. Ассемблерный вариант работает правильно.

Интересно почему это происходит? И что за магическое число 0x680
Я вижу у себя ту же картину. То есть, переход происходит совсем не туда куда я хочу (0x2000) Мой код:
Код
__asm void boot_jump( uint32_t address ){
   LDR SP, [R0]    ;Load new stack pointer address
   LDR PC, [R0, #4];Load new program counter address
}

void execute_user_code(void)
{
    uint8_t tmp;

    NVIC->ICER[0] = 0xFFFFFFFF;    //Disable all interrupts
    NVIC->ICER[1] = 0x00000001;
    
    NVIC->ICPR[0] = 0xFFFFFFFF;    //Clear all pending interrupts
    NVIC->ICPR[1] = 0x00000001;
    for(tmp = 0; tmp < 32; tmp++)    // Clear all interrupt priority
    {
            NVIC->IP[tmp] = 0x00;
    }
    
    LPC_SC->CCLKSEL = 0x01;     // set sysclk (12MHz) as clock source
    LPC_SC->PLL0CON = 0;             // disable PLL
    LPC_SC->PLL0FEED = 0xAA;
    LPC_SC->PLL0FEED = 0x55;

    SCB->VTOR = (0x2000) & 0x1FFFFF80;
    boot_jump(0x2000);
}
Go to the top of the page
 
+Quote Post
Dunduk
сообщение Nov 13 2013, 07:18
Сообщение #17


Частый гость
**

Группа: Участник
Сообщений: 87
Регистрация: 15-08-09
Пользователь №: 51 904



Oops...
Сам себя обманул :-)
У меня в проекте там задан адрес старта 0x2000. При этом я собственными руками писал scatter file для линкера, где указа адрес старта 0x0000. И поставил галочку "верить скеттеру" :-)
Щас все работает.
Go to the top of the page
 
+Quote Post

2 страниц V  < 1 2
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 29th August 2025 - 00:57
Рейтинг@Mail.ru


Страница сгенерированна за 0.01339 секунд с 7
ELECTRONIX ©2004-2016