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

 
 
> Минимизация проверки ячейки памяти
Guest_Serg79_*
сообщение Apr 26 2007, 08:29
Сообщение #1





Guests






Требуется проверять правильную работу регистров общего назначения (РОН) и оперативной памяти (ОЗУ) двумя значениями: 0x55 (01010101b) и 0xAA (10101010b). Вопрос заключается в том, что бы сделать это с минимальным количеством используемых команд (это значит максимальное быстродействие и минимально занимаемое место во FLASH).

Для 16 старших РОН (r16-r31) удалось все свести к четырем командам:
Код
ldi r16, 0x55
com r16
subi r16, 0xAA
err: brne err

Я так думаю, дополнительно минимизировать проверку 16 старших РОН, уже не представляется возможным (все таки через ячейку памяти надо прогнать два значения).

А вот для первой половины РОН и ячеек памяти ОЗУ у меня такого однозначного решения нет. Вот и обращаюсь к коллективному разуму, что бы общими силами найти самое что ни есть оптимальное решение этой задачи.

P.s. Здесь не обсуждается вопрос целесообразности всех этих проверок. Главная подымаемая здесь тема, это найти оптимальное решение для данной задачи. Так что, прошу не флеймить. Заранее всех благодарю. smile.gif
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Guest_Serg79_*
сообщение Apr 28 2007, 10:00
Сообщение #2





Guests






Для тех кто в танке или для тех кто не читал первый топик повторю еще раз:
Цитата(Serg79 @ Apr 26 2007, 09:29) *
P.s. Здесь не обсуждается вопрос целесообразности всех этих проверок. Главная подымаемая здесь тема, это найти оптимальное решение для данной задачи. Так что, прошу не флеймить. Заранее всех благодарю. smile.gif
А для тех, кто хочет и дальше продолжить обсуждение вопроса целесообразности проведения тестов памяти, прошу высказывать ваши мысли в следующей теме: Целесообразность тестирования памяти и регистров.


Теперь по существу.
Вот что мне удалось придумать для первой половины РОН (r0-r15):
Код
ldi r16, 0x55

mov r0, r16
mov r1, r16
...
mov r14, r16
mov r15, r16

com r0
com r1
...
com r14
com r15

sub r0, r1
1: brne 1b
...
sub r14, r15
1: brne 1b

Таким образом, на 16 регистров получается 49 команд, что равно 3.0625 команды на один регистр. Так же важно то, что размер каждой используемой здесь команды составляет одно слово (2 байта) и время выполнения один такт. И так, для проверки первой половины РОН нам потребуется 98 байт FLASH-памяти и 49 тактов микроконтроллера (что на мой взгляд, довольно не плохо).
У кого есть мысли по дальнейшей минимизации данной процедуры, прошу высказывать свои идеи.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Serg79   Минимизация проверки ячейки памяти   Apr 26 2007, 08:29
- - add   ЦитатаТребуется проверять правильную работу регист...   Apr 26 2007, 08:53
- - ZAO   Требуется проверить все регистры? Тогда можно зап...   Apr 26 2007, 10:13
- - SasaVitebsk   Можно конечно ответить и на конкретно поставленный...   Apr 26 2007, 12:45
- - Сергей Борщ   Цитата(Serg79 @ Apr 26 2007, 07:29) А вот...   Apr 26 2007, 12:59
|- - =GM=   Цитата(Сергей Борщ @ Apr 26 2007, 08:59) ...   Apr 26 2007, 13:23
- - Dog Pawlowa   Когда-то давным-давно занимался тестированием сове...   Apr 26 2007, 15:39
|- - defunct   Цитата(Dog Pawlowa @ Apr 26 2007, 14:39) ...   Apr 27 2007, 02:00
|- - SasaVitebsk   Цитата(defunct @ Apr 27 2007, 02:00) Гло...   Apr 27 2007, 11:17
|- - Vasia Klin   Цитата(SasaVitebsk @ Apr 27 2007, 12:17) ...   Apr 27 2007, 12:08
|- - =GM=   Цитата(Vasia Klin @ Apr 27 2007, 08:08) О...   Apr 27 2007, 16:15
|- - SasaVitebsk   Цитата(Vasia Klin @ Apr 27 2007, 12:08) А...   Apr 27 2007, 20:27
- - Vladimir Chekin   >> Требуется проверять правильную работу рег...   Apr 26 2007, 18:29
- - Vasia Klin   Вообще говоря, надёжность и безопасность не совсем...   Apr 28 2007, 07:13
|- - Snaky   Цитата(Vasia Klin @ Apr 28 2007, 10:13) Л...   Apr 28 2007, 07:47
|- - Дон Амброзио   Цитата(Vasia Klin @ Apr 28 2007, 10:13) В...   Feb 11 2008, 18:24
- - CDT   Цитата(Serg79 @ Apr 28 2007, 10:00) Здесь...   Apr 28 2007, 14:30


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

 


RSS Текстовая версия Сейчас: 8th August 2025 - 22:55
Рейтинг@Mail.ru


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