Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: crossworks&mt-link
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
SpiritDance
Вобщем не заработал в версии 1.5. Решил может из-за того что поломано неудачно и скОчал версию 1.6 3. Результат то же -плачевный. то есть коннект происходит, а вот таргет прошиваться отказывается (at91sam7s256), при этим кроссворкс выводит подобную ругань:
Цитата
write memory error @ adress 0xFFFFFD00, word access: Memory timeout

при этом тут же j-flash работает как хочешь и без проблем. Скорость одинаковая везде - 4000 kHz, timeout -1000. При этом в настройках проекта j-flash вижу некую процедуру инициализации и понимаю что по адресу 0xFFFFFD00 j-flash вобщем ничего не пишет, то есть возможно в кроссворксе задан неправильный скрипт для инициализации. Как ето дело поправить/настроить я не понял, в мануал смотрел - нашел только фигу.

Люди добрые у кого кроссворкс пашет с jlink помогите настроить, не виглер же пользовать. help.gif
SpiritDance
Блин, аддон, таки пишет j-link по адресу fd00 - это reset controller control regidter. Тогда я вобще ничего не понимаю.
etoja
J-Flash ARM v3.46 - программа с глюками. Ругается на файлы из Кейла (ошибка контрольной суммы)
и сама правит их на какие-то левые контрольные суммы.
SpiritDance
smile.gif))) Сами Вы с глюками. Наверное ей филипсы прошивать хотите? Так правильно, она добавляет контрольную сумму для загрузчика. А версия у меня 3.52.
Alex03
Цитата(SpiritDance @ Nov 30 2006, 13:28) *
Вобщем не заработал в версии 1.5. Решил может из-за того что поломано неудачно и скОчал версию 1.6 3. Результат то же -плачевный. то есть коннект происходит, а вот таргет прошиваться отказывается (at91sam7s256), при этим кроссворкс выводит подобную ругань:
Цитата

write memory error @ adress 0xFFFFFD00, word access: Memory timeout

при этом тут же j-flash работает как хочешь и без проблем. Скорость одинаковая везде - 4000 kHz, timeout -1000. При этом в настройках проекта j-flash вижу некую процедуру инициализации и понимаю что по адресу 0xFFFFFD00 j-flash вобщем ничего не пишет, то есть возможно в кроссворксе задан неправильный скрипт для инициализации. Как ето дело поправить/настроить я не понял, в мануал смотрел - нашел только фигу.

Люди добрые у кого кроссворкс пашет с jlink помогите настроить, не виглер же пользовать. help.gif


Проверьте частоту кварца в пропертях проекта и частоту в пропертях J-Link-а (всё это в CW понятно).
Частоту J-Linк-а попробуйте уменьшить, до 1000 например.
Про скрипты, по дефолту при создании проекта в него и файл со скриптами включается, в вашем случае что-то типа AT91SAM7_Target.js
Для LPC скрипты от 1.5 до 1.6 сильно "похудели". smile.gif
SpiritDance
Цитата(Alex03 @ Nov 30 2006, 13:32) *
Проверьте частоту кварца в пропертях проекта и частоту в пропертях J-Link-а (всё это в CW понятно).

Эээ.... попдборобней пожалуйста а то чегой-то я не понял. Где пропертях jlink в crossworks указывается частота (кварца насколько я понимаю) и где она собственно в проекте(нафига интересно?)??

За подсказку про скрипты спасибо. Я так понимаю что мне множитель - делитель pll поправить таки надо но это дело все равно выполняется после reset, а у меня и до этого не доходит.
Alex03
Цитата(SpiritDance @ Nov 30 2006, 15:50) *
Цитата(Alex03 @ Nov 30 2006, 13:32) *

Проверьте частоту кварца в пропертях проекта и частоту в пропертях J-Link-а (всё это в CW понятно).

Эээ.... попдборобней пожалуйста а то чегой-то я не понял. Где пропертях jlink в crossworks указывается частота (кварца насколько я понимаю) и где она собственно в проекте(нафига интересно?)??


Для J-Link-a частотта связи в килогерцах
1. Меню Target->Targets
2. Выбираем J-Link и в его пропертях Speed


Ну а в проекте project->properties -> закладка Target -> loader parameter.
Этот параметр передаётся лоадеру.
Для LPC там частота кварца в герцах, используется лоадером для передачи в вызовы IAP (In Application Programming), у Вас (в sam7) похоже не используется?
SpiritDance
Для j-linka стоит 4000 и j-flash с такой частотой прилично пашет, с.м. первый пост.
Что касается loaderparameter то пусто там, может в этом причина. посмотрю на crossloader. помучаю его, может что и выйдет. а что там для филипса торчит? просто число или еще какие кракозябры?
Alex03
Цитата(SpiritDance @ Nov 30 2006, 17:01) *
Для j-linka стоит 4000 и j-flash с такой частотой прилично пашет, с.м. первый пост.


А Вы попробуйте 1000 поставить, у меня 1.6 чёта после 2000 загибается.

