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

 
 
> Бит в регистре, есть предположение что подгорел один бит в регистре общего назначения
bureau
сообщение Oct 19 2007, 15:41
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 625
Регистрация: 22-02-07
Пользователь №: 25 593



Пишу программу с использыванием WinAVR. Mega8535.
Есть предположение что подгорел один бит в регистре общего назначения.
Можно ли как-то в WinAVR закрыть доступ к этому регистру(не используюя при этом asm вставки). Например так что б он вообще не юзал R25, а вместо него использывал R18 или какой-то другой...
Go to the top of the page
 
+Quote Post
2 страниц V   1 2 >  
Start new topic
Ответов (1 - 18)
add
сообщение Oct 19 2007, 16:49
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 345
Регистрация: 10-10-05
Пользователь №: 9 459



Цитата(bureau @ Oct 19 2007, 19:41) *
Есть предположение что подгорел один бит в регистре общего назначения.
Можно ли как-то в WinAVR закрыть доступ к этому регистру(не используюя при этом asm вставки). ..

Сразу прошу прощения за жестокий офтоПище, ну не удержатся! Вы гражданин "ЖЖоте не по детски"! :-) Спасибо за хорошее настроение на выходные :-D:-D:-D


--------------------
Если задачу можно решить, то не надо тревожиться. А если нельзя решить, то тревожиться бесполезно.
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Oct 19 2007, 16:56
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(add @ Oct 19 2007, 20:49) *
Вы гражданин "ЖЖоте не по детски"! :-) Спасибо за хорошее настроение на выходные :-D:-D:-D

Т.е. Вы хотите сказать, что так не бывает? Ситуация принципиально возможная, не вижу ничего смешного.

2 bureau: Что заставило сделать такое предположение?
Go to the top of the page
 
+Quote Post
add
сообщение Oct 19 2007, 17:03
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 345
Регистрация: 10-10-05
Пользователь №: 9 459



Цитата
Т.е. Вы хотите сказать, что так не бывает? Ситуация принципиально возможная, не вижу ничего смешного.

ну..ну. такие чипы наверное у атмела в самом охраняемом сейфе лежат, за семью замками, как в музее.
bureau - выставите ваш чип на аукцион, его с руками оторвут! серьезно! я готов за такой экспонат 100р. отвалить.. чтобы друзьям показывать. А еще и наспор можно выигрывать бешенные деньги..:-)


--------------------
Если задачу можно решить, то не надо тревожиться. А если нельзя решить, то тревожиться бесполезно.
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Oct 19 2007, 17:10
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(add @ Oct 19 2007, 21:03) *
ну..ну. такие чипы наверное у атмела в самом охраняемом сейфе лежат, за семью замками, как в музее.

Нет, такие чипы уходят после тестирования в мусор в немалом количестве. Или Вы серьёзно считаете, что у них выход годной продукции 100%?
Go to the top of the page
 
+Quote Post
add
сообщение Oct 19 2007, 17:18
Сообщение #6


Местный
***

Группа: Свой
Сообщений: 345
Регистрация: 10-10-05
Пользователь №: 9 459



Цитата
Вы серьёзно считаете, что у них выход годной продукции 100%?

Нет, я так не считаю.
Вопрошающий сказал следующее:
Цитата
Есть предположение что подгорел один бит в регистре

Подгорел в процессе работы с чипом? Очень интересно! :-)


--------------------
Если задачу можно решить, то не надо тревожиться. А если нельзя решить, то тревожиться бесполезно.
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Oct 19 2007, 17:27
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(add @ Oct 19 2007, 21:18) *
Подгорел в процессе работы с чипом? Очень интересно! :-)

Просто выразился, наверное, не очень удачно.
Да и в процессе работы умереть ему никто не мешает smile.gif

Интересно было бы услышать ответ bureau.
Go to the top of the page
 
+Quote Post
ReAl
сообщение Oct 19 2007, 18:38
Сообщение #8


Нечётный пользователь.
******

Группа: Свой
Сообщений: 2 033
Регистрация: 26-05-05
Из: Бровари, Україна
Пользователь №: 5 417



Цитата(bureau @ Oct 19 2007, 17:41) *
Есть предположение что подгорел один бит в регистре общего назначения.
1) в чём выражатеся "подгорание"?
2) есть предложение проверить предположение маленькой тестовой программкой на ассемблере.

Цитата(bureau @ Oct 19 2007, 17:41) *
Можно ли как-то в WinAVR закрыть доступ к этому регистру(не используюя при этом asm вставки). Например так что б он вообще не юзал R25, а вместо него использывал R18 или какой-то другой...
Не выйдет без перепиливания напильником и пересборки. Ключ -ffixed-имя_регистра существует, но с R25 не выйдет, так как они из оснвоной рабочей пары R25:R24, в которой передаётся первый аргумент и возвращается значение.


--------------------
Ну, я пошёл… Если что – звоните…
Go to the top of the page
 
