*rust* 0 7 апреля, 2011 Опубликовано 7 апреля, 2011 · Жалоба От ATMELа есть пример Getting Started Project. Загружаю его в проц. все работает как надо. Далее, удаляю весь код, оставляя только подключения заголовочных файлов и это: int main(void) { // DBGU output configuration TRACE_CONFIGURE(DBGU_STANDARD, 115200, BOARD_MCK); while(1) { printf("-- %s\n\r", BOARD_NAME); } } загружаю в проц. и привет, он не стартует, смотрю под отладкой программа крутится в WEAK void HardFault_Handler(void) { while(1); } это из exception.h в логе дебагера вижу Bus fault: Imprecise data bus error! Из внешних проявлений, не вижу генерации на кварце. Иногда запускается иногда нет, может постоять "подумать" потом запуститься. В чем может сидеть проблема? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
*rust* 0 8 апреля, 2011 Опубликовано 8 апреля, 2011 · Жалоба Уж не знаю как отреагирует народ, но у АРМов от Атмела есть проблема судите сами: Дабы исключить всякие разногласия и провести чистый эксперимент я перепаял нормально работающий процессор на борде на тот который удалось купить. Зашил, запустил, поведение точно такое же как я описывал постом выше. Прежний проц. работал нормально!!! Бордовский проц. от середины 2009 года, с пометкой ES, купленный проц. имеет дату выпуска конец января 2011 года, без пометок. Errara есть только на процы с пометкой ES и ES4 Вот так-то!!! Буду писать в Атмел, посмотрим что ответят. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 8 апреля, 2011 Опубликовано 8 апреля, 2011 · Жалоба Проверьте правильность настройки PLL (особенно по нижней границе входной частоты - 8MHz) и EEFC_FMR (он должен инициализироваться кодом, находящимся в RAM). Использование атмеловского примера никак не гарантирует правильность этих настроек. P.S. Errata есть и на процессоры ревизии "A", находится в хвосте даташита. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
*rust* 0 8 апреля, 2011 Опубликовано 8 апреля, 2011 · Жалоба P.S. Errata есть и на процессоры ревизии "A", находится в хвосте даташита. У меня этот документ Errata on SAM3U Engineering Sample Devices датируется 9августа 2010г, ничего для ревизии AU я не нашел. Проверьте правильность настройки PLL (особенно по нижней границе входной частоты - 8MHz) и EEFC_FMR (он должен инициализироваться кодом, находящимся в RAM). Борд один и тот же, процессоры разные. На одном работает на другом нет. Я не могу утверждать, но мне кажется, что-то не так с процессором. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Атмег 0 8 апреля, 2011 Опубликовано 8 апреля, 2011 (изменено) · Жалоба Использование атмеловского примера никак не гарантирует правильность этих настроек. В качестве иллюстрации: год назад здесь пытался выяснить причины неадекватного поведения sam9263. Попытки локализации ошибки ни к чему не приводили. Причина была в конфигурации sdram из атмеловского стартапа. Изменено 8 апреля, 2011 пользователем Атмег Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 8 апреля, 2011 Опубликовано 8 апреля, 2011 · Жалоба У меня этот документ Errata on SAM3U Engineering Sample Devices датируется 9августа 2010г, ничего для ревизии AU я не нашел. Еще раз: errata на процессоры ревизии "A", находится в хвосте даташита (раздел 47 doc6430.pdf). Борд один и тот же, процессоры разные. На одном работает на другом нет. Я не могу утверждать, но мне кажется, что-то не так с процессором. Я тоже ничего не могу утверждать, но мне кажется, что что-то не так с вашей программой. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
*rust* 0 8 апреля, 2011 Опубликовано 8 апреля, 2011 · Жалоба Еще раз: errata на процессоры ревизии "A", находится в хвосте даташита (раздел 47 doc6430.pdf). есть такое, я не обратил внимание. ATMEL ответил, что разница между этими процессорами есть и нужно ее учитывать, согласно errata документации. Если честно, мне не очень нравиться тот факт, что процессоры разных ревизий, так сильно отличаются. Я понимаю, когда какая-то мелочь может не работать или работать не совсем по документации, но глюк при запуске это уж слишком. ИМХО.. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
GenaSPB 11 9 апреля, 2011 Опубликовано 9 апреля, 2011 · Жалоба В процессе запуска выяснил, что в скопрированном один-в-один куске инициализации PLL десятки секунд ждём переключения на SLOW CLOCK: #if 0 if ((SUPC->SUPC_SR & SUPC_SR_OSCSEL) != SUPC_SR_OSCSEL_CRYST) { SUPC->SUPC_CR = SUPC_CR_XTALSEL_CRYSTAL_SEL | ((uint32_t) 0xA5 << 24); //timeout = 0; while (!(SUPC->SUPC_SR & SUPC_SR_OSCSEL_CRYST) ) ; } #endif Закомментарил, стало запускаться мгновенно. Кроме того, заработал RESET (в этом процессоре разрешённый сразу). До того как этот кусок закомментровал, запуск ускорялся от подачи сигнала на вход RXD USART0... WATCHDOG я запрещал до перенастройки PLL. В оригинальном примере, кажется, всё это под наблюдением собаки делается. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Атмег 0 12 апреля, 2011 Опубликовано 12 апреля, 2011 · Жалоба *rust*, проверьте, не такая ли ситуация и в вашем случае? сцылка Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться