Перейти к содержанию
    

Нет, конечно.

Нет - нельзя пользоваться теперь, нельзя было пользоваться раньше, неправильно задавать начало-конец памяти напрямую в startup.s?

Нет, конечно.

Нет - это не связано с переходами между thumb и arm?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Гость MALLOY2
По поводу первого бага - не скажу, визардами никогда не пользуюсь - своих ошибок, если надо, сделаю

 

я тоже не пользуюсь, но так как линкер порубали и править теперь там толком нечего, решил визарт попробывать и вот грабли :).

 

Еще блин потратил 2 дня что бы прилинковать 3 бинарных файла к проэкту, раскажу мож кому пригодится :). В версии 4.х в линк файле можно было задать такую строку

--image_input= "Путь к файлу", SYMBOL, SEGMENT

Сейчас такую фичу естесно не принимает, выход вставлять эту строку в

Project -> Options -> Linker -> Extra Option, снимаем галочку и вставляем подобные команды.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

но так как линкер порубали и править теперь там толком нечего

Ну Вы не правы - линкер вполне управляем и синтаксис приятнее (правда кое-что из документированного у меня не сработало :( ) и не хуже прежднего, ну разве только некоторые, в общем-то несвойственные линкеру функциии, теперь binutils и другие приблуды выполняют.

 

 

Сейчас такую фичу естесно не принимает, выход вставлять эту строку в

Project -> Options -> Linker -> Extra Option, снимаем галочку и вставляем подобные команды.

ну и куда их wizard дальше вставляет? :) - в тот-же скрипт. Ну а вообще правильнее пользовать абсолютно переносимый вариант с конвертацией в массив с последующей компиляцией и линковкой в нужное место.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Гость MALLOY2
ну и куда их wizard дальше вставляет? - в тот-же скрипт.

нет он передает командной строкой :) сам скрип не подерживает такой фичи, хотя должна быть команда INCBIN помоему так кличется но м мануале гдето читал что она не потдержана.

 

Ну а вообще правильнее пользовать абсолютно переносимый вариант с конвертацией в массив с последующей компиляцией и линковкой в нужное место.

 

да както файлы прошивок FPGA и DSP не красиво выглядят в массивах учитывая их размер :) да и время забирает это преобразование....

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

да както файлы прошивок FPGA и DSP не красиво выглядят в массивах учитывая их размер :) да и время забирает это преобразование....

Ну время это ерунда. А я вообще такие вещи просто приклеиваются в конец при заливке и если их несколько разыскиваются по сигнатуре.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Подскажите, как в IAR узнать время работы участка кода? В машинных циклах или тактах синхронизации. Не могу найти и всё. Туплю, что ли. У меня EWARM 5.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Подскажите, как в IAR узнать время работы участка кода? В машинных циклах или тактах синхронизации. Не могу найти и всё. Туплю, что ли. У меня EWARM 5.

В Keil это есть в EWA никогда не видел.

 

Сейчас такую фичу естесно не принимает, выход вставлять эту строку в

Project -> Options -> Linker -> Extra Option, снимаем галочку и вставляем подобные команды.

У меня Linker выругался, когда я ввел туда некорректные значения

-Z(CODE)...

-Z(DATA)...

Позже я разобрался с этим вопросом.

Но по ходу дела нашел файлы с расширением .icf (подключаюся на основной странице конфигурации Linker) и там путем тупого редактирования все делается попроще, на мой взляд.

В примерах к 5.10 есть образцы, на что ссылается и Migration Guide.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Гость MALLOY2
Подскажите, как в IAR узнать время работы участка кода? В машинных циклах или тактах синхронизации. Не могу найти и всё. Туплю, что ли. У меня EWARM 5.

В иар в дебагере есть профайлер, view -> profiling, но в его точности у меня есть сомнения, а если еще им пользоваться не в симуляторе, а через jtag, так это вобще извращение.

 

Лучший способ это таймером, к примеру так

unsigned int start, stop, overhead;
start = start_timer(); /* измерение времени запуска*/
stop = stop_timer();  /* таймера */
overhead = stop − start;
start = start_timer();
//вызов функции для которой делается измерение
stop = stop_timer();
printf(”cycles: %ld\n”,(unsigned long)(stop − start – overhead));

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Гость MALLOY2

По поводу стартовой метки __iar_program_start эта фича отключается из среды

linker -> library-> override default programm entry, дальше можно свою создать или сказать что бы как в приложеннии было.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

По поводу стартовой метки __iar_program_start эта фича отключается из среды

Да это ясно, что линкеру указывается любая. Для чего поменяли не понятно :) а почему при экспорте старого проекта старый default не используют еще более не понятно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо за помощь. Но я тоже нашел. В симуляторе, Registers - CPU Registers - CYCLECOUNTER.

 

Зато теперь другая фигня. Софт отлажен, шъётся нормально - не работает. Т.е. в симуляторе всё нормально, в железе никак. Микроконтроллер LPC2214. Может было подобное? Я подозреваю компоновщик, но как проверить? Зашиваю через последовательный порт.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Софт отлажен, шъётся нормально - не работает.
P0.14 куда подтянут?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Гость MALLOY2
Спасибо за помощь. Но я тоже нашел. В симуляторе, Registers - CPU Registers - CYCLECOUNTER.

 

Только нестоит забывать что этот "CYCLECOUNTER" на самом деле "COMANDCOUNTER" то есть счетчик команд, и с циклами (точнее с временем выполнения никак не связан), а это значит что толку от него никакого.

 

Я подозреваю компоновщик, но как проверить?

 

Если не вериш своим глазам, точнее тому что написал в линкере, тогда включи генерацию map файла и посмотрю что где лежит.

 

 

 

(starmos @ Sep 5 2007, 15:11)

Софт отлажен, шъётся нормально - не работает.

P0.14 куда подтянут?

 

еще добавлю, по адресу 0x0000 0014 правельная контрольная сумма стоит ?

 

P.S. может я что путаю и в 22хх уже нету этой заморочки.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

P0.14 подтянут куда надо :) Я уже проверил.

Контрольная сумма правильная, считал из памяти и проверил.

Интересную вещь обнаружил, но ещё не осмыслил. Программа запускается из утилиты LPC 2000 Flash Utility, там есть Flash Buffer, а там кнопка Run from Address. Так вот этой кнопкой запускается, а сбросом нет.

 

 

PS. CYCLECOUNTER - счётчик циклов именно. Значения совпадают с view -> profiling.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...