Миландр

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

Часовой пояс: UTC+03:00




Начать новую тему  Ответить на тему  [ 43 сообщения ]  На страницу « 1 2 3 »
Автор Сообщение
 Заголовок сообщения:
СообщениеДобавлено: 2011-янв-13 13:43 
Не в сети
Moderator

Зарегистрирован: 2010-мар-31 10:44
Сообщения: 54
Откуда: ООО "Фирма Фитон"
Vladimir писал(а):
При сборке проекта не проходит компиляция файла system.h: компилятор ругается на параметры по умолчанию в функциях. Когда я закоментировал эти функции, компиляция прошла успешно, но линкер выдаёт ошибки, что используемые мной функции (GetByte,MinAddr,MaxAddr) не определены (Undefined extern name 'GetByte' in module 'MAIN'). Отчего это может происходить?
Это происходит потому, что файл system.h не предназначен для использования в программах на Си. Его назначение - использование в файлах сценариев (скриптах), которые бывают полезны для автоматизации работы CodeMaster. Для написания файлов сценариев используется специально разработанный Фитоном Си-подобный язык, поэтому system.h очень похож на файл программы на Си.


Вынести предупреждение
Вернуться к началу
 Заголовок сообщения:
СообщениеДобавлено: 2011-янв-13 16:17 
Не в сети

Зарегистрирован: 2011-янв-13 11:10
Сообщения: 3
Спасибо. А для сишных программ нет подобных функций? Мне встречалось что-то вроде :MB(addr) -байт, расположенный в памяти по адресу addr, но такую запись компилятор тоже не одобрил.


Вынести предупреждение
Вернуться к началу
 Заголовок сообщения:
СообщениеДобавлено: 2011-янв-13 17:18 
Не в сети
Moderator

Зарегистрирован: 2010-мар-31 10:44
Сообщения: 54
Откуда: ООО "Фирма Фитон"
Vladimir писал(а):
Спасибо. А для сишных программ нет подобных функций? Мне встречалось что-то вроде :MB(addr) -байт, расположенный в памяти по адресу addr, но такую запись компилятор тоже не одобрил.
Конструкции вида :MB(addr) можно применять в окне просмотра переменных (Watches), но не в Си программе, т.к. отсутствуют в стандартах Си.
Если Вам нужно получить из программы доступ к какой-либо ячейке памяти, размещенной по абсолютному адресу, можно использовать, например, типы, описанные в файле types.h. Файл находится в примере проекта для отладочной платы 1986BE91. Этот пример входит в комплект поставки CodeMaster-ARM.
Таким образом, чтобы работать с ячейкой по адресу 0x20000000, как с 8-и битным числом без знака (тип "u8") можно использовать следующий универсальный способ:
#define MyVar (*(u8 *)0x20000000)
.....
  MyVar = 5;
  x = MyVar + 1;
.....
, либо
#pragma locate MyVar 0x20000000 noinit
u8 MyVar;
Директива #pragma locate - понимается только Фитоновским компилятором, но более удобна, т.к. в этом случае имя MyVar не скушается препроцессором и оно попадет в отладочную информацию откомпилированной программы. И это имя можно будет использовать в отладчике, например, в окне Переменные (Watches).


Вынести предупреждение
Вернуться к началу
 Заголовок сообщения:
СообщениеДобавлено: 2011-янв-14 15:16 
Не в сети

Зарегистрирован: 2011-янв-13 11:10
Сообщения: 3
Спасибо, теперь всё работает. Только когда
#pragma locate MyVar 0x0 noinit
компилятор зависает. Получается, ячейку с нулевым адресом нельзя прочитать


Вынести предупреждение
Вернуться к началу
 Заголовок сообщения:
СообщениеДобавлено: 2011-янв-14 15:48 
Не в сети
Moderator

Зарегистрирован: 2010-мар-31 10:44
Сообщения: 54
Откуда: ООО "Фирма Фитон"
Vladimir писал(а):
Спасибо, теперь всё работает. Только когда
#pragma locate MyVar 0x0 noinit
компилятор зависает. Получается, ячейку с нулевым адресом нельзя прочитать
Спасибо за найденную ошибку компилятора. Она действительно проявляется только для 0-го адреса. В следующей версии компилятора будет исправлена.


Вынести предупреждение
Вернуться к началу
 Заголовок сообщения:
СообщениеДобавлено: 2011-июн-09 12:47 
Не в сети

Зарегистрирован: 2011-июн-09 12:40
Сообщения: 1
Отладочные платы 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 целевого микроконтроллера). При попытке залития прошивки, выдаётся две неуказываемых ошибки.

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


