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

 
 
> Минимизация проверки ячейки памяти
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
Ответов
Сергей Борщ
сообщение Apr 26 2007, 12:59
Сообщение #2


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(Serg79 @ Apr 26 2007, 07:29) *
А вот для первой половины РОН и ячеек памяти ОЗУ у меня такого однозначного решения нет. Вот и обращаюсь к коллективному разуму, что бы общими силами найти самое что ни есть оптимальное решение этой задачи.
Все регистры смапированы в ОЗУ. Подумайте, возможно вам стоит написать универсальную программу, которая будет проверять любую ячейку ОЗУ и таким образом, косвенно, и регистры. Возможно в универсальном варианте вы сможете позволить себе несколько лишних команд за счет выкидывания частных реализаций.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
=GM=
сообщение Apr 26 2007, 13:23
Сообщение #3


Ambidexter
*****

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



Цитата(Сергей Борщ @ Apr 26 2007, 08:59) *
Все регистры смапированы в ОЗУ. Подумайте, возможно вам стоит написать универсальную программу, которая будет проверять любую ячейку ОЗУ и таким образом, косвенно, и регистры. Возможно в универсальном варианте вы сможете позволить себе несколько лишних команд за счет выкидывания частных реализаций.

Я тоже к этому склоняюсь, только задача должна быть разбита на три этапа.

1) Проверить r28-r31 как написано у автора

2) Проверить участок памяти от 0х000 до 0х01С (соответствует памяти регистров) как-то так
Код
mcheck: ld    z,r29
        st    r28,z+
        cp    r28,r29

3) Проверить участок памяти от 0х060 до RAMEND (соответствует оперативной памяти)

Мне также кажется, что проверять бессмысленно. В паре проектов у меня были проверки контрольной суммы флешки, потом отказался, т.к. ничего почему-то не слетало, а отслеживать контрольные суммы при разных версиях немного угнетает.


--------------------
Делай сразу хорошо, плохо само получится
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
- - 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
- - Serg79   Для тех кто в танке или для тех кто не читал первы...   Apr 28 2007, 10:00
- - CDT   Цитата(Serg79 @ Apr 28 2007, 10:00) Здесь...   Apr 28 2007, 14:30


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

 


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


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