|
|
  |
IAR и запись в EEPROM, Вопрос по реализации записи в eeprom в IAR |
|
|
|
May 25 2006, 12:35
|
Частый гость
 
Группа: Свой
Сообщений: 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
|
|
|
|
|
Jun 25 2006, 18:36
|
Частый гость
 
Группа: Новичок
Сообщений: 100
Регистрация: 9-03-06
Пользователь №: 15 088

|
Цитата Посмотрите также здесь. Это я когда-то выкладывал исправленный файл иаровского исходника для работы с ЕЕПРОМ. Как подключить к проекту на С файл eeprom.s90?
|
|
|
|
|
Jun 26 2006, 06:30
|

Шаман
     
Группа: Модераторы
Сообщений: 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 (если о нём речь) вместе с другими файлами. Или Вы имели в виду переносимость на другую платформу?
|
|
|
|
|
Jun 26 2006, 09:38
|

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

|
Цитата(arttab @ Jun 26 2006, 12:01)  Если кто дернет файл с из проекта или не подключит в проект будеут глюки. Странные у Вас отношения Кто-то приходит, что-то дёргает. Цитата(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)
|
|
|
|
|
Feb 13 2008, 12:15
|
Знающий
   
Группа: Свой
Сообщений: 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, то всё нормально и на коментарии после точки запятой ( ;) не ругается
|
|
|
|
|
Feb 13 2008, 12:26
|

Шаман
     
Группа: Модераторы
Сообщений: 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; ... У меня такого не наблюдается.
|
|
|
|
|
  |
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|