Jump to content

    

Pavel V.

Свой
  • Content Count

    211
  • Joined

  • Last visited

Community Reputation

0 Обычный

About Pavel V.

  • Rank
    Местный

Контакты

  • Сайт
    Array
  • ICQ
    Array

Recent Profile Visitors

2940 profile views
  1. А какое значение находится в настройках проекта C/C++ Build -> Build directory Makefile свой, или генерится эклипсом?
  2. Имеются в виду файлы в корневой директории проекта? Вы бы привели структуру файлов, которую пытаетесь скомпилировать, а то так не понятно. У меня вроде никогда таких проблем не возникало, поведение эклипса было полностью ожидаемым. В качестве профилактики могу посоветовать поиграться с пунктами меню Index (правая кнопка на проекте -> Index -> Rebuild, Update, Freshen).
  3. "Справка" является отдельным продуктом и называется MSDN. Можно установить локально, можно найти в интернете. Я предпочитаю пользоваться онлайн через сайт майкрософта. Если программа пишется с использованием .NET, то ИМХО, следует писать на c#, он специально заточен под это дело. C++ с поддержкой Framework задумывался майкрософтом просто как мостик между "старым" (не CLR) кодом и "новым" (CLR), а не как самостоятельное средство разработки.
  4. Интересует еще вот какой вопрос - какой величиной ограничен размер одного скрипта, загруженного в модуль? В официальной документации я этой цифры не нашел - означает ли это, что размер ограничен только доступной памятью?
  5. Не знаю, будет ли полезна эта информация, но я много работал с модулями GL868 из разных поставок - описанной проблемы ни разу не наблюдал.
  6. Вроде бы поборол проблему. Оказалось, скрипт компилировался другой версией питона (помимо штатного набора софта от Telit в системе был установлен официальный релиз Python 2.7). Какой командой компилируются скрипты при вызове пункта Compile из контекстного меню?
  7. Я использую Visual Paradigm for UML, лучше инструмента не встречал. Есть Community Edition для некоммерческого использования, бесплатная. Для коммерческого применения можно и приобрести - стоит копейки.
  8. В одном своем устройстве я использовал общий источник питания для модуля SIM900 и процессора (с обвязкой) на 3,5 В (на LM2576). Вроде бы проблем не было, в том числе при передаче данных. Уровни сигнальных линий, естественно, были согласованы. Почему-то не увидел в теме упоминаний такого варианта схемы питания, может быть это в корне неправильно и чревато какими-то проблемами?
  9. Дабы не плодить темы, спрошу здесь. Начал разбираться со встроенным интерпретатором Python на модулях Telit GL868. Вроде бы, путем какого-то шаманства, что-то стало получаться, но... Проблемы есть следующие: 1. Если заливать в модуль "не скомпилированную" версию скрипта, все работает как надо, но стартует при этом с задержкой больше минуты (скриптик на 3 кб, одним файлом). 2. Если же заливать "скомпилированную" версию, то скрипт вообще не запускается. Точнее, один раз у меня получилось сделать так, чтобы он запускался (и при этом не было задержки исполнения), но повторить больше не удается. Хотелось бы услышать мнение представителя фирмы - стоит ли вообще связываться с этой возможностью? Первое впечатление возникло не самое приятное... Вроде бы и руки не самые кривые, но стабильной работы добиться пока так и не удалось.
  10. Он самый! :) Здорово, такой вариант мне больше нравится :) Попробую использовать.
  11. 1. Вы отключаете отладчик от компа, или отладчик от платы? Если отключить отладчик от платы и перезапустить ее - так работает? Вы уверены, что код заливается во флеш, а не RAM? 2. Точно не помню, но в IARе была в опциях проекта вкладка типа "Дополнительный формат выходного файла", и там надо выбрать Intel HEX. 3. Keil и JLink отлично дружат, дело только в настройках. Версия Keil-а уже перевалила за 4, надо обновиться.
  12. Спасибо за идею! В итоге так и сделал, только использовал анонимный параметр, что избавило от необходимости в вызове писать условие pin < 16. Специализацию шаблона нельзя выполнять внутри класса, поэтому вынес наружу. namespace IO { template<uint32_t pin, bool = (pin < 16)> struct ConfigurationMask { static inline uint32_t Clear() { return ~(0x03UL << (pin * 2)); } static inline uint32_t SelSet(Configuration configuration) { return (((uint32_t)configuration >> 4) & 0x03UL) << (pin * 2); } static inline uint32_t ModeSet(Configuration configuration) { return (((uint32_t)configuration >> 2) & 0x03UL) << (pin * 2); } }; template<uint32_t pin> struct ConfigurationMask<pin, false> { static inline uint32_t Clear() { return ~(0x03UL << ((pin - 16) * 2)); } static inline uint32_t SelSet(Configuration configuration) { return (((uint32_t)configuration >> 4) & 0x03UL) << ((pin - 16) * 2); } static inline uint32_t ModeSet(Configuration configuration) { return (((uint32_t)configuration >> 2) & 0x03UL) << ((pin - 16) * 2); } }; template<Port port, uint32_t pin, ActiveState activestate> class Pin { static_assert((pin < 32), "Pin number must be <= 31"); public: /* * Set Configuration */ static void SetConfiguration(Configuration configuration) { ... SEL0 &= ConfigurationMask<pin>::Clear(); SEL0 |= ConfigurationMask<pin>::SelSet(configuration); MODE0 &= ConfigurationMask<pin>::Clear(); MODE0 |= ConfigurationMask<pin>::ModeSet(configuration); ... } }; }
  13. Компилирую следующий код: template<uint32_t pin> class Pin { public: void Test() { if(pin < 16) { 1: g_test &= ~(0x03UL << (pin * 2)); } else { g_test &= ~(0x03UL << ((pin - 16) * 2)); } } }; int main() { Pin<22> test; test.Test(); } На строчку 1 компилятор ругается: source/main.cpp: In member function 'void Pin<pin>::Test() [with long unsigned int pin = 22ul]': source/main.cpp:30:12: instantiated from here source/main.cpp:18:4: warning: left shift count >= width of type [enabled by default] Код компилируется и работает правильно. Оптимизатор, естественно, выкидывает ненужный код, т.к. pin константа (что видно по листингу). Как убрать это сообщение?
  14. Кстати, заметил еще одну особенность - при уровне оптимизации -O0 проблема сохраняется, тянутся системные вызовы. Начиная с -O1 перестают.
  15. neiver Спасибо за ссылки, буду изучать :) По коду не сразу получается воткнуть, надо будет для себя диаграммки нарисовать для наглядности. У меня GPIO в проектах в основном для "медленных" операций используются, типа управления питанием внешних модулей, поэтому накладными расходами на вызов функций работы с портами особо не заморачивался. Зато очень удобно передавать куда угодно по ссылке. Будьте добры мне тоже на почту реализацию для LPC17хх, как раз сейчас с этим процессором работаю (павел AT posten.ru).