ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Воскресенье
4 мая
1515054 Топик полностью
LightElf (28.04.2025 16:17 - 01.05.2025 21:13, просмотров: 255) ответил vesago на Обращаюсь к отряду телепатов быстрого реагирования :) Может идею подкинете. Есть устройство с GD32F303. Я из примеров китайских взял загрузчик HID USB, слегка подправил и использую. Тут понадобилось грузить фирмварю из микрухи w25q. Добавил в китайский пример эту тему. Вроде работает. Но при переходе из бута в основную прошивку падает в хардфаулт. Ума не приложу с чего бы. Решил костыльно - было без оптимизации, добавил слегка - перестало падать. Но тревожно - хочется
Вот такой код у меня работает на целой кучке M3/M4 
void sys_start(void)
{
    uint32_t* vect;
    __disable_interrupt();
    /* получим начальный адрес фирмвари */
    vect = (uint32_t*)FIRMWARE_BASE;
    /* переключим таблицу векторов на фирмварь */
    SCB->VTOR = (uint32_t)vect;
    __DSB();
    /* установим стек куда просит фирмварь */
    __set_SP(vect[0]);
    /* установим регистр возврата на фирмварь */
    __set_LR(vect[1]);
}
Не надо делать мне как лучше, оставьте мне как хорошо