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

 
 
 
Reply to this topicStart new topic
> Подпрограмма записи страницы flash памяти
Karl
сообщение Mar 2 2006, 05:11
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 179
Регистрация: 4-02-05
Пользователь №: 2 429



У кого - нибудь есть исходники подпрограммы записи страницы flash памяти на IAR? Начал писать свою и столкнулся с трудностями: команда spm использует регистровую пару Z. Я же не могу записать в нее нужные данные. Структура
#pragma location=30
__no_init char page_addr;
не работает. Неужели придется писать кусок на ассемблере?
Go to the top of the page
 
+Quote Post
ZiB
сообщение Mar 2 2006, 05:22
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 122
Регистрация: 26-07-05
Из: Россия, Томск
Пользователь №: 7 109



Посмотри файлик intrinsics.h
там есть такая штука

/*
__AddrToZByteToSPMCR_SPM, pseudo code.
MOVW R31:R30,addr
OUT SPMCR,byte
SPM
*/
__intrinsic void __AddrToZByteToSPMCR_SPM(void __flash* addr,
unsigned char byte);
Go to the top of the page
 
+Quote Post
Aleks17
сообщение Mar 2 2006, 05:25
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 238
Регистрация: 17-01-05
Из: Новосибирск
Пользователь №: 2 003



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

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

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

Совмещать СИ и ассемблер надеюсь умеете.
Прикрепленные файлы
Прикрепленный файл  at90can128_lib_mcu_0_0_3.zip ( 241.44 килобайт ) Кол-во скачиваний: 71
 
Go to the top of the page
 
+Quote Post
Karl
сообщение Mar 2 2006, 05:56
Сообщение #4


Частый гость
**

Группа: Свой
Сообщений: 179
Регистрация: 4-02-05
Пользователь №: 2 429



Спасибо за ответы.

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


Ассемблер не пугает ничем. Писал на нем много. А вот по вопросу совмещения си и асма... В иаре кроме структуры asm("...") других способов пока не знаю.
Go to the top of the page
 
+Quote Post
Aleks17
сообщение Mar 2 2006, 08:30
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 238
Регистрация: 17-01-05
Из: Новосибирск
Пользователь №: 2 003



Цитата(Karl @ Mar 2 2006, 11:56) *
Спасибо за ответы.

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

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


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




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

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

Посмотрите хелп, там просто и доступно описано какие рег-ры можно использовать и как передавать параметры.
Go to the top of the page
 
+Quote Post
ArtemK
сообщение Mar 2 2006, 08:46
Сообщение #6


Участник
*

Группа: Свой
Сообщений: 36
Регистрация: 27-09-05
Из: Украина, г. Херсон
Пользователь №: 8 994



см. атмеловский аппнот 106 (AVR106: Cи-функции для чтения и записи флэш-памяти).
Найти можно здесь: Примеры применения семейства AVR
Go to the top of the page
 
+Quote Post
maegg
сообщение Mar 2 2006, 09:33
Сообщение #7


Частый гость
**

Группа: Свой
Сообщений: 129
Регистрация: 22-06-04
Из: S. Peterburg
Пользователь №: 103



Недавно обсуждалось
http://electronix.ru/forum/index.php?showtopic=13036
Go to the top of the page
 
+Quote Post
Karl
сообщение Mar 2 2006, 10:28
Сообщение #8


Частый гость
**

Группа: Свой
Сообщений: 179
Регистрация: 4-02-05
Пользователь №: 2 429



Спасибо, я уже все написал. Работает.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 18th July 2025 - 11:53
Рейтинг@Mail.ru


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