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

Boot Loader (MegaLoad) для mega128

Столкнулся с одной неприятной проблемой при разработке проекта, собственно и проблемой как то называть не хочется. Время прошивки mega128 по SPI через PONIPROG приближается к 5 минутам :)

 

Как один из вариантов решеня вижу установу в контроллер Boot Loader-а. Остановил выбор на MegaLoad, как наиболее распространнёном и отлаженном.

 

Немного погуглил, почитал форумы, всётаки решил переспросить, и описать свои действия дабы не ставать на грабли.

 

Проект собирал и изходнико под ICC7, указал в файлах mega128, в настройках проект выбрал BootLoader и размер 2kb. Готовый хекс открыл в PONIPROG, программа собственно загрузчик находится с самом конце.

 

Пока ещё не прошивал волнует один вопрос, если я его зашью в контроллер, потом активирую фьюз BOOTRST, и BOOTSZ0-1 -выберу тоже размер 2kb, то этого будет достаточно ?

 

Или нужно ещё правит исполняемы код, написанный на IARе чтоб он знал что ему уже доступно не 128 а на 2кб меньше ?

 

С ув.

post-30423-1220618700_thumb.jpg

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


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

Или нужно ещё правит исполняемы код, написанный на IARе чтоб он знал что ему уже доступно не 128 а на 2кб меньше ?

Коду программы это все равно, если он помещается в 126К, поскольку бут-сектор находится в конце адресного пространства. Так что если Вы не планируете больше менять программу, можно обойтись. В противном случае, да и просто наиболее правильно было бы, разумеется, исправить линк-файл.

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


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

Коду программы это все равно, если он помещается в 126К, поскольку бут-сектор находится в конце адресного пространства. Так что если Вы не планируете больше менять программу, можно обойтись. В противном случае, да и просто наиболее правильно было бы, разумеется, исправить линк-файл.

 

Не подскажите где и как это сделать, про линнк файл слышал но ни разу не приходилось его редактировать.

 

По ходу возник ещё один вопрос, если потом ктото после меня захочет прошить контроллер через SPI он сможет затереть бут лодер в конце флеш памяти или несможет ?

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


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

если потом ктото после меня захочет прошить контроллер через SPI он сможет затереть бут лодер в конце флеш памяти или несможет ?
Конечно сможет. Иначе как бы мы загрузчики отлаживали ;)

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


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

Не подскажите может есть ещё какието нюансы, шить бут лодер отказывается как я понял на первом блоке ? :05: .

 

Пробовал уже разные зборки на 1,2,4кб, с автобитрейдом и на фиксированной частоте работы ЮАРТА?

post-30423-1220638471_thumb.jpg

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


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

Немного поколдовал , девайсы начал узнавать друг друга но всёравно прошивка не льётся, даже и незнаю где больше искать грабли. Отлогини протокол снифером, может ктото встречал подобное ?

 

конфиги

//*****************************************************************************
//* BootLoader 4.2 for MegaLoad 4.0
//*
//* Devices supported at this time
//* ATMega8
//* ATMega16
//* ATMega32
//* ATMega64
//* ATMega128
//* ATMega162
//* ATMega169
//* ATMega8515
//* ATMega8535
//* ATMega48    not tested, please give me feedback!
//* ATMega88    
//* ATMega168   not tested, please give me feedback!
//* ATMega165   not tested, please give me feedback!
//* ATMega3250  not tested, please give me feedback!
//* ATMega6450  not tested, please give me feedback!
//* ATMega168   not tested, please give me feedback!
//* ATMega3290  not tested, please give me feedback!
//* ATMega6490  not tested, please give me feedback!
//* ATMega406   not tested, please give me feedback!
//* ATMega640   not tested, please give me feedback!
//* ATMega1280  not tested, please give me feedback!
//* ATMega2560  not tested, please give me feedback!
//* ATMCAN128   not tested, please give me feedback!
//*
//* Version 4.0 June 2005
//* 1.0 : First Release
//* 1.1 : Add auto baud rate, code smaller
//* 1.2 : Correct a bug with file larger than 65280 bytes.
//* 2.0 : All in one source file that fit in 512 Words
//* 3.0 : Add EEprom programming
//*       Add RS485 half duplex support
//*       Add LockBit programming
//* 3.1 : Correct a problem with interupt vector for M8/16/32/162/8515/8535
//*       Change some #define to be more clear
//* 3.2 : Add support for M48/M88/M168
//* 4.0 : Change code to work with MegaLoad .NET 4.0 
//*       Add M165/325x/645x/168/329x/649x/406/640/128x/256x
//* 4.1 : Add ATMegaCAN128
//* 4.2 : Some change for M88 tested by [email protected]
//*
//* [email protected]
//*****************************************************************************
//
// To setup the bootloader for your project you must
// remove the comment below to fit with your hardware
// recompile it using ICCAVR setup for bootloader
// of 512 word for ONLY flash programming
// or 1024 word for flash and eeprom programming
//
//*****************************************************************************
// MCU selection
// -->Do the same thing in assembly.s<--
//*****************************************************************************
//#define MEGATYPE  8
//#define MEGATYPE  16
//#define MEGATYPE  32
//#define MEGATYPE  64
#define MEGATYPE  128
//#define MEGATYPE  162
//#define MEGATYPE  169
//#define MEGATYPE  8515
//#define MEGATYPE  8535
//#define MEGATYPE  2313
//#define MEGATYPE  48
//#define MEGATYPE  88
//#define MEGATYPE  168
//#define MEGATYPE  165
//#define MEGATYPE  3250
//#define MEGATYPE  6450
//#define MEGATYPE  3290
//#define MEGATYPE  6490
//#define MEGATYPE  406
//#define MEGATYPE  640
//#define MEGATYPE  1280
//#define MEGATYPE  2560
//#define MEGATYPE  1128   //(ATMegaCAN128)


