Kitsok 0 31 августа, 2007 Опубликовано 31 августа, 2007 · Жалоба Нет, конечно. Нет - нельзя пользоваться теперь, нельзя было пользоваться раньше, неправильно задавать начало-конец памяти напрямую в startup.s? Нет, конечно. Нет - это не связано с переходами между thumb и arm? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Гость MALLOY2 31 августа, 2007 Опубликовано 31 августа, 2007 · Жалоба По поводу первого бага - не скажу, визардами никогда не пользуюсь - своих ошибок, если надо, сделаю я тоже не пользуюсь, но так как линкер порубали и править теперь там толком нечего, решил визарт попробывать и вот грабли :). Еще блин потратил 2 дня что бы прилинковать 3 бинарных файла к проэкту, раскажу мож кому пригодится :). В версии 4.х в линк файле можно было задать такую строку --image_input= "Путь к файлу", SYMBOL, SEGMENT Сейчас такую фичу естесно не принимает, выход вставлять эту строку в Project -> Options -> Linker -> Extra Option, снимаем галочку и вставляем подобные команды. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zltigo 2 31 августа, 2007 Опубликовано 31 августа, 2007 · Жалоба но так как линкер порубали и править теперь там толком нечего Ну Вы не правы - линкер вполне управляем и синтаксис приятнее (правда кое-что из документированного у меня не сработало :( ) и не хуже прежднего, ну разве только некоторые, в общем-то несвойственные линкеру функциии, теперь binutils и другие приблуды выполняют. Сейчас такую фичу естесно не принимает, выход вставлять эту строку в Project -> Options -> Linker -> Extra Option, снимаем галочку и вставляем подобные команды. ну и куда их wizard дальше вставляет? :) - в тот-же скрипт. Ну а вообще правильнее пользовать абсолютно переносимый вариант с конвертацией в массив с последующей компиляцией и линковкой в нужное место. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Гость MALLOY2 31 августа, 2007 Опубликовано 31 августа, 2007 · Жалоба ну и куда их wizard дальше вставляет? - в тот-же скрипт. нет он передает командной строкой :) сам скрип не подерживает такой фичи, хотя должна быть команда INCBIN помоему так кличется но м мануале гдето читал что она не потдержана. Ну а вообще правильнее пользовать абсолютно переносимый вариант с конвертацией в массив с последующей компиляцией и линковкой в нужное место. да както файлы прошивок FPGA и DSP не красиво выглядят в массивах учитывая их размер :) да и время забирает это преобразование.... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zltigo 2 31 августа, 2007 Опубликовано 31 августа, 2007 · Жалоба да както файлы прошивок FPGA и DSP не красиво выглядят в массивах учитывая их размер :) да и время забирает это преобразование.... Ну время это ерунда. А я вообще такие вещи просто приклеиваются в конец при заливке и если их несколько разыскиваются по сигнатуре. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Гость MALLOY2 31 августа, 2007 Опубликовано 31 августа, 2007 · Жалоба --image_input это и делает :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
starmos 2 1 сентября, 2007 Опубликовано 1 сентября, 2007 · Жалоба Подскажите, как в IAR узнать время работы участка кода? В машинных циклах или тактах синхронизации. Не могу найти и всё. Туплю, что ли. У меня EWARM 5. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alexander55 0 3 сентября, 2007 Опубликовано 3 сентября, 2007 · Жалоба Подскажите, как в IAR узнать время работы участка кода? В машинных циклах или тактах синхронизации. Не могу найти и всё. Туплю, что ли. У меня EWARM 5. В Keil это есть в EWA никогда не видел. Сейчас такую фичу естесно не принимает, выход вставлять эту строку в Project -> Options -> Linker -> Extra Option, снимаем галочку и вставляем подобные команды. У меня Linker выругался, когда я ввел туда некорректные значения -Z(CODE)... -Z(DATA)... Позже я разобрался с этим вопросом. Но по ходу дела нашел файлы с расширением .icf (подключаюся на основной странице конфигурации Linker) и там путем тупого редактирования все делается попроще, на мой взляд. В примерах к 5.10 есть образцы, на что ссылается и Migration Guide. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Гость MALLOY2 3 сентября, 2007 Опубликовано 3 сентября, 2007 · Жалоба Подскажите, как в 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 3 сентября, 2007 Опубликовано 3 сентября, 2007 · Жалоба По поводу стартовой метки __iar_program_start эта фича отключается из среды linker -> library-> override default programm entry, дальше можно свою создать или сказать что бы как в приложеннии было. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zltigo 2 3 сентября, 2007 Опубликовано 3 сентября, 2007 · Жалоба По поводу стартовой метки __iar_program_start эта фича отключается из среды Да это ясно, что линкеру указывается любая. Для чего поменяли не понятно :) а почему при экспорте старого проекта старый default не используют еще более не понятно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
starmos 2 5 сентября, 2007 Опубликовано 5 сентября, 2007 · Жалоба Спасибо за помощь. Но я тоже нашел. В симуляторе, Registers - CPU Registers - CYCLECOUNTER. Зато теперь другая фигня. Софт отлажен, шъётся нормально - не работает. Т.е. в симуляторе всё нормально, в железе никак. Микроконтроллер LPC2214. Может было подобное? Я подозреваю компоновщик, но как проверить? Зашиваю через последовательный порт. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 140 5 сентября, 2007 Опубликовано 5 сентября, 2007 · Жалоба Софт отлажен, шъётся нормально - не работает.P0.14 куда подтянут? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Гость MALLOY2 5 сентября, 2007 Опубликовано 5 сентября, 2007 · Жалоба Спасибо за помощь. Но я тоже нашел. В симуляторе, Registers - CPU Registers - CYCLECOUNTER. Только нестоит забывать что этот "CYCLECOUNTER" на самом деле "COMANDCOUNTER" то есть счетчик команд, и с циклами (точнее с временем выполнения никак не связан), а это значит что толку от него никакого. Я подозреваю компоновщик, но как проверить? Если не вериш своим глазам, точнее тому что написал в линкере, тогда включи генерацию map файла и посмотрю что где лежит. (starmos @ Sep 5 2007, 15:11) Софт отлажен, шъётся нормально - не работает. P0.14 куда подтянут? еще добавлю, по адресу 0x0000 0014 правельная контрольная сумма стоит ? P.S. может я что путаю и в 22хх уже нету этой заморочки. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
starmos 2 6 сентября, 2007 Опубликовано 6 сентября, 2007 · Жалоба P0.14 подтянут куда надо :) Я уже проверил. Контрольная сумма правильная, считал из памяти и проверил. Интересную вещь обнаружил, но ещё не осмыслил. Программа запускается из утилиты LPC 2000 Flash Utility, там есть Flash Buffer, а там кнопка Run from Address. Так вот этой кнопкой запускается, а сбросом нет. PS. CYCLECOUNTER - счётчик циклов именно. Значения совпадают с view -> profiling. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться