Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: ADUC7020 не запускается
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
Eugeny25
Разжился я маленькой макетной платой от AD,
на ней стоит только ADUC7020 стабилизатор на 3,3В, две кнопки, два светодиода и еще несколько конденсаторов.
Схема тут:
http://www.analog.com/static/imported-file...7020_adap_a.pdf

Чтобы начать, слепил маленькую програмку, – она должна была мигать светодиодом, подключенным к порту P4.2.
Текст на СИ вот такой:

#include <aduc7020.h>

int main (void)
{
unsigned long i; // Delay var

GP4DAT = 0x04000000; // P4.2 defined as Output
while (1) //Loop forever
{
GP4DAT ^= 0x00040000; // Toggle P4.2 LED
for (i = 0; i < 100000; i++);
}
}

Оттранслировал все это Кейл-ом, и загрузил ARMWSD.
Загрузка проходит, но светодиод не мигает :-[,
такое впечатление, что до исполнения сишного кода дело не доходит.
В качестве пролога я использовал стандартный файл ADuC702x.s, поставляемый вместе с кейлом.

Вопрос собственно в следующем:
1) Может ли быть так, что какое-нибудь прерывание или исключительная ситуация
мешает процессору дойти до исполнения кода, написанного на Си
(например нужно какую-нибудь ногу подтянуть к питанию (предположим TMS или TDI, чего на плате не сделано) или еще что-нибудь в этом же роде)
2) Может у кого-нибудь есть HEX файл, который заведомо мигает этим светодиодом на ADuC7020, а я что-нибудь неправильно странслировал?
3) Или все-таки мне достался битый процессор, хотя он явно загружается, и после нажатия кнопки RUN в ARMWSD,
тот пишет running. Кроме того MRST, ведет себя адекватно и после появления питания или отпускания Reset-a переходит c правильной задержкой в 1.
etoja
Вы подумали какую паузу обеспечивает цикл до ста тысяч при быстродействии 20 MIPS ?

Для светодиода команда чтение-модификация-запись может не изменять состояние вывода микросхемы. Почему? - Подумайте сами и посмотрите осциллографом.
Eugeny25
Цитата(etoja @ Jun 18 2009, 11:33) *
Вы подумали какую паузу обеспечивает цикл до ста тысяч при быстродействии 20 MIPS ?

Для светодиода команда чтение-модификация-запись может не изменять состояние вывода микросхемы. Почему? - Подумайте сами и посмотрите осциллографом.



20 MIPS? даже если в цикле одна команда то получится 200Гц для светодиода это не предел smile.gif
Осциллографом я тоже смотрел - вывод в 3 состоянии.
Или Вы думаете, что цикл слишком длинный (т.е. задержка слишком большая) и я не могу дождаться когда она кончится, так нет - я пробовал начинать и с выключенного светодиода и с включенного.

Все равно спасибо, хоть кто-то ответил. smile.gif
Сергей Борщ
1)Надо смотреть листинг.
2)Такой цикл компилятор скорее всего выбросит - с его точки зрения он ничего полезного не делает. Чтобы обойти это, объявите i с квалификатором volatile.
3)Насколько я помню, никаких дополнительных сигналов кроме сброса подавать не надо (работал с 7021).
Eugeny25
Цитата(Сергей Борщ @ Jun 18 2009, 15:13) *
1)Надо смотреть листинг.
2)Такой цикл компилятор скорее всего выбросит - с его точки зрения он ничего полезного не делает. Чтобы обойти это, объявите i с квалификатором volatile.
3)Насколько я помню, никаких дополнительных сигналов кроме сброса подавать не надо (работал с 7021).


Cпасибо,
Но проблема не в том, что светодиод мигает слишком быстро, а в том, что нога Р4.2 в третьем состоянии, другими словами светодиод не только не мигает, но и не светится, да и осциллографом импульсов не видно. Даже кусок без цикла While не зажигает светодиод sad.gif
Ни в случае GP4DAT = 0x04000000;, ни в случае GP4DAT = 0x04040000; от отчаяния попробовал даже
значения 0хFF000000 и 0хFFFF0000...
Сергей Борщ
Цитата(Eugeny25 @ Jun 18 2009, 15:45) *
Но проблема не в том, что светодиод мигает слишком быстро, а в том, что нога Р4.2 в третьем состоянии
Пункт 1. Надо смотреть листинг. Весь. Пройти его глазами или в симуляторе Кейла от вектора Reset до цикла.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.