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

 
 
3 страниц V  < 1 2 3 >  
Reply to this topicStart new topic
> IAR и запись в EEPROM, Вопрос по реализации записи в eeprom в IAR
aleksey_g
сообщение May 25 2006, 12:35
Сообщение #16


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

Группа: Свой
Сообщений: 151
Регистрация: 11-01-06
Из: Украина Ровно
Пользователь №: 13 066



Цитата
Я так тоже думал...
Пришлось самому прерывания запрещать


Уважаемый arttab, похоже неправда Ваша!
Вот что мне нагенерил ИАР4.12А:

0000B8 99F9 SBIC 0x1F,1
0000BA CFFE RJMP 0x0B8
0000BC 9508 RET
0000BE 9543 INC R20
0000C0 BD41 OUT EEAR,R20
0000C2 94F8 CLI
0000C4 9AFA SBI 0x1F,2
0000C6 9AF9 SBI 0x1F,1
0000C8 BE0F OUT SREG,R0
0000CA 9508 RET
__eeput16_8:
0000CC B60F IN R0,SREG
0000CE DFF4 RCALL 0x0B8
0000D0 BD00 OUT EEDR,R16
0000D2 DFF6 RCALL 0x0C0
0000D4 DFF1 RCALL 0x0B8
0000D6 BD10 OUT EEDR,R17
0000D8 CFF2 RJMP 0x0BE
Go to the top of the page
 
+Quote Post
arttab
сообщение May 26 2006, 01:43
Сообщение #17


Профессионал
*****

Группа: Свой
Сообщений: 1 432
Регистрация: 7-12-04
Из: Новосибирск
Пользователь №: 1 371



у меня IAR 3.10C smile.gif


--------------------
OrCAD, Altium,IAR, AVR....
Go to the top of the page
 
+Quote Post
_Bill
сообщение May 26 2006, 07:56
Сообщение #18


Местный
***

Группа: Участник
Сообщений: 416
Регистрация: 18-04-06
Из: Челябинск
Пользователь №: 16 219



Цитата(arttab @ May 26 2006, 04:43) *
у меня IAR 3.10C smile.gif

Обращение к EEPROM делается при помощи библиотечных служебных функций. А они слабо зависят (практически не зависят) от версии компилятора.
Go to the top of the page
 
+Quote Post
arttab
сообщение May 26 2006, 08:56
Сообщение #19


Профессионал
*****

Группа: Свой
Сообщений: 1 432
Регистрация: 7-12-04
Из: Новосибирск
Пользователь №: 1 371



Спорить не буду.
пес отключен. при получении команды записи данных во флешь часто мк вис (др. команды выполнял нормально). После принудительного запрета прерываний до окончания записи - виснуть перестал.


--------------------
OrCAD, Altium,IAR, AVR....
Go to the top of the page
 
+Quote Post
CSB
сообщение Jun 25 2006, 18:36
Сообщение #20


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

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



Цитата
Посмотрите также здесь.
Это я когда-то выкладывал исправленный файл иаровского исходника для работы с ЕЕПРОМ.

Как подключить к проекту на С файл eeprom.s90?
Go to the top of the page
 
+Quote Post
arttab
сообщение Jun 26 2006, 01:27
Сообщение #21


Профессионал
*****

Группа: Свой
Сообщений: 1 432
Регистрация: 7-12-04
Из: Новосибирск
Пользователь №: 1 371



пока не подключал. переносимось проекта теряется. Так можно "свинью" подложить нечаяно - исходники на др. комп и привет.


--------------------
OrCAD, Altium,IAR, AVR....
Go to the top of the page
 
+Quote Post
IgorKossak
сообщение Jun 26 2006, 06:30
Сообщение #22


Шаман
******

Группа: Модераторы
Сообщений: 3 064
Регистрация: 30-06-04
Из: Киев, Украина
Пользователь №: 221



Цитата(CSB @ Jun 25 2006, 21:36) *
Цитата

Посмотрите также здесь.
Это я когда-то выкладывал исправленный файл иаровского исходника для работы с ЕЕПРОМ.

Как подключить к проекту на С файл eeprom.s90?

Точно так же, как Вы подключаете к проекту любой *.C файл.
После включения файла в проект и сборки всего проекта линкер проигнорирует все функции работы с eeprom из библиотеки и включит исправленные.
При этом желательно не заменять стандартный файл eeprom.s90 в папке avr\src\lib, а записать его в рабочую папку проекта.

Цитата(arttab @ Jun 26 2006, 04:27) *
пока не подключал. переносимось проекта теряется. Так можно "свинью" подложить нечаяно - исходники на др. комп и привет.

Чего это вдруг теряется? Переносите eeprom.s90 (если о нём речь) вместе с другими файлами.
Или Вы имели в виду переносимость на другую платформу?
Go to the top of the page
 
+Quote Post
arttab
сообщение Jun 26 2006, 09:01
Сообщение #23


Профессионал
*****

Группа: Свой
Сообщений: 1 432
Регистрация: 7-12-04
Из: Новосибирск
Пользователь №: 1 371



Если кто дернет файл с из проекта или не подключит в проект будеут глюки.


--------------------
OrCAD, Altium,IAR, AVR....
Go to the top of the page
 
+Quote Post
arttab
сообщение Jun 26 2006, 09:13
Сообщение #24