//*****************************************************************************
// Bootload on UART x
//*****************************************************************************
#define UART        0
//#define UART       1

//*****************************************************************************
// BaudRate
// If you don't specify the baudrate divisor the bootloader
// will automaticaly be in AutoBaudRate mode
//*****************************************************************************
#define BAUDRATE     7

//*****************************************************************************
// Auto OSCCAL
// Enable the autocalibration of OSCCAL register (can't be used with autobaud)
//
//*****************************************************************************
//#define AUTOOSCCAL

//*****************************************************************************
// Crystal speed
// frequancy of your MCU speed
// LOW  -> Xtal < 8Mhz
// HIGH -> Xtal >= 8Mhz
//*****************************************************************************
#define LOW
//#define HIGH

//*****************************************************************************
// EEprom programming
// enable EEprom programing via bootloader
// YOU MUST SET TO 1024 WORD THE BOOTLOADER SIZE IF EEPROM
// PROGRAMMING IS USE
//*****************************************************************************
//#define EEPROM

//*****************************************************************************
// LockBit programming
// enable LOCKBIT programing via bootloader
//*****************************************************************************
//#define LOCKBIT

//*****************************************************************************
// RS485
// if you use RS485 half duplex for bootloader
// make the appropriate change for RX/TX transceiver switch
//*****************************************************************************
//#define RS485DDR  DDRB
//#define RS485PORT PORTB
//#define RS485TXE  0x08

//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

[code]        .text
        
;*********************************************************
; Place a 1 for the processor you want use
;*********************************************************

MEGATYPE8   =  0
MEGATYPE16  =  0
MEGATYPE32  =  0
MEGATYPE64  =  0
MEGATYPE128 =  1
MEGATYPE162 =  0
MEGATYPE169 =  0
MEGATYPE8515 = 0
MEGATYPE8535 = 0
MEGATYPE2313 = 0
MEGATYPE48   = 0
MEGATYPE88   = 0
MEGATYPE168  = 0
MEGATYPE165  = 0
MEGATYPE3250 = 0
MEGATYPE6450 = 0
MEGATYPE3290 = 0
MEGATYPE6490 = 0
MEGATYPE406  = 0
MEGATYPE640  = 0
MEGATYPE1280 = 0
MEGATYPE2560 = 0
MEGATYPE1128 = 0  



;*********************************************************

:help:

post-30423-1220715759_thumb.jpg

post-30423-1220715887_thumb.jpg

post-30423-1220716053_thumb.jpg

post-30423-1220716272_thumb.jpg

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


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

BOOTSZ выставлен на 2к слов у вас, а bootloader располагаете с 1к от конца flash МК. Ошибка?

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


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

Зезультат аналогичный предыдущему, отправляет 0-страницу и вечное ожидание ?

post-30423-1220721241_thumb.jpg

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


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

//* BootLoader 4.2 for MegaLoad 4.0

А у вас MegaLoad версии 7. Где вы такой древний сам bootloader нашли? Обновите до 7.1, и должно все завестись.

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


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

//* BootLoader 4.2 for MegaLoad 4.0

А у вас MegaLoad версии 7. Где вы такой древний сам bootloader нашли? Обновите до 7.1, и должно все завестись.

 

7.1 не нашол а оф. сайте скачал h_ttp://www.microsyl.com скачал BootLoader 7.0, если есть другие источники напишите пожалуйста.

 

пересобрал, результат опять отрицательный, пишет SEND page 0 и всё повторяется опять. Решил проверить прошивку меги и обнаружил что 0 страница прошилась в мегу без ошибок что самое интересное :crying:

post-30423-1220729409_thumb.jpg

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


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

Вы когда последний раз были на h_ttp://www.microsyl.com ?

Там версия bootloader'а 7.1 лежит

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


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

Всем выражаю благодарность за помощью. Всё заработало. Причина как всегда не там где предполагалось :). Какимто образом виндовс рубает ответы с Ком порта, тоесть данные лоадер отправляет, шётся 0 страница а ответ рубает толи виндовс толи файервол пока ещё не выяснил, короче на работе включил всё работает :)

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


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

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

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

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

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

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

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

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

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

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