Firkat 0 4 мая, 2022 Опубликовано 4 мая, 2022 · Жалоба Здравствуйте! У меня стоит задача написать бутлоадер для микроконтроллера, указанного в теме. С какой стороны лучше подойти к этой задаче? Я новичок. На сайте производителя есть приложение COM ISP32 для загрузки ISP кода. Я его скачал, запустил, подключился к контроллеру. По инструкции попробовал считать текущий ISP код с помощью кнопки DUMP INFO, все получилось. Далее я попробовал написать в Keil программу бутлоадера, и сохранить в hex-файл. Далее через COM ISP32 загрузил ее в AP Flash, она загрузилась, при этом стерлась основная программа) И теперь ISP COM вообще ничего не считывает и не записывает... Можете объяснить новичку как правильно писать boot loader и загружать в мк? Можно ли это сделать без сторонних программ, используя только Keil? Я так понимаю, что ISP COM для удобства, а я с помощью него что-то сломал в прошивке) как это исправить?) по этому мк вообще не могу найти форумов.. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 184 4 мая, 2022 Опубликовано 4 мая, 2022 · Жалоба 30 минут назад, Firkat сказал: С какой стороны лучше подойти к этой задаче? Со скачивания и изучения даташита и юзер-мануала на этот МК. Уже сделали это? 30 минут назад, Firkat сказал: Можно ли это сделать без сторонних программ, используя только Keil? Можно: Кейл+эмулятор. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Firkat 0 4 мая, 2022 Опубликовано 4 мая, 2022 · Жалоба Такс, документацию скачал, инструменты скачал, создал простую программу (мигание светодиодом 3 раза), загрузил ее в нужную часть памяти контроллера, теперь вопрос как реализовать функцию перехода в основную программу из бутлоадера) В общем, я разобрался))) для того чтобы загрузить код загрузчика в нужный адрес я использовал специальное приложение от Megawin - ISP32 Programmer - там все интуитивно понятно даже такому новичку, как я))) А для того, чтобы перейти из загрузчика в основную программу использовал вот такой код: UnProtectModuleReg(RSTprotect); RST_WRstSource_Config(RST_WE_CPU_WE_mask_w, ENABLE); ProtectModuleReg(RSTprotect); __MEM_UnProtect(); __MEM_SetBootSelect(MEM_BOOT_AP); __MEM_Protect(); __NVIC_SystemReset(); Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dimka76 42 4 мая, 2022 Опубликовано 4 мая, 2022 · Жалоба 6 hours ago, Firkat said: вот такой код: А где вы этот код подглядели ? А как потом обновляться ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться