Перейти к содержанию
    

Megawin MG32F02A128 Boot loader

Здравствуйте!

У меня стоит задача написать бутлоадер для микроконтроллера, указанного в теме. С какой стороны лучше подойти к этой задаче? Я новичок. На сайте производителя есть приложение COM ISP32 для загрузки ISP кода. Я его скачал, запустил, подключился к контроллеру. По инструкции попробовал считать текущий ISP код с помощью кнопки DUMP INFO, все получилось. Далее я попробовал написать в Keil программу бутлоадера, и сохранить в hex-файл. Далее через COM ISP32 загрузил ее в AP Flash, она загрузилась, при этом стерлась основная программа) И теперь ISP COM вообще ничего не считывает и не записывает... Можете объяснить новичку как правильно писать boot loader и загружать в мк? Можно ли это сделать без сторонних программ, используя только Keil? Я так понимаю, что ISP COM для удобства, а я с помощью него что-то сломал в прошивке) как это исправить?) по этому мк вообще не могу найти форумов..

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

30 минут назад, Firkat сказал:

С какой стороны лучше подойти к этой задаче?

Со скачивания и изучения даташита и юзер-мануала на этот МК. Уже сделали это?

30 минут назад, Firkat сказал:

Можно ли это сделать без сторонних программ, используя только Keil?

Можно: Кейл+эмулятор.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Такс, документацию скачал, инструменты скачал, создал простую программу (мигание светодиодом 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();

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

6 hours ago, Firkat said:

вот такой код:

А где вы этот код подглядели ?

А как потом обновляться ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...