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

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

Автор:  ASavit [ 2011-янв-13 13:43 ]
Заголовок сообщения: 

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

Это происходит потому, что файл system.h не предназначен для использования в программах на Си. Его назначение - использование в файлах сценариев (скриптах), которые бывают полезны для автоматизации работы CodeMaster. Для написания файлов сценариев используется специально разработанный Фитоном Си-подобный язык, поэтому system.h очень похож на файл программы на Си.

Автор:  Vladimir [ 2011-янв-13 16:17 ]
Заголовок сообщения: 

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

Автор:  ASavit [ 2011-янв-13 17:18 ]
Заголовок сообщения: 

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).

Автор:  Vladimir [ 2011-янв-14 15:16 ]
Заголовок сообщения: 

Спасибо, теперь всё работает. Только когда
Код:
#pragma locate MyVar 0x0 noinit

компилятор зависает. Получается, ячейку с нулевым адресом нельзя прочитать

Автор:  ASavit [ 2011-янв-14 15:48 ]
Заголовок сообщения: 

Vladimir писал(а):
Спасибо, теперь всё работает. Только когда
Код:
#pragma locate MyVar 0x0 noinit

компилятор зависает. Получается, ячейку с нулевым адресом нельзя прочитать

Спасибо за найденную ошибку компилятора. Она действительно проявляется только для 0-го адреса. В следующей версии компилятора будет исправлена.

Автор:  luden [ 2011-июн-09 12:47 ]
Заголовок сообщения: 

Отладочные платы 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 целевого микроконтроллера). При попытке залития прошивки, выдаётся две неуказываемых ошибки.

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

Автор:  ASavit [ 2011-июн-20 12:19 ]
Заголовок сообщения: 

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 и снова загрузить демонстрационный пример. Теперь должно работать.

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

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

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

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


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

Автор:  prostoRoman [ 2012-янв-24 19:16 ]
Заголовок сообщения:  Re: Работа в среде CodeMaster-ARM от Фитона

всё же надо прикрутить сюда кнопку +1 =)

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

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

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

Вот похожий вопрос по keil (может будет более понятно, о чем я спрашиваю)
http://www.keil.com/forum/16692/

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

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

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

здесь вообще появляется кто-нибудь из Фитона? Уже почти две недели как отослал вам отчёт о сбое. Вы бы хоть что-нибудь ответили!

Вложения:
CM-ARM_Bug_Report(H).zip [105.04 КБ]
Скачиваний: 209

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

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

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