реклама на сайте
подробности

 
 
> IAR -> ATMEGA128 бутлоадер
D!m@
сообщение Dec 20 2009, 17:28
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 74
Регистрация: 10-04-07
Пользователь №: 26 901



Пишу бутлоадер для Atmega128 в IAR.
Не получается стереть страницу!
Макрос
Код
#define _PAGE_ERASE(addr) __AddrToZByteToSPMCR_SPM( (void __flash *) (addr), 0x03 )
не работает smile3046.gif
Прога работает только флеш не стирается.

Код
_flash const unsigned char  mas[256]@0x3000={0,1,2,3,4,5,6,7,8,9};
void main()
{
    
#pragma diag_suppress=Pe1053 // Suppress warning for conversion from long-type address to flash ptr.
  _WAIT_FOR_SPM();        
  _PAGE_ERASE( 0х3000 );
#pragma diag_default=Pe1053 // Back to default.
_WAIT_FOR_SPM();    

printf("%02X",SPMCSR);
for(int i=0x3000;i<0x3025;i++)
  printf("%02X",_LOAD_PROGRAM_MEMORY(i));



Результат:
Код
00 00 01 02 03 04 ....

фюзы разрешают полный доступ
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Сергей Борщ
сообщение Dec 20 2009, 18:45
Сообщение #2


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(D!m@ @ Dec 20 2009, 19:28) *
Макрос
Код
#define _PAGE_ERASE(addr) __AddrToZByteToSPMCR_SPM( (void __flash *) (addr), 0x03 )
не работает smile3046.gif
По какому адресу расположена функция main()? Какой размер boot-области установлен фузами?


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post

Сообщений в этой теме


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 24th June 2025 - 09:14
Рейтинг@Mail.ru


Страница сгенерированна за 0.01357 секунд с 7
ELECTRONIX ©2004-2016