Миландр

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

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




Начать новую тему Ответить на тему  [ Сообщений: 43 ]  На страницу 1, 2, 3  След.
Автор Сообщение
 Заголовок сообщения: Работа в среде CodeMaster-ARM от Фитона
СообщениеДобавлено: 2010-мар-30 10:56 
Не в сети

Зарегистрирован: 2010-фев-17 23:58
Сообщения: 12
Здравствуйте!
Начала работать в этой среде с МК 1986ВЕ91Т1. Общее впечатление от среды хорошее. Интуитивно понятный интерфейс, грамотно сделанный пример.

При попытке отладить свою программу столкнулась со следующими трудностями:

1. Собственно, моя прога, которая должна была только зажечь все светодиоды на плате, не заработала. Попыталась ее отладить в пошаговом режиме по коду высокого уровня. Но среда меня упорно вела по ассемблерному коду. Несмотря на соответствующую поставленную галочку.

2. Подключилась в режиме отладки к плате. Решила попробовать поставить точку останова по коду на функции инициализации портов. При этом вылетела ошибка : "Внутренняя ошибка CM-ARM Access violation", среда закрылась. При повторном открытии среды вылетает ошибка "EO223 - Time tampering detected". Среда не загружается, перезагрузка ПК не помогает. Вчера была такая же ошибка, которая перестала появляться только через несколько часов не работы со средой.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 2010-мар-31 12:26 
Не в сети
Moderator

Зарегистрирован: 2010-мар-31 10:44
Сообщения: 54
Откуда: ООО "Фирма Фитон"
Здравствуйте, Мария!
Цитата:
Попыталась ее отладить в пошаговом режиме по коду высокого уровня. Но среда меня упорно вела по ассемблерному коду.

Для уяснения ситуации мне необходима дополнительная информация.

Вы работали со средой в режиме проекта или в режиме внешнего отладчика? (Режим внешнего отладчика включается, если закрыть текущий проект, или выполнить команду "Загрузить программу для отладки" через меню Файл, или соотв. кнопку панели инструментов.)

Каким образом вы заставляли среду выполнить шаг высокого уровня?
Для отработки шага высокого уровня без захода в подпрограмму можно либо нажать на клавишу F10, либо кликнуть по соответствующей кнопке панели инструментов.
Для отработки шага высокого уровня с заходом в подпрограмму можно либо нажать на клавишу F11, либо воспользоваться кнопкой на панели инструментов.

Цитата:
Несмотря на соответствующую поставленную галочку.

О какой галочке идет речь?

Цитата:
2. Подключилась в режиме отладки к плате. Решила попробовать поставить точку останова по коду на функции инициализации портов. При этом вылетела ошибка : "Внутренняя ошибка CM-ARM Access violation", среда закрылась. При повторном открытии среды вылетает ошибка "EO223 - Time tampering detected". Среда не загружается, перезагрузка ПК не помогает. Вчера была такая же ошибка, которая перестала появляться только через несколько часов не работы со средой.

Есть сильное подозрение, что проблема связана с переходом на летнее время при использовании ключа защиты ПО. Мы попытаемся воспроизвести эту проблему у себя. Если у вас эта проблема повторяется, то попробуйте отследить, в какое время, как долго и т.д (интересуют любые подробности).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 2010-апр-05 10:03 
Не в сети

Зарегистрирован: 2010-фев-17 23:58
Сообщения: 12
Извините, что долго не отвечала. Нужно было быстро сдавать проект, поэтому написала его в Кейле. Теперь опять вернулась к CodeMaster

ASavit писал(а):

Для уяснения ситуации мне необходима дополнительная информация.

Вы работали со средой в режиме проекта или в режиме внешнего отладчика? (Режим внешнего отладчика включается, если закрыть текущий проект, или выполнить команду "Загрузить программу для отладки" через меню Файл, или соотв. кнопку панели инструментов.)

Каким образом вы заставляли среду выполнить шаг высокого уровня?
Для отработки шага высокого уровня без захода в подпрограмму можно либо нажать на клавишу F10, либо кликнуть по соответствующей кнопке панели инструментов.
Для отработки шага высокого уровня с заходом в подпрограмму можно либо нажать на клавишу F11, либо воспользоваться кнопкой на панели инструментов.

Собственно, о той ситуации у меня не осталось записей, а таких подробностей не помню)))
Сейчас пробовала тоже самое просто в симуляторе. В си-шном файле вообще не видно что происходит, в окне с ассемблером идет долгий перебор пустых функций (MOVS R0,R0). Использовала кнопку "шаг высокого уровня" с заходом в подпрограмму (F11)

Если же подключиться к плате и отлаживать через программатор (режим внешнего отладчика), то шаги происходят по функциям Си, все ок. Только значения в регистрах не выставляются/не обновляются. Грешила на свою неопытность, поэтому не стала отлаживать дальше свой проект, а взяла только функции работы со светодиодами из примера. Таким образом у меня получилось:
файл main.c :
#include <stdio.h>
#include <types.h>
#include <leds.h>
void main(void) {
InitPortLED();
ShiftLights();
while(1);
}
файл leds.c :
void InitPortLED(void) {
PORTD->FUNC &= ~((0x3FF << (LED0_OFS << 1))); /* Port */
PORTD->ANALOG |= LEDS_MASK; /* Digital */
PORTD->PWR |= (0x155 << (LED0_OFS << 1)); /* Slow */
PORTD->RXTX &= ~LEDS_MASK;
PORTD->OE |= LEDS_MASK;
}

