Портал для радиолюбителей и разработчиков электроники · с 2003 годаРеклама на сайте
Найти компонент, схему или даташит

Даташиты, справочник отечественных приборов, схемы с разбором и живой форум


 
Опции темы

IAR Embedded Workbench

Непрочитано 19.11.2013, 01:11  
ut1wpr
Почётный гражданин KAZUS.RUN
 
Аватар для ut1wpr
 
Регистрация: 19.08.2006
Адрес: Львов
Сообщений: 1,613
Сказал спасибо: 65
Сказали Спасибо 315 раз(а) в 264 сообщении(ях)
ut1wpr на пути к лучшему
По умолчанию Re: IAR Embedded Workbench

Сообщение от oleg110592 Посмотреть сообщение
отладка - можно и в иаре - Ctrl+D

Tools--›Options...
При установке ALL подвал начнет заливать. Весь ход сборки сливается. Лучше установить сокращенный "messages", разрешить генерацию .map и смотреть в конец этого файла.
Реклама:
__________________
С уважением,
Vic / ut1wpr

Последний раз редактировалось ut1wpr; 19.11.2013 в 01:13.
ut1wpr вне форума  
Непрочитано 19.11.2013, 01:12  
ut1wpr
Почётный гражданин KAZUS.RUN
 
Аватар для ut1wpr
 
Регистрация: 19.08.2006
Адрес: Львов
Сообщений: 1,613
Сказал спасибо: 65
Сказали Спасибо 315 раз(а) в 264 сообщении(ях)
ut1wpr на пути к лучшему
По умолчанию Re: IAR Embedded Workbench

Сообщение от SasaVitebsk Посмотреть сообщение
Такой же подход и у многих других компиляторов.
Но только не в microe
__________________
С уважением,
Vic / ut1wpr
ut1wpr вне форума  
Непрочитано 19.11.2013, 02:10  
tempora
Почётный гражданин KAZUS.RUN
 
Регистрация: 10.01.2007
Сообщений: 3,411
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
tempora на пути к лучшему
По умолчанию Re: IAR Embedded Workbench

Сообщение от Prime Посмотреть сообщение
как же заставить IAR работать с 64-битным временем?
Определить _DLIB_TIME_USES_64 перед включением time.h
__________________
There's always more than one way to skin a cat.
tempora вне форума  
Непрочитано 19.11.2013, 07:49  
Prime
Прописка
 
Регистрация: 11.06.2005
Сообщений: 259
Сказал спасибо: 9
Сказали Спасибо 13 раз(а) в 12 сообщении(ях)
Prime на пути к лучшему
По умолчанию Re: IAR Embedded Workbench

Сообщение от tempora Посмотреть сообщение
Определить _DLIB_TIME_USES_64 перед включением time.h
Определил следующим образом:
Код:
#define _DLIB_TIME_USES_64    1
При компиляции ругается на то, что не определен тип __time64_t.
Посмотрел файл time.h, увидел:

Код:
#if _DLIB_TIME_ALLOW_64
  typedef signed long long __time64_t;
#endif /* _DLIB_TIME_ALLOW_64 */
Дополнительно определил:
Код:
#define _DLIB_TIME_ALLOW_64    1
После этого компилятор стал писать:
Fatal Error[Pe035]: #error directive: ("_DLIB_TIME_ALLOW_64 requires _LONGLONG") C:\Program Files\IAR Systems\Embedded Workbench 6.0\avr\inc\dlib\c\DLib_Defaults.h 967

Посмотрел DLib_Defaults.h:
Код:
#if _DLIB_TIME_ALLOW_64 && !defined(_LONGLONG)
  #error("_DLIB_TIME_ALLOW_64 requires _LONGLONG")
#endif
Определил _LONGLONG:
Код:
#define _LONGLONG
В итоге перед time.h уже три дефайна:
Код:
#define _LONGLONG
#define _DLIB_TIME_USES_64			1
#define _DLIB_TIME_ALLOW_64			1
Как итог - линкер не видит функции __difftime64, __gmtime64, __mktime64, пример ошибки:

Error[e46]: Undefined external "__difftime64" referred in main.

Далее копаться устал... Не соображу, в чём дело?
Весь прикол ситуации в том, что в Compiler Reference указано то же самое:
By default, the library and the header redirect time_t, time etc. to the 32-bit variants. However, to explicitly redirect them to their 64-bit variants, define _DLIB_TIME_USES_64 in front of the inclusion of time.h or ctime.

И нигде в интернете ссылок на подобную ситуацию, будто никто не использовал 64-битное время.

PS: Пишу на Си (не Си++), подключаю Full DLIB.
__________________
Канал в Telegram об МК AVR @EasyAVR

