Миландр

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

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




Начать новую тему Ответить на тему  [ Сообщений: 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
Сообщения: 1262
Откуда: АО "ПКК Миландр"
thrash писал(а):
Здравствуйте.
Вопрос касается стандартной библиотеки С от Фитона. В файле stdio.h не определена функция fopen (или я не разобрался, как ее найти). Не могли бы Вы выложить пример работы с файлами в CMC-ARM С. Простую последовательность: открыть файл с определенным именем -> записать в файл -> закрыть файл.
Спасибо.


А где вы потом планируете этот файл увидеть ?


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

Зарегистрирован: 2009-июл-21 14:13
Сообщения: 958
Откуда: Тула
всё же надо прикрутить сюда кнопку +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 КБ]
Скачиваний: 164
Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 2012-апр-11 07:57 
Не в сети

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


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

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


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

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


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

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