void ShiftLights(void) {

PORTD->RXTX = 0x7000;
}

Все равно регистры не обновляются, а диоды не загораются(((

ASavit писал(а):
О какой галочке идет речь?

Ну это галочка в настройке автоШагания. Потому что я и так пробовала отладить.
ASavit писал(а):
Есть сильное подозрение, что проблема связана с переходом на летнее время при использовании ключа защиты ПО. Мы попытаемся воспроизвести эту проблему у себя. Если у вас эта проблема повторяется, то попробуйте отследить, в какое время, как долго и т.д (интересуют любые подробности).


Пока повторить не удалось, но я буду пытаться))))


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 2010-апр-06 14:02 
Не в сети
Moderator

Зарегистрирован: 2010-мар-31 10:44
Сообщения: 54
Откуда: ООО "Фирма Фитон"
Цитата:
Сейчас пробовала тоже самое просто в симуляторе. В си-шном файле вообще не видно что происходит, в окне с ассемблером идет долгий перебор пустых функций (MOVS R0,R0). Использовала кнопку "шаг высокого уровня" с заходом в подпрограмму (F11)

Похоже, что ваша программа не была загружена.
Для отладки программ можно использовать 2 варианта работы с CodeMaster:

1. Внешний отладчик.
Программа компилируется внешним компилятором (Keil, IAR, ...) не из под среды CodeMaster, а CodeMaster передается только результат компиляции - прожигаемый файл. Если это HEX или BIN файл, то символьная информация в нем отсутствует и можно "шагать" только по ассемблерным инструкциям. Для других (поддерживаемых CodeMaster) вариантов символьная информация имеется и можно вести полноценную отладку.
Для загрузки файла нужно выбрать меню Файл / Загрузить программу для отладки..., или кликнуть по значку Изображение на панели инструментов.

2. Работа с проектом. (Похоже, это тот вариант, который вам необходим.)
Для работы с проектом необходимо создать (или загрузить имеющийся) проект.
Подробнее о создании проекта смотрите CodeMaster-ARM Руководство пользователя | Разработка Проекта.
После того как вы создали проект, добавили c-и файлы, добавили ассемблерный файл startup_device_m3.mca (находится в папке компилятора CMC-ARM\Lib\Source), выбрали целевой микроконтроллер (кнопка Изображение, закладка Микроконтроллер), можно запустить компиляцию программы и, в случае успеха, ее прожиг (кнопка Изображение).
После этого шаги высокого уровня должны работать.
Цитата:
Если же подключиться к плате и отлаживать через программатор (режим внешнего отладчика), то шаги происходят по функциям Си, все ок. Только значения в регистрах не выставляются/не обновляются.

Вы забыли включить тактирование модуля PORTD. Нужно сделать, например, так:

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

#define mask_PCLK_RST_CLK (1 << 4)
#define mask_PCLK_PORTD (1 << 24)

void main(void) {

RST_CLK->PER_CLOCK = mask_PCLK_RST_CLK | mask_PCLK_PORTD;
InitPortLED();
ShiftLights();
while(1);
}


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 2010-июн-10 10:43 
Не в сети

Зарегистрирован: 2010-фев-18 12:12
Сообщения: 16
При загрузке примера программы (1986BE91_Demo) в режиме симулятора не происходит изменение регистров, хотя в режиме JTAG-эмулятора регистры изменяют свое значение согласно программе.

При отладке через JTAGB программа начинает выполняться с PC=0 (хотя main c 8000000h) и не происходит переход на обработку прерываний. При отладке через JTAGА все корректно.

Время от времени при отладке через JTAGА возникает ошибка:


