У вас проблемы с курицей и яйцом.Чтобы получить достаточно кода для выполнения malloc или даже для использования кода на C, у вас уже есть рабочая память.
Вам необходимо определить свою проблему.Например, это проверка проекта или производственные испытания?Вы тестируете сам чип памяти или плату.Обычно вы покупаете рабочие / проверенные чипы (память) или чипы памяти, которые имеют качество, определенное поставщиком.И ваши испытания часто производственные испытания, точки производства пайкиСтроки данных, адресные строки, контрольные строки.
Проблема курицы и яйца заключается в том, что вы хотите запустить программное обеспечение на встроенном процессоре, для которого требуется код, который выполняется где-то, а это подразумевает память (может быть только флэш-памятью и не требует какой-либо или минимальной).идеальная ситуация - либо полностью исчерпать ресурс, используя только ресурсы процессора или только ресурсы внутреннего чипа, но без внешнего плунжера, чтобы можно было полностью протестировать внешний плунжер.Каждая адресная строка и т. Д. В противном случае вам нужно придумать схему или объявить куски памяти, которые не будут проверены.
Или, используя многоступенчатый подход, загрузочный код rom может быстро проверить небольшую часть оперативной памяти, не используя его для запуска.Затем скопируйте основную тестовую программу в этот маленький кусок памяти и запустите ее.Затем выполните основные тесты памяти с большей гибкостью кода.Можно использовать C вместо ассемблера, например.Вы можете, например, предварительно проверить, супер простой тест, 25% от оперативной памяти, затем скопировать тест там, проверить остальные 75%, затем переместить программу на другие 25% в памяти оперативной памяти и выполнить тяжелый тест на первом25%, которые не прошли полный тест.
Типы тестов, вам необходимо понять сбои, вы можете проверить паяные соединения, в частности, и следы на печатной плате.Таким образом, вы можете иметь открытые соединения, чтобы вы могли сделать каждый вывод единичным и нулевым, также вы можете иметь шорты, которые покрывают один и ноль, и у вас могут быть «дружественные биты», где соседние выводы могут иметь короткое замыкание друг к другупоэтому вы хотите, чтобы каждая пара сигналов отличалась друг от друга.
Часто люди проводят такие же тесты, как все, все нули, 5 с, As.Затем проверяет шахматную доску, где одна ячейка памяти имеет, скажем, 5 с, а другая - как.для тестирования адресной строки вам нужно использовать не степени двух, или даже лучше, каждая ячейка памяти в памяти имеет свое значение, например, 32-битные слова, каждое из которых получает свой адрес.
В качестве быстрого теста я рассмотрюбольшая часть этого в нескольких тестах, если вы используете псевдослучайный элемент, что-то повторяемое, например lfsr, один проход, чтобы заполнить всю память с помощью рандомизатора, выполнить повторное заполнение, вернуться назад и проверить.затем повторите процедуру и заполните инвертированными значениями, заново заполните и проверьте инвертированные значения.Вы получаете адресные биты, проверяются все строки данных, но не все соседи.повторный посев и начало всего этого по перемещению случайного образца вокруг может покрыть это.иногда просто используя случайный тест в качестве теста адреса и традиционные нули, по пять, как, 3s, Cs, 6s, 9s и т. д.
настолько, насколько вам нужен указатель на тестируемую память, вы просто не используете malloc.знать физический адрес и, если таковые имеются, заниматься переводом, чтобы в случае возникновения проблем вы общались по физическим адресам.Также вы знаете и контролируете, сколько памяти.Обычно я пишу тесты на основе процессора в C, но не буду использовать какие-либо вызовы библиотеки C (например, malloc или printf или что-то в этом роде).