+Quote Post
bureau
сообщение Oct 20 2007, 15:52
Сообщение #9


Знающий
****

Группа: Свой
Сообщений: 625
Регистрация: 22-02-07
Пользователь №: 25 593



Цитата(add @ Oct 19 2007, 19:49) *
Сразу прошу прощения за жестокий офтоПище, ну не удержатся! Вы гражданин "ЖЖоте не по детски"! :-) Спасибо за хорошее настроение на выходные :-D:-D:-D

Кому смешно а кому и нет... Если заказ надо сдать через 2 часа а заменить нечем...

Цитата(aaarrr @ Oct 19 2007, 19:56) *
2 bureau: Что заставило сделать такое предположение?

в начале просто сделал анализ режима работы и asm кода, который генерил WinAVR. Потом просто написал программку на asm "ЭХО" отправляю по ЮАРТу FF с компа и назад принимаю. Попробывал R16, обратно приходит FF, сделал mov R25, R16 и отправляю по ЮАРТу R25, принимаю FD. Если поставлю вместо R25 другой регистр то все нормально, а при R25 FD biggrin.gif


Цитата(add @ Oct 19 2007, 20:03) *
ну..ну. такие чипы наверное у атмела в самом охраняемом сейфе лежат, за семью замками, как в музее.
bureau - выставите ваш чип на аукцион, его с руками оторвут! серьезно! я готов за такой экспонат 100р. отвалить.. чтобы друзьям показывать. А еще и наспор можно выигрывать бешенные деньги..:-)

ну если есть желающие то пожалуста...

Цитата(add @ Oct 19 2007, 20:18) *
Подгорел в процессе работы с чипом? Очень интересно! :-)

Да, в процесе работы...

Сообщение отредактировал bureau - Oct 20 2007, 15:56
Go to the top of the page
 
+Quote Post
add
сообщение Oct 20 2007, 16:34
Сообщение #10


Местный
***

Группа: Свой
Сообщений: 345
Регистрация: 10-10-05
Пользователь №: 9 459



Цитата
начале просто сделал анализ режима работы и asm кода

хорошо бы код в студию. может у Вас всетаки програмная ошибка? А то шаманство какоето...


--------------------
Если задачу можно решить, то не надо тревожиться. А если нельзя решить, то тревожиться бесполезно.
Go to the top of the page
 
+Quote Post
bureau
сообщение Oct 20 2007, 16:55
Сообщение #11


Знающий
****

Группа: Свой
Сообщений: 625
Регистрация: 22-02-07
Пользователь №: 25 593



Цитата(add @ Oct 20 2007, 19:34) *
хорошо бы код в студию. может у Вас всетаки програмная ошибка? А то шаманство какоето...

делал проверку вот такой программкой

.include "m8535def.inc"
.def data=R25 ;вместо R25 подставлял разные регистры...

.org 0x0000
rjmp main

.org URXCaddr
rjmp USART_RXC ; USART RX Complete Handler



main:
ldi r31,low(ramend)
out spl,r31
ldi r31, high(ramend)
out sph,r31

ldi data, 0x59
MOV zh,data
;cp zh:zl, data
rcall USART_Init
rcall USART_Transmit



USART_Init:
ldi r16, (1<<RXEN)|(1<<TXEN)
out UCSRB,r16
;Óñòàíîâêà ôîðìàòà ïîñûëêè:
ldi r16, (0<<USBS)|(0<<UMSEL)
out UCSRC,r16
nop
ldi r17, 12
ldi r16, 0
out UBRRH, r16
out UBRRL, r17
ldi r17, (1<<ISC00)|(1<<ISC01)|(0<<ISC10)|(1<<ISC11)|(0<<SM0)|(0<<SM1)|(0<<SM2)|(1<<SE)
out MCUCR, r17
ldi r17, (1<<INT0)|(1<<INT1)
out GICR, r17
ldi r16, $61
ret

loop:


USART_Transmit:
sbis UCSRA,UDRE
rjmp USART_Transmit
mov data, r16
out UDR, data

Wait_Transmit:
sbis SPSR,SPIF
rjmp Wait_Transmit
nop
nop

sei
sleep

USART_RXC:
nop
sbis UCSRA, RXC
rjmp USART_RXC
in r16, UDR
rjmp loop
Go to the top of the page
 
+Quote Post
add
сообщение Oct 20 2007, 17:45
Сообщение #12


Местный
***

Группа: Свой
Сообщений: 345
Регистрация: 10-10-05
Пользователь №: 9 459



Как я понимаю проект уже сдан/сроки прошли. Сейчас разбор полетов.
Код конечео путанный :-).. Пока явно причину порчи не вижу. Порекомендовал бы Вам поаккуратнее со стеком работать. Поставте на вектор
Цитата
org URXCaddr
rjmp USART_RXC ; USART RX Complete Handler

просто reti
И вместо
Цитата
rcall USART_Transmit