Последний раз редактировалось Prime; 19.11.2013 в 08:08.
Prime вне форума  
Непрочитано 19.11.2013, 09:19  
ut1wpr
Почётный гражданин KAZUS.RUN
 
Аватар для ut1wpr
 
Регистрация: 19.08.2006
Адрес: Львов
Сообщений: 1,613
Сказал спасибо: 65
Сказали Спасибо 315 раз(а) в 264 сообщении(ях)
ut1wpr на пути к лучшему
По умолчанию Re: IAR Embedded Workbench

Сообщение от Prime Посмотреть сообщение
Код:
#if _DLIB_TIME_ALLOW_64
  typedef signed long long __time64_t;
#endif /* _DLIB_TIME_ALLOW_64 */
Что-то там обсуждали. Но надо покопаться глубже...
http://wasm.ru/forum/viewtopic.php?id=37423
__________________
С уважением,
Vic / ut1wpr
ut1wpr вне форума  
Непрочитано 19.11.2013, 10:41  
oleg110592
Гражданин KAZUS.RUN
 
Регистрация: 05.04.2009
Сообщений: 973
Сказал спасибо: 35
Сказали Спасибо 154 раз(а) в 133 сообщении(ях)
oleg110592 на пути к лучшему
По умолчанию Re: IAR Embedded Workbench

Сообщение от ut1wpr Посмотреть сообщение
разрешить генерацию .map и смотреть в конец этого файла
можно автоматизировать:
http://megajohn.embedders.org/mjproj...ze&hide_menu=1
не пользовался - messages All мне удобнее
oleg110592 вне форума  
Непрочитано 19.11.2013, 11:12  
vit66work
Прописка
 
Регистрация: 27.05.2009
Сообщений: 180
Сказал спасибо: 252
Сказали Спасибо 113 раз(а) в 42 сообщении(ях)
vit66work на пути к лучшему
По умолчанию Re: IAR Embedded Workbench

Сообщение от Prime Посмотреть сообщение
В итоге перед time.h уже три дефайна:
Код:
#define _LONGLONG
#define _DLIB_TIME_USES_64 1
#define _DLIB_TIME_ALLOW_64 1
Как итог - линкер не видит функции __difftime64, __gmtime64, __mktime64, пример ошибки:

LONGLONG - это тип данных, 64 бита, а вы его определили как "пустой", если только я
не путаюсь с символом подчёркивания
vit66work вне форума  
Непрочитано 19.11.2013, 15:36  
tempora
Почётный гражданин KAZUS.RUN
 
Регистрация: 10.01.2007
Сообщений: 3,411
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
tempora на пути к лучшему
По умолчанию Re: IAR Embedded Workbench

Сообщение от Prime Посмотреть сообщение
В итоге перед time.h уже три дефайна... Далее копаться устал... Не соображу, в чём дело?
Что-то вы, по-моему, не в ту сторону копаете. Проверьте опции проекта, проверьте ключи, с которыми запускается компилятор. Может у вас проект под CLIB заточен, или модель памяти выбрана маленькая...
__________________
There's always more than one way to skin a cat.
tempora вне форума  
Непрочитано 19.11.2013, 15:56  
Prime
Прописка
 
Регистрация: 11.06.2005
Сообщений: 259
Сказал спасибо: 9
Сказали Спасибо 13 раз(а) в 12 сообщении(ях)
Prime на пути к лучшему
По умолчанию Re: IAR Embedded Workbench

Сообщение от tempora Посмотреть сообщение
Что-то вы, по-моему, не в ту сторону копаете. Проверьте опции проекта, проверьте ключи, с которыми запускается компилятор. Может у вас проект под CLIB заточен, или модель памяти выбрана маленькая...
Может, может, может...
1) Что значит - проверьте ключи? а какие они должны быть для моей задачи, не подскажете?
2) Заточен под CLIB - это как понимать?
3) Модель памяти выбрана самая максимальная (Small)
__________________
Канал в Telegram об МК AVR @EasyAVR
Prime вне форума  
Непрочитано 19.11.2013, 16:42  
tempora
Почётный гражданин KAZUS.RUN
 
Регистрация: 10.01.2007
Сообщений: 3,411
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
tempora на пути к лучшему
По умолчанию Re: IAR Embedded Workbench

Prime, я про то, что компилятор может быть запускается с ключём "--clib"
__________________
There's always more than one way to skin a cat.
tempora вне форума  
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подниму тему WinAVR vs IAR oleg110592 Микроконтроллеры, АЦП, память и т.д 5 24.10.2015 14:06


Часовой пояс GMT +4, время: 08:33.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.