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

 
 
> константы в программной памяти AVR
barvap
сообщение Apr 17 2006, 11:58
Сообщение #1





Группа: Новичок
Сообщений: 3
Регистрация: 13-04-06
Пользователь №: 16 088



Имеется код для Codevision AVR:

extern flash unsigned int Sernum;

void main (void){
unsigned int nomer;
nomer=Sernum;
}
.....
interrupt [23] void PP_ID(void){
#asm
_Sernum: .DW 0x1234
#endasm
}

при использовании Codevision AVR 1.24.4 все прекрасно работает, но при переходе на 1.24.7f
линкер выдает ошибку - Sernum не определен.
Как правильно описать Sernum ??
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
barvap
сообщение Apr 19 2006, 06:18
Сообщение #2





Группа: Новичок
Сообщений: 3
Регистрация: 13-04-06
Пользователь №: 16 088



Метод

#asm(".cseg")
#asm(".org 0x1FFE")
flash unsigned int Sernum;

не подходит, поскольку блок данных должен размешаться после interrupt.
Просто это уже готовый проект и внешний программатор заносит в Sernum новые данные при программировании AVR.
Адрес Sernum определяется через адреса вектора прерывания, т.е. нельзя менять размещение Sernum.

Буду пробовать через адрес функции обработки прерывания добраться до Sernum
Go to the top of the page
 
+Quote Post



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

 


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


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