rjmp USART_Transmit
Если пересылать другой код, вместо ff, данные не считая этого бита верные?
Зачем эти строчки?
Цитата
ldi data, 0x59
MOV zh,data
;cp zh:zl, data

сведите проверку до минимума. Может диодиком помигать, а то длинная цепочка получается.
Программа работает на другм чипе, с теми же условиями?(Вы говорили что заменить нечем....?!)


--------------------
Если задачу можно решить, то не надо тревожиться. А если нельзя решить, то тревожиться бесполезно.
Go to the top of the page
 
+Quote Post
=GM=
сообщение Oct 20 2007, 22:56
Сообщение #13


Ambidexter
*****

Группа: Свой
Сообщений: 1 589
Регистрация: 22-06-06
Из: Oxford, UK
Пользователь №: 18 282



Соглашусь с add, и добавлю, уберите из вашей тестовой программы строки, начиная с Wait_Transmit и кончая sleep. А то непонятно, при чём здесь ожидание конца передачи от SPI и какое прерывание будит процессор из idle и что оно там делает с r25(:-). Оставшегося кода вполне достаточно для организации эха. И запретите все прерывания.


--------------------
Делай сразу хорошо, плохо само получится
Go to the top of the page
 
+Quote Post
defunct
сообщение Oct 21 2007, 01:41
Сообщение #14


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата
делал проверку вот такой программкой

У меня есть более простая программка для проверки R25 smile.gif

Код
ldi  R25, 0xFF
out DDRB, R25
out PORTB, R25

loop:
rjmp loop


Тестером померяйте - на всех выводах порта B должно быть "1".

Цитата(aaarrr @ Oct 19 2007, 19:56) *
Т.е. Вы хотите сказать, что так не бывает? Ситуация принципиально возможная, не вижу ничего смешного.

Да - не бывает. Ситуация действительно похожа на "Отжиг" wink.gif
Вместо того чтобы проверить регистр вызывающий сомнения, автор приводит программку которая включает кучу периферии в режиме прерываний, при этом обработчик есть только для UART RXC (прерывание от которого запрещено) smile.gif Естессно такая программа будет глючить.
Go to the top of the page
 
+Quote Post
DASM
сообщение Oct 21 2007, 02:08
Сообщение #15


Гуру
******

Группа: Свой
Сообщений: 3 644
Регистрация: 28-05-05
Пользователь №: 5 493



А что, хорошая идея... чтобы твой код куча народа проверило smile.gif По теме - один раз спалил ОЗУ, а процик работал. До первого ret конечно smile.gif Но чтобы бы бит в регистре o_O
Go to the top of the page
 
+Quote Post
bureau
сообщение Oct 22 2007, 08:58
Сообщение #16


Знающий
****

Группа: Свой
Сообщений: 625
Регистрация: 22-02-07
Пользователь №: 25 593



Да, я с вами соглашусь.
Некоторые строчки возможно лишние. Причиной этому служит то что код брался с другой программы, которая так же работала и с другой переферией.
Просо навсего я поднял этот код и на быструю руку повыбрасывал все что на первый взгляд ненужно...

Цитата(add @ Oct 20 2007, 20:45) *
Если пересылать другой код, вместо ff, данные не считая этого бита верные?

любой другой код который содержит во втором бите "1" в ответе принимаю во втором бите "0"

2 defunct: да, а проверка с использыванием порта это идея, как-то не подумал... сенкс
Go to the top of the page
 
+Quote Post
SasaVitebsk
сообщение Oct 22 2007, 10:54
Сообщение #17


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



Давеча спалили (во время работы точнее пайки) at90can128. Очень интересно сгорела. Вела себя так, как будто закорочены два канала АЦП. Тем не менее они были не закорочены. После перепайки - всё стало работать нормально. Бывали и ещё более интересные вещи.

В одном изделии одна линия порта при сбросе устанавливалась в состояние 0 (или 1 я не помню). Но далее работала абсолютно нормально! В программе была введена CRC и она совпадала! После перепрошивки глюк прошёл и больше не возвращался. Да, кстати, глюк вылез у клиента после 1.5 лет работы. smile.gif
Go to the top of the page
 
+Quote Post
alexander55
сообщение Oct 22 2007, 13:19
Сообщение #18


Бывалый
*****

Группа: Свой
Сообщений: 1 584
Регистрация: 7-08-07
Пользователь №: 29 615



Кто изучал BIOS PC знает, что там первый самотест тест регистров CPU. В жизни все бывает. М.б. теоретически такой случай здесь, но при этом uC будет глючить как бог душу положит. 07.gif
Go to the top of the page
 
+Quote Post
Igor26
сообщение Oct 23 2007, 08:17
Сообщение #19


Знающий
****

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



Цитата
Очень интересно сгорела. Вела себя так, как будто закорочены два канала АЦП. Тем не менее они были не закорочены.

Такая песня сплошь и рядом попадалась с Мега8 в TQFP корпусе.
Go to the top of the page
 
+Quote Post

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

 


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


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