|
EWARM 5.10 |
|
|
|
 |
Ответов
(75 - 89)
|
Aug 31 2007, 09:55
|
Местный
  
Группа: Свой
Сообщений: 211
Регистрация: 9-11-06
Пользователь №: 22 136

|
Цитата(zltigo @ Aug 31 2007, 12:04)  Нет, конечно. Нет - нельзя пользоваться теперь, нельзя было пользоваться раньше, неправильно задавать начало-конец памяти напрямую в startup.s? Цитата Нет, конечно. Нет - это не связано с переходами между thumb и arm?
|
|
|
|
|
Aug 31 2007, 10:05
|
Знающий
   
Группа: Validating
Сообщений: 838
Регистрация: 31-01-05
Пользователь №: 2 317

|
Цитата По поводу первого бага - не скажу, визардами никогда не пользуюсь - своих ошибок, если надо, сделаю я тоже не пользуюсь, но так как линкер порубали и править теперь там толком нечего, решил визарт попробывать и вот грабли  . Еще блин потратил 2 дня что бы прилинковать 3 бинарных файла к проэкту, раскажу мож кому пригодится  . В версии 4.х в линк файле можно было задать такую строку Код --image_input= "Путь к файлу", SYMBOL, SEGMENT Сейчас такую фичу естесно не принимает, выход вставлять эту строку в Project -> Options -> Linker -> Extra Option, снимаем галочку и вставляем подобные команды.
|
|
|
|
|
Aug 31 2007, 10:19
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(MALLOY2 @ Aug 31 2007, 13:05)  но так как линкер порубали и править теперь там толком нечего Ну Вы не правы - линкер вполне управляем и синтаксис приятнее (правда кое-что из документированного у меня не сработало  ) и не хуже прежднего, ну разве только некоторые, в общем-то несвойственные линкеру функциии, теперь binutils и другие приблуды выполняют. Цитата Сейчас такую фичу естесно не принимает, выход вставлять эту строку в Project -> Options -> Linker -> Extra Option, снимаем галочку и вставляем подобные команды. ну и куда их wizard дальше вставляет?  - в тот-же скрипт. Ну а вообще правильнее пользовать абсолютно переносимый вариант с конвертацией в массив с последующей компиляцией и линковкой в нужное место.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Aug 31 2007, 10:56
|
Знающий
   
Группа: Validating
Сообщений: 838
Регистрация: 31-01-05
Пользователь №: 2 317

|
Цитата ну и куда их wizard дальше вставляет? - в тот-же скрипт. нет он передает командной строкой  сам скрип не подерживает такой фичи, хотя должна быть команда INCBIN помоему так кличется но м мануале гдето читал что она не потдержана. Цитата Ну а вообще правильнее пользовать абсолютно переносимый вариант с конвертацией в массив с последующей компиляцией и линковкой в нужное место. да както файлы прошивок FPGA и DSP не красиво выглядят в массивах учитывая их размер  да и время забирает это преобразование....
|
|
|
|
|
Sep 3 2007, 06:05
|
Бывалый
    
Группа: Свой
Сообщений: 1 584
Регистрация: 7-08-07
Пользователь №: 29 615

|
Цитата(starmos @ Sep 1 2007, 13:07)  Подскажите, как в IAR узнать время работы участка кода? В машинных циклах или тактах синхронизации. Не могу найти и всё. Туплю, что ли. У меня EWARM 5. В Keil это есть в EWA никогда не видел. Цитата(MALLOY2 @ Aug 31 2007, 14:05)  Сейчас такую фичу естесно не принимает, выход вставлять эту строку в Project -> Options -> Linker -> Extra Option, снимаем галочку и вставляем подобные команды. У меня Linker выругался, когда я ввел туда некорректные значения -Z(CODE)... -Z(DATA)... Позже я разобрался с этим вопросом. Но по ходу дела нашел файлы с расширением .icf (подключаюся на основной странице конфигурации Linker) и там путем тупого редактирования все делается попроще, на мой взляд. В примерах к 5.10 есть образцы, на что ссылается и Migration Guide.
|
|
|
|
|
Sep 3 2007, 07:54
|
Знающий
   
Группа: Validating
Сообщений: 838
Регистрация: 31-01-05
Пользователь №: 2 317

|
Цитата Подскажите, как в 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));
|
|
|
|
|
Sep 5 2007, 20:27
|
Знающий
   
Группа: Validating
Сообщений: 838
Регистрация: 31-01-05
Пользователь №: 2 317

|
Цитата Спасибо за помощь. Но я тоже нашел. В симуляторе, Registers - CPU Registers - CYCLECOUNTER. Только нестоит забывать что этот "CYCLECOUNTER" на самом деле "COMANDCOUNTER" то есть счетчик команд, и с циклами (точнее с временем выполнения никак не связан), а это значит что толку от него никакого. Цитата Я подозреваю компоновщик, но как проверить? Если не вериш своим глазам, точнее тому что написал в линкере, тогда включи генерацию map файла и посмотрю что где лежит. Цитата Цитата (starmos @ Sep 5 2007, 15:11) Софт отлажен, шъётся нормально - не работает. P0.14 куда подтянут? еще добавлю, по адресу 0x0000 0014 правельная контрольная сумма стоит ? P.S. может я что путаю и в 22хх уже нету этой заморочки.
|
|
|
|
|
Sep 6 2007, 03:50
|
Частый гость
 
Группа: Свой
Сообщений: 174
Регистрация: 4-10-04
Из: Челябинск
Пользователь №: 769

|
P0.14 подтянут куда надо  Я уже проверил. Контрольная сумма правильная, считал из памяти и проверил. Интересную вещь обнаружил, но ещё не осмыслил. Программа запускается из утилиты LPC 2000 Flash Utility, там есть Flash Buffer, а там кнопка Run from Address. Так вот этой кнопкой запускается, а сбросом нет. PS. CYCLECOUNTER - счётчик циклов именно. Значения совпадают с view -> profiling.
|
|
|
|
|
  |
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|