|
|
  |
Как Keil заливает прошивку в МК ? |
|
|
|
Oct 3 2008, 08:52
|
Местный
  
Группа: Свой
Сообщений: 339
Регистрация: 26-10-04
Пользователь №: 985

|
Цитата(goodwin @ Oct 3 2008, 12:30)  Да стандартно - с помощью JTAG в кристалл записывается загрузчик, потом этот загрузчик, управляясь по тому-же jtag, пишет флэш. А куда записывается загрузчик ? И почему бы всю флеш не прописать так же как записывается загрузчик ? И опять таки Keil "знает" все программы загрузчики для всех кристаллов которые он умеет программировать ?
|
|
|
|
|
Oct 3 2008, 09:10
|

Местный
  
Группа: Свой
Сообщений: 331
Регистрация: 22-07-08
Из: Р О С С И Я
Пользователь №: 39 145

|
Цитата(-=Sergei=- @ Oct 3 2008, 13:52)  А куда записывается загрузчик ? И почему бы всю флеш не прописать так же как записывается загрузчик ? И опять таки Keil "знает" все программы загрузчики для всех кристаллов которые он умеет программировать ? ИМХО, загрузчик в 8КБ лежит в последних секторе(ах) флешки, недоступном(ых) для пользователя ни через что. Например про это можно почитать здесь: UM2368 Chapter 27.
Сообщение отредактировал FormatCft - Oct 3 2008, 09:18
|
|
|
|
|
Oct 3 2008, 10:45
|
Гуру
     
Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136

|
Цитата(-=Sergei=- @ Oct 3 2008, 12:52)  А куда записывается загрузчик ? В ОЗУ, куда же ещё? Цитата(-=Sergei=- @ Oct 3 2008, 12:52)  И почему бы всю флеш не прописать так же как записывается загрузчик ? Потому что совсем не факт, что все микроконтроллеры, которые поддерживает Keil, могут прошивать флэш командами JTAG, если вообще какие-нибудь могут. А вот с загрузчиком в ОЗУ можно прошить любой микроконтроллер, который поддерживает функцию IAP (in-application programming). Цитата(FormatCft @ Oct 3 2008, 13:10)  ИМХО, загрузчик в 8КБ лежит в последних секторе(ах) флешки, недоступном(ых) для пользователя ни через что. Например про это можно почитать здесь: UM2368 Chapter 27. Разве тут упоминался конкретный микроконтроллер? Кроме NXP есть и другие производители.
|
|
|
|
|
Oct 3 2008, 12:52
|
Местный
  
Группа: Свой
Сообщений: 339
Регистрация: 26-10-04
Пользователь №: 985

|
Цитата(scifi @ Oct 3 2008, 14:45)  В ОЗУ, куда же ещё? Потому что совсем не факт, что все микроконтроллеры, которые поддерживает Keil, могут прошивать флэш командами JTAG, если вообще какие-нибудь могут. А вот с загрузчиком в ОЗУ можно прошить любой микроконтроллер, который поддерживает функцию IAP (in-application programming). Разве тут упоминался конкретный микроконтроллер? Кроме NXP есть и другие производители. Спасибо. Вроде разобрался. Производитель нового МК делает небольшой проект (шаблон которого предлагает Кейл) и описывает функции EraseChip, EraseBlock, ProgramBlock, Init and UnInit , компилирует и затем полученный HEX сохраняется в \KEIL\ARM\FLASH\. В окне Configure Flash Download dialog затем можно загрузить эту прошивку в ОЗУ и Кеил работает с известными ему функциями для прошивки. Т.е. кейл знает только данные функции, а как уже реализованы функции лежит на совести производителя МК. Остается вопрос. ГДЕ ФУНКЦИЯ ReadBlock ?
|
|
|
|
|
Oct 3 2008, 16:07
|

старший лаборант
     
Группа: Свой
Сообщений: 2 702
Регистрация: 30-09-05
Из: ЮЗЖД
Пользователь №: 9 097

|
А ещё можно программировать внешней утилитой, поддерживающей командную строку. В этом случае наличие какого бы то ни было загрузчика в МК необязательно. Открываем "Flash" - "Configure Flash Tools". Там отмечаем "Use External Tool for Flash Programming". В поле "Command" вводим имя .exe-файла утилиты (если нужно, то полный путь к нему), в поле "Arguments" - необходимые ключи. Пример:
Command: FM.EXE Arguments: "DEVICE($D,$X) INTERFACE(NXPICPBRIDGE) ERASEUSED("#H",PROTECTISP) HEXFILE("#H",NOCHECKSUMS,NOFILL,PROTECTISP) COM(2,19200) HARDWARE(KEILMCB900)"- используется программа "Flash Magic", $D - DEVICE - берётся из проекта, $X - тактовая частота, тоже из проекта, режим работы программатора - ISP/ICP мост, стирать только блоки, используемые прошиваемым .hex-файлом и т.д. и т.п.
--------------------
Китайская комплектация - европейское качество! ;)
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|