Вложения:
JTAG-A.JPG
JTAG-A.JPG [ 37.86 КБ | Просмотров: 11461 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 2010-июн-10 12:00 
Не в сети
Site Admin
Аватара пользователя

Зарегистрирован: 2009-янв-20 10:05
Сообщения: 778
Alexey_Prv писал(а):
При загрузке примера программы (1986BE91_Demo) в режиме симулятора не происходит изменение регистров, хотя в режиме JTAG-эмулятора регистры изменяют свое значение согласно программе.

При отладке через JTAGB программа начинает выполняться с PC=0 (хотя main c 8000000h) и не происходит переход на обработку прерываний. При отладке через JTAGА все корректно.

Время от времени при отладке через JTAGА возникает ошибка:

При JTAGB если установлен джамперами SW MODE[1:0]=10, то запуск происходит из внешней памяти (которой судя по всему нет) и процессор "зависает" в загрузочном ПЗУ в адресах близких к нулю.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 2010-июн-15 20:22 
Не в сети
Moderator

Зарегистрирован: 2010-мар-31 10:44
Сообщения: 54
Откуда: ООО "Фирма Фитон"
Alexey_Prv писал(а):
При загрузке примера программы (1986BE91_Demo) в режиме симулятора не происходит изменение регистров, хотя в режиме JTAG-эмулятора регистры изменяют свое значение согласно программе.

Мы решаем эту проблему. В следующей версии CodeMaster проблему устраним.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 2010-июн-16 12:38 
Не в сети
Moderator

Зарегистрирован: 2010-мар-31 10:44
Сообщения: 54
Откуда: ООО "Фирма Фитон"
Alexey_Prv писал(а):
Время от времени при отладке через JTAGА возникает ошибка:

Нужны подробности:
    - В какой момент возникает ошибка - во время выполнения программы, или в останове?
    - Какие периферийные модули задействованы в программе?
    - Используются ли режимы контроллера с уменьшенным энергопотреблением (SLEEP и т.д.)?
    - Используется ли внешний сброс контроллера?

Также желательно запустить CodeMaster в диагностическом режиме, после получения сообщения об ошибке создать отчет об ошибке и выслать его на Фитон.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 2010-июн-18 08:52 
Не в сети

Зарегистрирован: 2010-фев-18 12:12
Сообщения: 16
В AVR Studio отображаются параметры: Cycle Counter и Stop Watch. Возможно ли отображение этих параметров в ПО CodeMaster?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 2010-июн-24 17:50 
Не в сети
Moderator

Зарегистрирован: 2010-мар-31 10:44
Сообщения: 54
Откуда: ООО "Фирма Фитон"
Alexey_Prv писал(а):
В AVR Studio отображаются параметры: Cycle Counter и Stop Watch. Возможно ли отображение этих параметров в ПО CodeMaster?

В следующей (2.11.03) версии CodeMaster-ARM мы добавим возможность контроля времени выполнения программы.


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

Зарегистрирован: 2009-май-25 14:29
Сообщения: 30
при работе с CodeMaster-ARM возникли проблемы с исходником на Си.
Дело в том, что не имея справочника по реализованным в компиляторе функциям и их синтаксису довольно сложно работать.
Если имеется, дайте ссылку, где можно по этим вопросам получать ответы.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 2010-сен-10 16:02 
Не в сети
Moderator

Зарегистрирован: 2010-мар-31 10:44
Сообщения: 54
Откуда: ООО "Фирма Фитон"
boris_102 писал(а):
при работе с CodeMaster-ARM возникли проблемы с исходником на Си.
Дело в том, что не имея справочника по реализованным в компиляторе функциям и их синтаксису довольно сложно работать.
Если имеется, дайте ссылку, где можно по этим вопросам получать ответы.

Если Вы имеете в виду встроенные (intrinsic) функции, то их описание приведено в Руководстве пользователя на компилятор CMC-ARM (см. пункт "Описание компилятора -> Функции", подпункты: "Встроенные функции", "Встроенные функции для процессоров серии Cortex-M", "Встроенные функции для процессоров Cortex-M3").

Если же Вы имеете в виду функции стандартной бибилиотеки C, то список имеющихся в библиотеке функций приведен в пункте "Библиотека CMC-ARM -> Функции стандартной библиотеки", а их интерфейс и реализация соответствуют стандарту ANSI C - информацию по ним можно найти в любом справочнике по языку C.


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

Зарегистрирован: 2009-май-25 14:29
Сообщения: 30
Руководство пользователя на компилятор CMC-ARM - это руководство где взять?
У нас имеется руководство пользователя на CodeMaster-ARM, в нем такой информации нет.
а вот руководства собственно на компилятор нет, и ссылок не нашел.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 2010-сен-14 11:48 
Не в сети
Moderator

Зарегистрирован: 2010-мар-31 10:44
Сообщения: 54
Откуда: ООО "Фирма Фитон"
boris_102 писал(а):
Руководство пользователя на компилятор CMC-ARM - это руководство где взять?
У нас имеется руководство пользователя на CodeMaster-ARM, в нем такой информации нет.
а вот руководства собственно на компилятор нет, и ссылок не нашел.

В Windows кнопка Пуск, далее Программы/Phyton CodeMaster-ARM 2.12.00, выбрать пункт "CMC-ARM C Compiler User's Guide".
Либо Запустить CodeMaster-ARM и в меню Справка выбрать "CMC-ARM C Compiler User's Guide".
Либо найти в папке C:\Program Files\Phyton CodeMaster-ARM\2_12_00\CMC-ARM\Doc и открыть файл CMC-ARM.chm.


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

Зарегистрирован: 2011-янв-13 11:10
Сообщения: 3
При сборке проекта не проходит компиляция файла system.h: компилятор ругается на параметры по умолчанию в функциях. Когда я закоментировал эти функции, компиляция прошла успешно, но линкер выдаёт ошибки, что используемые мной функции (GetByte,MinAddr,MaxAddr) не определены (Undefined extern name 'GetByte' in module 'MAIN'). Отчего это может происходить?


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

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


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

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


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

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