Профессионал
*****

Группа: Свой
Сообщений: 1 432
Регистрация: 7-12-04
Из: Новосибирск
Пользователь №: 1 371



Подключил. вылетает ошибка:
Error[2]: Failed to open #include file 'macros.m90'
на
#include "macros.m90"
это он ищит локально библиотеку и не может найти?


--------------------
OrCAD, Altium,IAR, AVR....
Go to the top of the page
 
+Quote Post
IgorKossak
сообщение Jun 26 2006, 09:38
Сообщение #25


Шаман
******

Группа: Модераторы
Сообщений: 3 064
Регистрация: 30-06-04
Из: Киев, Украина
Пользователь №: 221



Цитата(arttab @ Jun 26 2006, 12:01) *
Если кто дернет файл с из проекта или не подключит в проект будеут глюки.

Странные у Вас отношения wink.gif
Кто-то приходит, что-то дёргает.

Цитата(arttab @ Jun 26 2006, 12:13) *
Подключил. вылетает ошибка:
Error[2]: Failed to open #include file 'macros.m90'
на
#include "macros.m90"
это он ищит локально библиотеку и не может найти?

Это файл макросов, лежит в папке avr\src\lib.
Его можно в рабочую папку не переписывать, достаточно указать к нему путь (Project\Options\Assembler\Preprocessor)
Go to the top of the page
 
+Quote Post
arttab
сообщение Jun 27 2006, 08:21
Сообщение #26


Профессионал
*****

Группа: Свой
Сообщений: 1 432
Регистрация: 7-12-04
Из: Новосибирск
Пользователь №: 1 371



спасиба. разобрался. код на 2 байта вырос


--------------------
OrCAD, Altium,IAR, AVR....
Go to the top of the page
 
+Quote Post
Rash
сообщение Feb 13 2008, 09:26
Сообщение #27


Знающий
****

Группа: Свой
Сообщений: 639
Регистрация: 5-09-05
Пользователь №: 8 231



Цитата(CSB @ Jun 25 2006, 22:36) *
Как подключить к проекту на С файл eeprom.s90?


Ни как не могу подключить этот файл к проекту (eeprom.s90) без ошибок, если он лежит в папке проекта, а не заменён в avr\src\lib. Мож выложит кто примерчик проета с этим подключённым файлом?
Go to the top of the page
 
+Quote Post
IgorKossak
сообщение Feb 13 2008, 12:06
Сообщение #28


Шаман
******

Группа: Модераторы
Сообщений: 3 064
Регистрация: 30-06-04
Из: Киев, Украина
Пользователь №: 221



Цитата(Rash @ Feb 13 2008, 11:26) *
Ни как не могу подключить этот файл к проекту (eeprom.s90) без ошибок, если он лежит в папке проекта, а не заменён в avr\src\lib. Мож выложит кто примерчик проета с этим подключённым файлом?

Project->Options->Assembler->Preprocessor->Include Directories...
добавить новой строкой $TOOLKIT_DIR$\src\lib
Предполагаю, что ошибка состоит в том, что не находится файл macros.m90
Go to the top of the page
 
+Quote Post
Rash
сообщение Feb 13 2008, 12:15
Сообщение #29


Знающий
****

Группа: Свой
Сообщений: 639
Регистрация: 5-09-05
Пользователь №: 8 231



Цитата(IgorKossak @ Feb 13 2008, 16:06) *
Project->Options->Assembler->Preprocessor->Include Directories...
добавить новой строкой $TOOLKIT_DIR$\src\lib
Предполагаю, что ошибка состоит в том, что не находится файл macros.m90


Это я сделал, ошибка ушла, выдаёт ошибки когда коментарии после точки запятой (;) заменил всё на (//), после этого стало выдавать ошибки на объявленные переменные в EEPROM
Код
__eeprom volatile int           ee_iDelayHS    = 200;  
__eeprom volatile long          ee_iPhoneMask1 = 0x333;
__eeprom volatile long          ee_iPhoneMask2 = 0x555;
__eeprom volatile unsigned char ee_cNumMack1   = 3;  
...


если заменить файл непосредственно в ...\src\lib, то всё нормально и на коментарии после точки запятой (;) не ругается
Go to the top of the page
 
+Quote Post
IgorKossak
сообщение Feb 13 2008, 12:26
Сообщение #30


Шаман
******

Группа: Модераторы
Сообщений: 3 064
Регистрация: 30-06-04
Из: Киев, Украина
Пользователь №: 221



Цитата(Rash @ Feb 13 2008, 14:15) *
Это я сделал, ошибка ушла, выдаёт ошибки когда коментарии после точки запятой (;)

Это в Сишном файле??? Так и должно ругаться. В ассемблерном всё в порядке.
Цитата(Rash @ Feb 13 2008, 14:15) *
заменил всё на (//), после этого стало выдавать ошибки на объявленные переменные в EEPROM
Код
__eeprom volatile int           ee_iDelayHS    = 200;  
__eeprom volatile long          ee_iPhoneMask1 = 0x333;
__eeprom volatile long          ee_iPhoneMask2 = 0x555;
__eeprom volatile unsigned char ee_cNumMack1   = 3;  
...

У меня такого не наблюдается.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 21st July 2025 - 07:54
Рейтинг@Mail.ru


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