Вынести предупреждение
Вернуться к началу
 Заголовок сообщения:
СообщениеДобавлено: 2011-июн-20 12:19 
Не в сети
Moderator

Зарегистрирован: 2010-мар-31 10:44
Сообщения: 54
Откуда: ООО "Фирма Фитон"
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 и снова загрузить демонстрационный пример. Теперь должно работать.


Вынести предупреждение
Вернуться к началу
СообщениеДобавлено: 2012-янв-18 10:18 
Не в сети

Зарегистрирован: 2012-янв-18 09:51
Сообщения: 3
Здравствуйте.
Вопрос касается стандартной библиотеки С от Фитона. В файле stdio.h не определена функция fopen (или я не разобрался, как ее найти). Не могли бы Вы выложить пример работы с файлами в CMC-ARM С. Простую последовательность: открыть файл с определенным именем -> записать в файл -> закрыть файл.
Спасибо.


Вынести предупреждение
Вернуться к началу
СообщениеДобавлено: 2012-янв-24 14:53 
Не в сети

Зарегистрирован: 2009-май-22 09:01
Сообщения: 1299
Откуда: АО "ПКК Миландр"
thrash писал(а):
Здравствуйте.
Вопрос касается стандартной библиотеки С от Фитона. В файле stdio.h не определена функция fopen (или я не разобрался, как ее найти). Не могли бы Вы выложить пример работы с файлами в CMC-ARM С. Простую последовательность: открыть файл с определенным именем -> записать в файл -> закрыть файл.
Спасибо.
А где вы потом планируете этот файл увидеть ?


Вынести предупреждение
Вернуться к началу
СообщениеДобавлено: 2012-янв-24 19:16 
Не в сети

Зарегистрирован: 2009-июл-21 14:13
Сообщения: 1390
Откуда: Тула
всё же надо прикрутить сюда кнопку +1 =)

_________________
сочувствующий…


Вынести предупреждение
Вернуться к началу
СообщениеДобавлено: 2012-янв-28 19:50 
Не в сети

Зарегистрирован: 2012-янв-18 09:51
Сообщения: 3
Я планирую работать таким образом: сгенерировать файл с данными (например, в Matlab), считать эти данные из файла в CodeMaster-ARM, провести обработку данных в CodeMaster-ARM, записать результат обработки в файл, затем сравнить результаты из файла с необходимыми и оценить адекватность обработки.
Подобный способ отладки использовал в MPlab.
Хотел бы иметь возможность также отлаживать и в CodeMaster-ARM.


Вынести предупреждение
Вернуться к началу
СообщениеДобавлено: 2012-янв-28 20:25 
Не в сети

Зарегистрирован: 2012-янв-18 09:51
Сообщения: 3
Вот похожий вопрос по keil (может будет более понятно, о чем я спрашиваю)
http://www.keil.com/forum/16692/


Вынести предупреждение
Вернуться к началу
СообщениеДобавлено: 2012-фев-06 18:17 
Не в сети

Зарегистрирован: 2012-янв-08 17:03
Сообщения: 10
Процитирую письмо, которое я написал в Фитон и на которое не получил ответа:
"в настройках компилятора Codemaster-ARM можно задать три уровня компиляции (с тремя опциями во втором). Поясните, пожалуйста, чем конкретно они отличаются. В руководстве пользователя ничего про это не нашёл."


Вынести предупреждение
Вернуться к началу
СообщениеДобавлено: 2012-апр-10 18:20 
Не в сети

Зарегистрирован: 2012-янв-08 17:03
Сообщения: 10
здесь вообще появляется кто-нибудь из Фитона? Уже почти две недели как отослал вам отчёт о сбое. Вы бы хоть что-нибудь ответили!


Вложения:
CM-ARM_Bug_Report(H).zip [105.04 КБ]
273 скачивания
Вынести предупреждение
Вернуться к началу
СообщениеДобавлено: 2012-апр-11 07:57 
Не в сети

Зарегистрирован: 2009-сен-21 12:39
Сообщения: 513
Вы им позвоните, практика показывает, что писать бесполезно :(.


Вынести предупреждение
Вернуться к началу
Показать сообщения за:  Поле сортировки  
Начать новую тему  Ответить на тему  [ 43 сообщения ]  На страницу « 1 2 3 »

Часовой пояс: UTC+03:00


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

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


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

Перейти: 

Создано на основе phpBB® Forum Software © phpBB Limited
Русская поддержка phpBB