Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Подпрограмма записи страницы flash памяти
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
Karl
У кого - нибудь есть исходники подпрограммы записи страницы flash памяти на IAR? Начал писать свою и столкнулся с трудностями: команда spm использует регистровую пару Z. Я же не могу записать в нее нужные данные. Структура
#pragma location=30
__no_init char page_addr;
не работает. Неужели придется писать кусок на ассемблере?
ZiB
Посмотри файлик intrinsics.h
там есть такая штука

/*
__AddrToZByteToSPMCR_SPM, pseudo code.
MOVW R31:R30,addr
OUT SPMCR,byte
SPM
*/
__intrinsic void __AddrToZByteToSPMCR_SPM(void __flash* addr,
unsigned char byte);
Aleks17
1) А чем вас так пугает ассемблер?

2) возьмите готовую (от Atmel) библиотеку для записи flash

Например во вложении, если лень на Atmel-е искать. Там в папке flash лежит как раз то что нужно.

Совмещать СИ и ассемблер надеюсь умеете.
Karl
Спасибо за ответы.

Цитата(Aleks17 @ Mar 2 2006, 10:25) *
1) А чем вас так пугает ассемблер?


Ассемблер не пугает ничем. Писал на нем много. А вот по вопросу совмещения си и асма... В иаре кроме структуры asm("...") других способов пока не знаю.
Aleks17
Цитата(Karl @ Mar 2 2006, 11:56) *
Спасибо за ответы.

Цитата(Aleks17 @ Mar 2 2006, 10:25) *

1) А чем вас так пугает ассемблер?


Ассемблер не пугает ничем. Писал на нем много. А вот по вопросу совмещения си и асма... В иаре кроме структуры asm("...") других способов пока не знаю.




Создаете отдельный ассемблерный файл, объявляете PUBLIC имена функций.

В си их прописываете как extern "C" myfunction() и работаете.

Посмотрите хелп, там просто и доступно описано какие рег-ры можно использовать и как передавать параметры.
ArtemK
см. атмеловский аппнот 106 (AVR106: Cи-функции для чтения и записи флэш-памяти).
Найти можно здесь: Примеры применения семейства AVR
maegg
Недавно обсуждалось
http://electronix.ru/forum/index.php?showtopic=13036
Karl
Спасибо, я уже все написал. Работает.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.