Миландр
http://forum.milandr.ru/

Работа в среде CodeMaster-ARM от Фитона
http://forum.milandr.ru/viewtopic.php?f=27&t=215
Страница 3 из 3

Автор:  -=Sergei=- [ 2012-апр-11 15:47 ]
Заголовок сообщения:  Re: Работа в среде CodeMaster-ARM от Фитона

ЧумА писал(а):
Вы им позвоните, практика показывает, что писать бесполезно :(.


В Фитоне были некоторые организационные мероприятия (переезды/переоформления итп), но вроде сейчас уже все нормализовалось. Если не сложно повторите все им.

Автор:  takeo [ 2012-апр-12 18:58 ]
Заголовок сообщения:  Re: Работа в среде CodeMaster-ARM от Фитона

Я вчера связался непосредственно с Вячеславом Красновым, представителем Фитона с которым ранее уже имел дело, и это значительно ускорило решение моего вопроса.

Вот что сегодня ответили по существу моей проблемы:
"Вы пытаетесь отлаживать программу, использующую IWDG. К сожалению
микроконтроллеры 1986be9x не позволяют проводить такого рода отладку, т.к.
не предусмотрена возможность заморозки сторожевого таймера на время
останова выполняемой программы. Вследствие этого происходит ресет
контроллера в останове, что недопустимо (в останове допускается только
ресет, подаваемый самим отладчиком), и из-за чего нарушается обмен между
отладочиком и контроллером.

Сам по себе ресет у данного контроллера тоже заслуживает отдельного
внимания. Дело в том, что на время подачи ресета останавливаются все
источники тактирования контроллера, вследствие чего отладочный интерфейс
контроллера ведет себя "странным образом", выдавая сообщения, не
предусмотренные протоколом обмена. Если в качестве интерфейса выбран JTAG,
то ситуация не сильно катастрофична. Удалось за счет увеличения таймаута
ожидания ответа от контроллера добиться устойчивой работы отладчика при при
ресетах (во время выполнения программы) длительностью порядка 2-3-х секунд
и меньше. Если в качестве отладочного интерфейса выбран SWD, то в этом
случае с большой вероятностью ресет приведет к аппаратной ошибке. Причем
установить истинную причину этой ошибки невозможно, т.к. отладочный
интерфейс на время ресета полностью блокирован и нет возможности вычитать
значения статусных регистров отладочного модуля контроллера.

Касательно Вашей ситуации могу порекомендовать только одно: не используйте
во время отладки IWDG."

Автор:  Igor [ 2012-окт-31 15:11 ]
Заголовок сообщения:  Re:

ASavit писал(а):
luden писал(а):
Отладочные платы Milandr 1986ВЕ91Т. После установки CodeMaster-ARM и загрузки примера Milandr 1986 Phyton CMC-ARM C Compiler: LCD, PORTs and SysTick interrupts using (Milandr 1986BE91 evaluation board needed). При попытке загрузки отладчика JTAG-эмулятор JEM-ARM-2, выдаётся аппаратная ошибка #0x0117 (отсутствует питание в домене Debug целевого микроконтроллера). При попытке залития прошивки, выдаётся две неуказываемых ошибки.
Следовал инструкциям квикстарта. Что я делаю не так?

Нам удалось исследовать ситуацию, очень похожую на описанную Вами.
Обнаружена следующая причина возникновения 0x0117 ошибки во время запуска отладчика.
После программирования микроконтроллера в его флэш-памяти образовался код, который, будучи выполненным, блокирует работу отладочного модуля микроконтроллера. Т.е. в Вашем случае запрограммировалось не то, что должно было программироваться. Из-за ошибки в CodeMaster-ARM v2.25.01 такая ситуация вполне вероятна.
Чтобы разблокировать микроконтроллер нужно запретить ему выполнять код из флэш-памяти. Для этого:
1. На Вашей плате при отключенном питании нужно выбрать вариант загрузки из внешней памяти - EXT_ROM/JTAG_B (переключатели SW1, SW2, SW3 в положении 0, 1, 0).
2. Подключить отладчик к разъему JTAG_B.
3. Подать питание на плату.
4. Подключить отладчик к USB.
5. Запустить CodeMaster-ARM версии 2.25.02 или выше (скачать можно с сайта Фитона).
6. Выполнить команду стирания флэш-памяти - меню "Отладка" / "Стереть флэш-память".
После этого можно завершить работу с CodeMaster-ARM, отключить питание от платы, переключателями SW1, SW2, SW3 выбрать прежний режим загрузки и подключить отладчик к соответствующему разъему (JTAG_A или JTAG_B), подать питание на плату.
Теперь можно запустить CodeMaster-ARM и снова загрузить демонстрационный пример. Теперь должно работать.



Здравствуйте! Ситуация схожа. Только на разработанной плате для 1986ВЕ92У предусмотрен лишь разъем JTAGA. Что делать если нет JTAGB? Выводы MODE1..MODE0 подтянуты к "0" и "1" соответственно.

Автор:  ЧумА [ 2012-окт-31 20:25 ]
Заголовок сообщения:  Re: Работа в среде CodeMaster-ARM от Фитона

Не "Фитон", но отвечу:
1 Без манипуляций с MODE практически не обойтись :(
2 Вариант №1 - установить MODE в режим загрузки по UART, по работе с загрузчиком есть на форуме.
3 Вариант №2 - установить MODE в JTAGB, и кинуть провода на В от А. Достаточно только SWD. Мешающееся на ногах В - временно отрезать. Нам на ВЕ91 пришлось временно отрезать входы АЦП :(.

Если повезёт, т.е. код блокирующий JTAG запускается не сразу, то можно попробовать дать команду СТЕРЕТЬ по А как можно быстрее после подачи питания.

Автор:  Igor [ 2012-ноя-02 07:28 ]
Заголовок сообщения:  Re: Работа в среде CodeMaster-ARM от Фитона

Интересно, а аппаратная ошибка #0x0105 Code Master "Обнаружен разрыв цепи TDI-TDO при определении
длины регистра IR интерфейса JTAG." при использовании JEM-ARM-V2 с чем может быть связана. Подключить использование JTAG B нельзя, т.к. топология платы не позволяет вмешиваться. Прикрепляю файл, если кто даст дельный совет - буду благодарен. Для данной схемы сделана доработка: на MODE0 ч/х резистор 10кОм подаю 3,3В, на MODE1 - ч/з резистор 20кОм - GND. Есть ли шанс запустить процесс программирования для текущей конфигурации? Вроде всё делалось согласно принципиальной схеме на демоплату.

Вложения:
Комментарий к файлу: принципиальная схема
picture.jpg
picture.jpg [ 578.29 КБ | Просмотров: 7598 ]

Автор:  ЧумА [ 2012-ноя-02 08:40 ]
Заголовок сообщения:  Re: Работа в среде CodeMaster-ARM от Фитона

Цитата:
Подключить использование JTAG B нельзя, т.к. топология платы не позволяет вмешиваться.

У Вас что, микросборка? Для подключения по SWD нужно кинуть три провода на TCLK, TMS, TDO. Из трёх указанных две ноги по Вашей схеме - свободные. Третью (кажется, TMS) поднять над платой и одеть кембрик.

Автор:  Igor [ 2012-ноя-02 10:14 ]
Заголовок сообщения:  Re: Работа в среде CodeMaster-ARM от Фитона

ЧумА писал(а):
Цитата:
Подключить использование JTAG B нельзя, т.к. топология платы не позволяет вмешиваться.

У Вас что, микросборка? Для подключения по SWD нужно кинуть три провода на TCLK, TMS, TDO. Из трёх указанных две ноги по Вашей схеме - свободные. Третью (кажется, TMS) поднять над платой и одеть кембрик.

...Спасибо, помогло! МODE ставлю в конфигурацию 11, инициализация проходит успешно. Разбираемся дальше...

Автор:  Gro48 [ 2012-дек-06 14:35 ]
Заголовок сообщения:  Re: Работа в среде CodeMaster-ARM от Фитона

Доброго времени суток.
Вопрос может быть детский, но все же.
Пишу на Си. А компилятор игнорит функцию, ладно бы только мою. А он посягает на NVIC_EnableIRQ() (из core_cm3.h).
Можно ли это обойти, не меняя оптимизацию компилятора?
(я т конечно вытянул содержимое этой функции и сам биты переключил, и это скорее спортивный интерес)

Автор:  ASavit [ 2012-дек-10 11:50 ]
Заголовок сообщения:  Re: Работа в среде CodeMaster-ARM от Фитона

Gro48 писал(а):
Пишу на Си. А компилятор игнорит функцию, ладно бы только мою. А он посягает на NVIC_EnableIRQ() (из core_cm3.h).
Можно ли это обойти, не меняя оптимизацию компилятора?

Что значит "игнорирует" - не генерирует код? Вы смотрели в дизассемблере получившийся код.
Выложите, пожалуйста пример проекта, где это проявляется.
NVIC_EnableIRQ() - описана как inline-функция. Если она нигде не вызывается и ее адрес нигде не используется, то и код для нее генерироваться не должен.

Автор:  8daemon [ 2012-дек-11 21:40 ]
Заголовок сообщения:  Re: Работа в среде CodeMaster-ARM от Фитона

Непонятно почему при отладке клавишами F10 и F11 все равно выполняется заход в подпрограмму. Используется JEM ARM-V2.

Автор:  Mark [ 2013-фев-01 14:32 ]
Заголовок сообщения:  Re: Работа в среде CodeMaster-ARM от Фитона

8daemon писал(а):
Непонятно почему при отладке клавишами F10 и F11 все равно выполняется заход в подпрограмму. Используется JEM ARM-V2.

Поддерживаю, таже самая принеприятность.

Автор:  mokromax [ 2015-сен-28 14:40 ]
Заголовок сообщения:  Re:

ASavit писал(а):
luden писал(а):
Отладочные платы Milandr 1986ВЕ91Т. После установки CodeMaster-ARM и загрузки примера Milandr 1986 Phyton CMC-ARM C Compiler: LCD, PORTs and SysTick interrupts using (Milandr 1986BE91 evaluation board needed). При попытке загрузки отладчика JTAG-эмулятор JEM-ARM-2, выдаётся аппаратная ошибка #0x0117 (отсутствует питание в домене Debug целевого микроконтроллера). При попытке залития прошивки, выдаётся две неуказываемых ошибки.

Следовал инструкциям квикстарта. Что я делаю не так?


Нам удалось исследовать ситуацию, очень похожую на описанную Вами.

Обнаружена следующая причина возникновения 0x0117 ошибки во время запуска отладчика.
После программирования микроконтроллера в его флэш-памяти образовался код, который, будучи выполненным, блокирует работу отладочного модуля микроконтроллера. Т.е. в Вашем случае запрограммировалось не то, что должно было программироваться. Из-за ошибки в CodeMaster-ARM v2.25.01 такая ситуация вполне вероятна.

Чтобы разблокировать микроконтроллер нужно запретить ему выполнять код из флэш-памяти. Для этого:
1. На Вашей плате при отключенном питании нужно выбрать вариант загрузки из внешней памяти - EXT_ROM/JTAG_B (переключатели SW1, SW2, SW3 в положении 0, 1, 0).

2. Подключить отладчик к разъему JTAG_B.

3. Подать питание на плату.

4. Подключить отладчик к USB.

5. Запустить CodeMaster-ARM версии 2.25.02 или выше (скачать можно с сайта Фитона).

6. Выполнить команду стирания флэш-памяти - меню "Отладка" / "Стереть флэш-память".

После этого можно завершить работу с CodeMaster-ARM, отключить питание от платы, переключателями SW1, SW2, SW3 выбрать прежний режим загрузки и подключить отладчик к соответствующему разъему (JTAG_A или JTAG_B), подать питание на плату.

Теперь можно запустить CodeMaster-ARM и снова загрузить демонстрационный пример. Теперь должно работать.



Вляпался в подобную проблему (ошибка 0x0117) с одной лишь разницей. Проблема появилось при прошивке кода, приведенного ниже в кастомную (а не отладочную) плату. Описаное выше решение не подходит ибо сигналы MODE[2:0] = 001 жестко разведены на плате и дорожки находятся под корпуспм микросхемы - доступа к ним нет (не порезать, не подпаяться). Есть ли еще какое нибудь решение (через сигнал RESET например) ? CodeMaster-ARM 2.40.00

#include <types.h>
#include <stdio.h>

void main(void)
{
RST_CLK->PER_CLOCK = 0xFFFFFFFF;
RST_CLK->UART_CLOCK = 0x3000000; //Разрешение тактовой частоты на UART1, UART2, делитель тактовой частоты UART1_CLK=HCLK, UART2_CLK=HCLK

PORTC->FUNC = 0x00000000;
PORTC->ANALOG = 0xFFFFFFFF;
PORTC->OE = 0xFFFFFFFF;
PORTC->PWR = 0x55555555;

PORTC->RXTX = 0x00000000;

//Конфигурируем таймер
RST_CLK->TIM_CLOCK = 0x7000000; // Разрешаем тактирование таймеров, делитель тактовой = 0
TIMER1->CNTRL =0x00000000;
TIMER1->CNT = 0x00000000;
TIMER1->PSG = 0x0;
TIMER1->ARR = 0x0000FFFF;
TIMER1->IE = 0x00000002;
TIMER1->CNTRL = 0x00000001;

__WFI();
}

Автор:  I.Stepanov [ 2015-сен-30 13:53 ]
Заголовок сообщения:  Re: Re:

mokromax писал(а):
Вляпался в подобную проблему (ошибка 0x0117) с одной лишь разницей. Проблема появилось при прошивке кода, приведенного ниже в кастомную (а не отладочную) плату. Описаное выше решение не подходит ибо сигналы MODE[2:0] = 001 жестко разведены на плате и дорожки находятся под корпуспм микросхемы - доступа к ним нет (не порезать, не подпаяться). Есть ли еще какое нибудь решение (через сигнал RESET например) ? CodeMaster-ARM 2.40.00

Единственное, что можно посоветовать в Вашем случае - отпаять и приподнять соответствующие ножки микросхемы. Далее, следовать описанному выше решению.

Страница 3 из 3 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/