Миландр

Ключевым подразделением нашей компании является Центр Проектирования интегральных микросхем
Текущее время: 2017-ноя-22 05:01

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 43 ]  На страницу Пред.  1, 2, 3
Автор Сообщение
СообщениеДобавлено: 2012-апр-11 15:47 
Не в сети

Зарегистрирован: 2009-май-22 09:01
Сообщения: 1271
Откуда: АО "ПКК Миландр"
ЧумА писал(а):
Вы им позвоните, практика показывает, что писать бесполезно :(.


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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 2012-апр-12 18:58 
Не в сети

Зарегистрирован: 2012-янв-08 17:03
Сообщения: 10
Я вчера связался непосредственно с Вячеславом Красновым, представителем Фитона с которым ранее уже имел дело, и это значительно ускорило решение моего вопроса.

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

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

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re:
СообщениеДобавлено: 2012-окт-31 15:11 
Не в сети

Зарегистрирован: 2011-май-26 07:22
Сообщения: 16
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" соответственно.

_________________
#include <brain.h>


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 2012-окт-31 20:25 
Не в сети

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

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 2012-ноя-02 07:28 
Не в сети

Зарегистрирован: 2011-май-26 07:22
Сообщения: 16
Интересно, а аппаратная ошибка #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 КБ | Просмотров: 7249 ]

_________________
#include <brain.h>
Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 2012-ноя-02 08:40 
Не в сети

Зарегистрирован: 2009-сен-21 12:39
Сообщения: 444
Цитата:
Подключить использование JTAG B нельзя, т.к. топология платы не позволяет вмешиваться.

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 2012-ноя-02 10:14 
Не в сети

Зарегистрирован: 2011-май-26 07:22
Сообщения: 16
ЧумА писал(а):
Цитата:
Подключить использование JTAG B нельзя, т.к. топология платы не позволяет вмешиваться.

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

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

_________________
#include <brain.h>


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 2012-дек-06 14:35 
Не в сети

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 2012-дек-10 11:50 
Не в сети
Moderator

Зарегистрирован: 2010-мар-31 10:44
Сообщения: 54
Откуда: ООО "Фирма Фитон"
Gro48 писал(а):
Пишу на Си. А компилятор игнорит функцию, ладно бы только мою. А он посягает на NVIC_EnableIRQ() (из core_cm3.h).
Можно ли это обойти, не меняя оптимизацию компилятора?

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 2012-дек-11 21:40 
Не в сети

Зарегистрирован: 2012-дек-11 21:35
Сообщения: 170
Откуда: Казань
Непонятно почему при отладке клавишами F10 и F11 все равно выполняется заход в подпрограмму. Используется JEM ARM-V2.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 2013-фев-01 14:32 
Не в сети

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

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re:
СообщениеДобавлено: 2015-сен-28 14:40 
Не в сети

Зарегистрирован: 2015-сен-28 13:46
Сообщения: 5
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();
}


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Re:
СообщениеДобавлено: 2015-сен-30 13:53 
Не в сети
Moderator

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

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


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 43 ]  На страницу Пред.  1, 2, 3

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB