Телесистемы
 Разработка, производство и продажа радиоэлектронной аппаратуры
На главную   | Карта сайта | Пишите нам | В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:jobsmp@pochta.ru

Телесистемы | Электроника | Конференция «Микроконтроллеры и их применение»

Ответ: код

Отправлено Zevaka 14 декабря 2006 г. 11:56
В ответ на: Мало инф3ормации, приведите весь код. Из Вашего фрагмента не видно, какие значения отправлено Bill_ 14 декабря 2006 г. 11:40

__no_init uint8_t sram_test_step @ 0x100;
__no_init uint16_t sram_test_code @ 0x101;
__no_init uint8_t sram_test_page @ 0x103;

#pragma optimize = none
/************************************************************************
*
* FUNCTION: xmemTestAll()
*
* DESCRIPTION: Выполняет тестирование:
* 1) шины данных;
* 2) шины адреса;
* 3) непрерывного участка внешней SRAM;
* 4) селектора страниц;
* 5) страничной SRAM.
*
* RETURNS: 0 если все тесты прошли успешно
*
* Ненулевое значение сообщает номер неудавшегося теста.
* Глобальные переменные модуля содержат:
* sram_test_step - номер непройденного теста;
* sram_test_code - байт данных для memTestDataBus;
* адрес ячейки ОЗУ для других функций;
* sram_test_page - номер страницы.
*
***********************************************************************/
uint8_t xmemTestAll( void )
{
uint8_t *ptr;

sram_test_page = 0;

/* Тест шины данных */
sram_test_step = 1;
sram_test_code = memTestDataBus( SRAM_EXT_BEGIN );
if ( sram_test_code ) return( sram_test_step );

/* Тест шины адреса */
sram_test_step = 2;
sram_test_code = ( uint16_t ) memTestAddressBus( SRAM_EXT_BEGIN, SRAM_EXT_SIZE );
if ( sram_test_code ) return( sram_test_step );
SELECT_SRAM_PAGE( FIRST_PAGE_NUM );
sram_test_code = ( uint16_t ) memTestAddressBus( SRAM_PAGE_BEGIN, SRAM_PAGE_SIZE );
if ( sram_test_code ) return( sram_test_step );

/* Тест непрерывной области внешней SRAM */
sram_test_step = 3;
sram_test_code = ( uint16_t ) memTestDevice( SRAM_EXT_BEGIN, SRAM_EXT_SIZE );
if ( sram_test_code ) return( sram_test_step );

/* Тест селектора страниц */
sram_test_step = 4;
ptr = SRAM_PAGE_BEGIN;
for ( sram_test_page = FIRST_PAGE_NUM; sram_test_page <= LAST_PAGE_NUM; sram_test_page++ ) {
SELECT_SRAM_PAGE( sram_test_page );
ptr[0] = sram_test_page;
ptr[1] = ~sram_test_page;
}
for ( sram_test_page = FIRST_PAGE_NUM; sram_test_page <= LAST_PAGE_NUM; sram_test_page++ ) {
SELECT_SRAM_PAGE( sram_test_page );
if ( ptr[0] != sram_test_page ) {
sram_test_code = ( uint16_t ) SRAM_PAGE_BEGIN;
return( sram_test_step );
}
if ( ptr[1] != ~sram_test_page ) {
sram_test_code = ( uint16_t )( SRAM_PAGE_BEGIN + 1 );
return( sram_test_step );
}
}
sram_test_step = 5;
ptr = SRAM_EXT_BEGIN;
while ( ptr <= SRAM_EXT_END ) {
if ( *ptr ) {
sram_test_code = ( uint16_t ) ptr;
return( sram_test_step );
}
ptr++;
}

/* Тест страничной памяти */
sram_test_step = 6;
for ( sram_test_page = FIRST_PAGE_NUM; sram_test_page <= LAST_PAGE_NUM; sram_test_page++ ) {
SELECT_SRAM_PAGE( sram_test_page );
sram_test_code = ( uint16_t ) memTestDevice( SRAM_PAGE_BEGIN, SRAM_PAGE_SIZE );
if ( sram_test_code ) return( sram_test_step );
}

/* Все тесты прошли успешно */
sram_test_step = 0;
sram_test_code = 0;
sram_test_page = 0;

return( 0 );
}


Составить ответ | Вернуться на конференцию

Ответы


Отправка ответа
Имя*: 
Пароль: 
E-mail: 
Тема*:

Сообщение:

Ссылка на URL: 
URL изображения: 

если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
если прибавить четыре к четырём будет:

Перейти к списку ответов | Конференция | Раздел "Электроника" | Главная страница | Карта сайта

Rambler's Top100 Рейтинг@Mail.ru
 
Web telesys.ru