Цитата
Что касается loaderparameter то пусто там, может в этом причина. посмотрю на crossloader. помучаю его, может что и выйдет. а что там для филипса торчит? просто число или еще какие кракозябры?


Видимо для sam7 оно не надо.
Вот что в его лоадере написано:
Код
static int
loader_set_param(unsigned int parameter, unsigned int value)
{
  /* ignored this loader assumes the startup script has
    confgured the PLL to run at 47.9232MHz */
  return 1;
}
SpiritDance
Что-то пока не получается с jlink/ Буду думать еще.

В догонку еще один вопрос почему в 1.6 линкер не видит reset-handler из стартапа как entry point, хотя в 1.5 все было в норме? сам стартап я при переходе при этом не менял, он у меня в папке с прогой лежит.
Alex03
Цитата(SpiritDance @ Dec 1 2006, 12:48) *
Что-то пока не получается с jlink/ Буду думать еще.

В догонку еще один вопрос почему в 1.6 линкер не видит reset-handler из стартапа как entry point, хотя в 1.5 все было в норме? сам стартап я при переходе при этом не менял, он у меня в папке с прогой лежит.


В стартапе 1.6 есть
Код
  .global reset_handler


Я хоть стартап и копирую к себе в проект, но при переходе заменяю старый на новый, с соответствующими изменениями, которые у меня заключается в одной строчке:
Код
#include "hw.h"


Ну и этот hw.h меняю по необходимости, это чтобы не в опциях проекта прописывать всякие дефайны для стартапа а в *.h файле.
SpiritDance
Дак я тоже кроссворкскавский продефайнил, но только то что касается железа да и какой нибудь .global ведь в h-файл не засунешь.

А то проблема то вот в чем была поменял я значит энтри поинт на main и вроде все работало пока я не попробывал выкинуть лишний код из проекта, т.е. добавить опции
Цитата
компилер
-ffunction-sections
линкер
--gc-sections

ну и, похоже, все что было до main выкинулось. smile.gif Кстати если не пробывали скомпилить с этими опциями побробуйте если не влом - интересно заработает сгенерированный таким образом код или нет. У меня сейчас под рукой 1.6 нет.
Alex03
Цитата(SpiritDance @ Dec 1 2006, 14:28) *
Дак я тоже кроссворкскавский продефайнил, но только то что касается железа да и какой нибудь .global ведь в h-файл не засунешь.

А то проблема то вот в чем была поменял я значит энтри поинт на main и вроде все работало пока я не попробывал выкинуть лишний код из проекта, т.е. добавить опции
Цитата

компилер
-ffunction-sections
линкер
--gc-sections

ну и, похоже, все что было до main выкинулось. smile.gif Кстати если не пробывали скомпилить с этими опциями побробуйте если не влом - интересно заработает сгенерированный таким образом код или нет. У меня сейчас под рукой 1.6 нет.


Ничё я не понял.
До мэйна спартап и crt, какой смысел их выкидывать?
И чё после этого в проекте осталось?
Ни векторов ресета/прерывания/абортов и т.д.
Ни инициализции стека, глобальных переменных в RAM, регистров проца.
Ни вызовов конструкторов глобальных объектов для C++.
SpiritDance
Обычно линкер gcc поступает как хомяк - захомячивает в прошивку весь код который накомпилирует компилятор - это уже проверено и проверить это легко. С этими опциями он должен вести себя как нормальный, то есть компоновать только реально исполняющийся код - вот это-то и нужно проверить.

У меня при проверке в качетсве entrypoint бал main - стратап оказался "нигде не используемым" и был вышвырнут. Когда entry point - reset а не main, то линкер стартап выкинуть не должен.
Alex03
Цитата(SpiritDance @ Dec 1 2006, 15:49) *
Обычно линкер gcc поступает как хомяк - захомячивает в прошивку весь код который накомпилирует компилятор - это уже проверено и проверить это легко. С этими опциями он должен вести себя как нормальный, то есть компоновать только реально исполняющийся код - вот это-то и нужно проверить.


Экспериментировать некогда, но насколько я понимаю для "обычного" случая неделимой единицей считается объектник. Статические либы есть набор объектников. И именно поэтому исходники многих стандартных либ зачастую содержат по одной функции на файл. Линкер же включает только используемые объектники.
SpiritDance
Блин не получилось с .global, ошибка линкера все таже: can,t find entrypoint reset_handler. что за ботва...
Вопрос такой. Откуда нормальные люди берут crossworks? Я скачал прямо с их сайта версию для вин. Однако вспомнил что в архиве с 1.6 3 в папке Targets нет никаких подпапок кроме loader, соответственно все стартапы и map-файлы брал от 1.5. Если у кого-то другая ситуация, просьба кинуть сюда подпапку для sam7. а еще желательно для lpc2103, ну или просто рассказать где надыбать архив со всеми нужными файлами.
SpiritDance
Аааа. То есть теперь все по отдельности. Приятно.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.