|
Похоже баг CPU core ATTiny26 |
|
|
|
Jan 18 2006, 09:20
|

Йа моск ;)
     
Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610

|
Наступил на неприятность:
char TestR26(void) { asm("CLI"); asm("PUSH R26 "); asm("PUSH R27 "); asm("LDI R26,0x80"); asm("LDI R27,0x03"); //Обратите внимание на значение!!! asm("LD R16,X+"); asm("MOV R16,R27"); asm("POP R27 "); asm("POP R26 "); asm("SEI"); }
Результат должен быть 3, а получается 0. Странно.
Наступил, когда у меня начало запарывать R27, в котором IAR положил переменную, а при вызове функций не сохранял (как собственно и должно быть) - модель ведь tiny.
Вообщем в Атмел я уже отписал, посмотрим, как среагируют.
PS Все таки сомнения гложут, посмотрите всE, вроде 3 - должно получиться на выходе (R16), а выходит 0
--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
|
|
|
|
|
 |
Ответов
|
Jan 18 2006, 12:27
|

Гуру
     
Группа: Свой
Сообщений: 2 720
Регистрация: 24-03-05
Пользователь №: 3 659

|
Зачем, при памяти в 128 байт грузить указатель 16-разрядным числом? Хватит и младшего байта. С помощью его (к примеру R26 - XL) можно адресовать до 256 ячеек памяти, для тех кто не знает :-). При этом, какой бы ни был старший байт адреса все равно мы попадает по нужному адресу. Это проверено мной, правда на ATtiny2313. Там все прекрасно адресуется при загрузке адреса в один регистр. Написано все было на асме в АВРСтудио, при чем в качестве указателей использовались все три регистра, способные, в данном случае быть указателями - XL, YL и ZL. Ни каких глюков в прошитом МК и готовом устройстве не было...
И с какой стати Вы взяли, что результат должен быть 3? Вы грузите в R16 число из ячейки по адресу 0х80 !!!
Запарывать старший регистр будет когда в младшем регистре 0xFF, и применяется команда с инкрементом регистра-указателя, или когда в младшем регистре 0x00, и применяется команда с декрементом регистра-указателя
--------------------
|
|
|
|
Сообщений в этой теме
Rst7 Похоже баг CPU core ATTiny26 Jan 18 2006, 09:20 Rash Попробуй вначале записать адрес r27, а потом r26
К... Jan 18 2006, 09:28 Rst7 Цитата(Rash @ Jan 18 2006, 11:28) Попробу... Jan 18 2006, 09:36 solidreg У иеня всё равотает. ищите проблемы в друой месте ... Jan 18 2006, 09:58 Rst7 Цитата(solidreg @ Jan 18 2006, 11:58) У и... Jan 18 2006, 10:17 Георгий Ошибка мне кажется в написании самой тестовой функ... Jan 18 2006, 10:31 solidreg Попробуйте вобще без IAR'a. Только ASM. Интере... Jan 18 2006, 10:31 Maxim В Attiny26 всего 128 байт памяти (RAM) и контролер... Jan 18 2006, 10:38 Rst7 Цитата(Maxim @ Jan 18 2006, 12:38) В Atti... Jan 18 2006, 10:53 Георгий Проверил этот кусок у себя - нормально. Так что да... Jan 18 2006, 10:40 solidreg >> Вопрос к тем, кто писал "У меня все... Jan 18 2006, 11:10 Rst7 Цитата(solidreg @ Jan 18 2006, 13:10) ... Jan 18 2006, 11:24 Rst7 Цитата(prottoss @ Jan 18 2006, 14:27) Зач... Jan 18 2006, 13:19  prottoss Цитата(Rst7 @ Jan 18 2006, 20:19) Цитата(... Jan 18 2006, 13:52   Rst7 Цитата(prottoss @ Jan 18 2006, 15:52) Изв... Jan 18 2006, 14:10 Gennadiy_ Добрый день.
Вы гденибудь читали в документации, ч... Jan 18 2006, 13:22 Rst7 Цитата(Gennadiy_ @ Jan 18 2006, 15:22) До... Jan 18 2006, 13:39  prottoss Цитата(Rst7 @ Jan 18 2006, 20:39) Я ожида... Jan 18 2006, 14:04  defunct Цитата(Rst7 @ Jan 18 2006, 15:39) Я ожида... Jan 18 2006, 19:10   Rst7 Цитата(defunct @ Jan 18 2006, 21:10) Цита... Jan 19 2006, 06:35    defunct Цитата(Rst7 @ Jan 19 2006, 08:35) Вы невн... Jan 19 2006, 08:28     Rst7 Цитата(defunct @ Jan 19 2006, 10:28) Цита... Jan 19 2006, 08:39      defunct Цитата(Rst7 @ Jan 19 2006, 10:39) Как Вы ... Jan 19 2006, 09:37 Rst7 Вообщем так. Вытащил свежий 8-bit AVR Instruction ... Jan 18 2006, 15:14 beer_warrior А портиться только после Х+/Х- ?
При обычном испол... Jan 18 2006, 16:50 Rst7 Я тоже сделал код:
Код#include "iotiny26.h... Jan 19 2006, 10:57 ObitJr Бинарники смотрели ? Может криво компилятор генери... Jan 19 2006, 11:55 Rst7 Цитата(ObitJr @ Jan 19 2006, 13:55) Бинар... Jan 19 2006, 12:07  prottoss Цитата(Rst7 @ Jan 19 2006, 19:07) Цитата(... Jan 19 2006, 13:07   Rst7 Цитата(prottoss @ Jan 19 2006, 15:07) Цит... Jan 19 2006, 13:25 Rst7 Попробовал на Tiny2313 - все пучком, на порту 0x55... Jan 19 2006, 13:50 KRS А вы пробовали другой экземпляр Tiny26
у меня как ... Jan 19 2006, 14:01 Rst7 Цитата(KRS @ Jan 19 2006, 16:01) А вы про... Jan 19 2006, 14:16
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|