ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Воскресенье
22 декабря
761804 Топик полностью
Ксения (12.06.2017 17:13 - 17:17, просмотров: 313) ответил AlexG на Ваяю бутлоадер для Хмеги с заимствованием части кода из апликейшн ноты AVR1605 и что-то у меня функция SP_LoadFlashWord ничего во флэш не записывает. Никто случайно не сталкивался? Чего ей может не хватать?
На счет Хмеги не знаю, т.к. не пробовала программно ей писать во флеш, но у обычных Мег работает жесткое правило - писать во флеш можно только из области загрузчика. Вот и пришлось тогда мне создать отдельный сегмент кода, разместив его в загрузочной области, и поместить туда функцию, которая страницу из буфера во флеш загружала. И вот этой функцией пользовалась, вызывая ее с нужными мне параметрами из нижней части программного кода. Возможно, что и у Хмеги есть защита такого же типа. Это код для моей обычной Меги, но привожу его для иллюстрации идеи (компилятор IAR): #pragma location="BOOT" void PageLoader( unsigned int flash_address, unsigned char *buffer) { int i; _WAIT_FOR_SPM(); _SPM_ERASE( flash_address); _WAIT_FOR_SPM(); _ENABLE_RWW_SECTION(); for( i=0; i < 128; i++) _SPM_FILLTEMP( i << 1, ((int*)buffer)[i]); _WAIT_FOR_SPM(); _SPM_PAGEWRITE( flash_address); _WAIT_FOR_SPM(); _ENABLE_RWW_SECTION(); }