Email or username:

Password:

Forgot your password?
Данила Горелко

Кажется, я выходные потрачу на чтение книги по тестированию микроконтроллеров.

А то я не вдупляяяяюююю!

Нужно протестировать модуль, в котором есть логические функции, а есть и аппаратные.

Юнит тесты для логических частей вопросов не вызывают. Даже, если внутри есть что-то аппаратное, но не важное для логики (задержки, запись в память, проверки какие-нибудь), то эти части можно заменить стабами или моками (простите, не придумал два термина на русском для заглушек).

А вот, как важные для логики аппаратные части протестировать, это уже вопрос.
Придётся их заменять на логические, работающие уже с памятью компа.

Сложна. Зато можно будет с памятью играться без ограничений. Наконец, воспользоваться аллокатором. Жаль, что только для тестов :(

4 comments
Григорий Клюшников

Вообще для правильного тестирования аппаратных вещей делают тестовые стенды. Когда устройство подключают к тестирующей системе и она проверяет, что оно выдаёт правильные сигналы для разных вариантов входных сигналов. По крайней мере, таково моё понимание.

Данила Горелко

Григорий, да так и есть. Такого у нас полно.

У меня немного другое.

Я написал простенький модуль для проверки флеша на битые сектора, ячейки итд итп.

Он записывает во все сектора или страницы шаблон, считывает, потом сравнивает записанное и прочитанное.

Также программа знает, где она заканчивается (благодаря описанию скрипта линковки) и начинает тест памяти с начального адреса того сектора, который идёт сразу следом за сектором, где заканчивается прошивка.

Так вот.

Функции определяющие, где есть прошивка, а где нет, я могу протестировать спокойно.

Могу спокойно протестировать функцию, которая возвращает адрес следующего сектора, если переданный адрес указывает не на начало сектора. Такая проверка, является ли адрес ячейки адресом начала сектора.

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

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

Григорий, да так и есть. Такого у нас полно.

У меня немного другое.

Я написал простенький модуль для проверки флеша на битые сектора, ячейки итд итп.

Он записывает во все сектора или страницы шаблон, считывает, потом сравнивает записанное и прочитанное.

Также программа знает, где она заканчивается (благодаря описанию скрипта линковки) и начинает тест памяти с начального адреса того сектора, который идёт сразу следом за сектором, где заканчивается прошивка.

Данила Горелко

Самое забавное, что я пока это всё писал, убедился, что всё работает так, как надо, с разными МК разных семейств запускал.

Но нужны тесты.. Ы

Григорий Клюшников

Данила, кажется, что проверять память, из которой выполняется программа, которая её проверяет — это извращение. Совсем правильным способом было бы тестировать флэш-чипы перед сборкой. Если так нельзя, то тогда уж заливать тестилку через какой-нибудь JTAG в оперативку (я не знаю можно ли так, но было бы странно, если нельзя).

Go Up