|
Выпущена scmRTOS 4.0., Ура, товарищи! :) |
|
|
|
 |
Ответов
|
Apr 9 2012, 19:00
|
Гуру
     
Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322

|
Цитата(Aprox @ Apr 9 2012, 21:32)  Или все по-старому, никаких nested ? А что по вашему раньше нельзя было? Код из примера v3 Код #define ENABLE_NESTED_INTERRUPTS() __enable_interrupt()
#pragma vector=TIMER1_COMPA_vect OS_INTERRUPT void Timer1_period_ISR() { OS::TISRW_SS ISRW;
ENABLE_NESTED_INTERRUPTS(); Timer1_Ovf.SignalISR(); }
|
|
|
|
|
Apr 10 2012, 09:02
|

Местный
  
Группа: Участник
Сообщений: 374
Регистрация: 7-11-07
Из: Moscow
Пользователь №: 32 131

|
Цитата(_Артём_ @ Apr 9 2012, 23:00)  А что по вашему раньше нельзя было? Наверное можно. Но при этом нельзя было размещать внутри ISR длительных операций которые блокировали бы работу OS и всей системы в целом. Теперь, с появлением nested контроллера прерываний в ISR можно размещать практически целые статические task( за исключением инициализации задачи) и не боятся блокировки всей системы. Такой прием особенно хорош еще и тем, что в STM32 периферия взаимодействует с памятью по DMA, поэтому нагрузка на систему по прерываниям резко ниже. Вот, я и спрашиваю - учтены ли эти новации периферии в новой версии scmRTOS? Цитата(Сергей Борщ @ Apr 10 2012, 00:53)  Во-первых все уже придумано до нас. эти типы являются частью стандарта C-99 (см. описание stdint.h) . Их вводили потому, что разрядность char, short, int, long, long long стандартом не определена. И еще для того, чтобы код без переписывания компилился максимально оптимально под любую платформу. Мне представляется, заботу об оптимальности использования памяти или скорости выполнения кода берет на себя компилятор C++. По крайней мере, в IAR это именно так. Пользователю знать, в какой размер битов упакована его переменная, как правило не обязательно. По делу, ему важно знать только пределы изменения переменной. А эта информация представлена в мануалах на любой компилятор, например там пишут : unsigned char 0 .. 255 signed char -128 .. +127 .... и т.д. Цитата А во-вторых писать unsigned long слишком длинно. Зато кросплатформенность соблюдается. Причем в мощных системах проектирования (Visual Studio), реализован умный редактор текстов, который подсказывает тип переменной и даже сам его вписывает.
|
|
|
|
|
Apr 10 2012, 10:13
|

Гуру
     
Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095

|
QUOTE (Aprox @ Apr 10 2012, 12:02)  Мне представляется, заботу об оптимальности использования памяти или скорости выполнения кода берет на себя компилятор C++. По крайней мере, в IAR это именно так. Пользователю знать, в какой размер битов упакована его переменная, как правило не обязательно. Никакой заботы компилятор предоставить не может . Вот укажете вы какой-нибудь переменной unsigned int чтобы было быстро на ARM, и компилятор будет вынужден использовать 2 байта на AVR, хотя может быть и достаточно одного. А укажете unsigned char - и компилятор для ARM будет вынужден после каждой арифметической операции обрезать 24 старших бита, ибо делать арифметику с байтами ядро делать не умеет. А укажете uint_fast8_t и все будут довольны. Чем плохо? QUOTE (Aprox @ Apr 10 2012, 12:02)  По делу, ему важно знать только пределы изменения переменной. А эта информация представлена в мануалах на любой компилятор То есть для каждой переменной мы должны просматривать мануалы на все компиляторы всех процессоров, под которые портирована ОС и искать тот тип, который удовлетворит нас для этой переменной на всех платформах/компиляторах? Но зачем, если специально для такого случая придуман stdint.h? И во многих случаях один стандартный тип не будет одинаково хорош на всех платформах, пример выше. QUOTE (Aprox @ Apr 10 2012, 12:02)  Зато кросплатформенность соблюдается. Причем в мощных системах проектирования (Visual Studio), реализован умный редактор текстов, который подсказывает тип переменной и даже сам его вписывает. Кроссплатформенность еще лучше соблюдается с типами из stdint.h. И с этими типами прекрасно себя чувствует умный редактор типа Eclipse. Если Студия спотыкется на стандартных заголовочных файлах - увы. Как же она тогда работает с остальными typedef, в том числе и пользовательскими?
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
|
Apr 10 2012, 19:47
|

Местный
  
Группа: Участник
Сообщений: 374
Регистрация: 7-11-07
Из: Moscow
Пользователь №: 32 131

|
Цитата(Сергей Борщ @ Apr 10 2012, 14:13)  Никакой заботы компилятор предоставить не может . Вот укажете вы какой-нибудь переменной unsigned int чтобы было быстро на ARM, и компилятор будет вынужден использовать 2 байта на AVR, хотя может быть и достаточно одного. А укажете unsigned char - и компилятор для ARM будет вынужден после каждой арифметической операции обрезать 24 старших бита, ибо делать арифметику с байтами ядро делать не умеет. А укажете uint_fast8_t и все будут довольны. Чем плохо? Видите-ли, я тупой юзер, и лишние заморочки мне совсем не нужны. Извините, но совершенно фиолетово, как и что будет "обрезать" компилятор, главное- чтобы результат вычислений был правильным. И если мне на входе сказали, что переменная типа unsigned char может хранить значения от -128 до +127, а перменная типа int значения в пределах от - 2147483648 lдо + 2147483647, то этого вполне достаточно, чтобы приступить писать конкретное приложение особо ничем не заморачиваясь . Цитата То есть для каждой переменной мы должны просматривать мануалы на все компиляторы всех процессоров, под которые портирована ОС и искать тот тип, который удовлетворит нас для этой переменной на всех платформах/компиляторах? Но зачем, если специально для такого случая придуман stdint.h? И во многих случаях один стандартный тип не будет одинаково хорош на всех платформах, пример выше. Я посмотрел на текст файла stdint.h в составе IAR 6.0. Увидел by options, т.е. никакой это не стандарт. Но заморочит голову прикладнику по-крупному. Вам, как авторам, это надо? К тому-же, принцип "одинаково хорошо" очень неубедителен, когда видишь сколь велик в ресурсах разброс предлагаемых микроконтроллеров. По-моему, все окучить "одинаково хорошо" никак невозможно. Цитата Кроссплатформенность еще лучше соблюдается с типами из stdint.h. И с этими типами прекрасно себя чувствует умный редактор типа Eclipse. Если Студия спотыкется на стандартных заголовочных файлах - увы. Как же она тогда работает с остальными typedef, в том числе и пользовательскими? "Студия" не спотыкается, она просто не знает ничего про разрядность типов данных. Но зато прекрасно выделяет стандартные ключевые слова: signed, long, void, double .. и т.д. Точно также IAR выделяет эти ключевые слова. А вот vu16_t, извините, не выделяет. Потому, что не стандарт ни С, ни С++. Стоит ли овчинка выделки?
|
|
|
|
|
Apr 11 2012, 05:48
|

Гуру
     
Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095

|
QUOTE (Aprox @ Apr 10 2012, 22:47)  Видите-ли, я тупой юзер, и лишние заморочки мне совсем не нужны. Извините, но совершенно фиолетово, как и что будет "обрезать" компилятор, главное- чтобы результат вычислений был правильным. Потом вы будете ныть, что программа медленная, а компилятор плохой и делает кучу ненужных действий. QUOTE (Aprox @ Apr 10 2012, 22:47)  И если мне на входе сказали, что переменная типа unsigned char может хранить значения от -128 до +127, а перменная типа int значения в пределах от - 2147483648 lдо + 2147483647, Переменная типа unsigned char может хранить значения от 0 до 65535 (на TI's C2000, C5500) а int от -32768 до +32767 (AVR). И что нам с этим делать? QUOTE (Aprox @ Apr 10 2012, 22:47)  то этого вполне достаточно, чтобы приступить писать конкретное приложение особо ничем не заморачиваясь . Вам никто не запрещает в своем приложении использовать те типы, которые вам больше нравятся. QUOTE (Aprox @ Apr 10 2012, 22:47)  Но заморочит голову прикладнику по-крупному. Странно. Сколько человек узнавали о stdint.h - все находили его удобным. Вы первый прикладник, которого ставят в тупик (морочат голову) выражения типа typedef unsigned char uint_fast8_t; Видимо ваш прикладник переписывает код под каждую платформу заново, а пользователи stdint.h просто используют один и тот же код на PC, Blackfin, ARM, MSP430, AVR и прочих без ненужных затрат на этапе выполнения. QUOTE (Aprox @ Apr 10 2012, 22:47)  К тому-же, принцип "одинаково хорошо" очень неубедителен, когда видишь сколь велик в ресурсах разброс предлагаемых микроконтроллеров. По-моему, все окучить "одинаково хорошо" никак невозможно. Поэтому давайте сделаем для всех платформ хуже чем возможно только потому, что Aprox имеет аллергическую неприязнь к stdint.h? QUOTE (Aprox @ Apr 10 2012, 22:47)  Но зато прекрасно выделяет стандартные ключевые слова: signed, long, void, double .. и т.д. Точно также IAR выделяет эти ключевые слова. А вот vu16_t, извините, не выделяет. Значит надо взять хороший редактор. Eclipse выделяет. Не таким же цветом, как встроенный тип, но отдельным цветом - как определенный пользователем тип. Под сколькими платформами вы используете одни и те же исходники?
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
|
Apr 11 2012, 12:50
|

Местный
  
Группа: Участник
Сообщений: 374
Регистрация: 7-11-07
Из: Moscow
Пользователь №: 32 131

|
Цитата(Сергей Борщ @ Apr 11 2012, 09:48)  Потом вы будете ныть, что программа медленная, а компилятор плохой и делает кучу ненужных действий. Нет, не буду. Наоброт, сейчаc порой страдаю из-за слишком быстрого процессора, котрый забегает вперед по кэшу уже после прерываний от периферии. Цитата Переменная типа unsigned char может хранить значения от 0 до 65535 (на TI's C2000, C5500) а int от -32768 до +32767 (AVR). И что нам с этим делать? Авторам универсальной OS ? - Не знаю. А юзеру -просто почитать мануал на компилятор для своей платформы. В целом, задача сделать универсальную OS на все случаи жизни мне представляется нерешаемой. Цитата Вам никто не запрещает в своем приложении использовать те типы, которые вам больше нравятся. Я этим постоянно занимаюсь, когда определяю классы в C++. Но ни разу в голову не пришло подменять стандартные ключевые слова языка C++ на какие-то свои обозначения. Цитата Значит надо взять хороший редактор. Eclipse выделяет. Не таким же цветом, как встроенный тип, но отдельным цветом - как определенный пользователем тип. Вот видите, сколько ненужных заморчек вы навешиваете на юзера вашей OS? И stdint.h подключи, и вызубри его обозначения, и нужный редактор текста найди... Цитата Под сколькими платформами вы используете одни и те же исходники? Всегда под одной единственной платформой- ARM9 и Cortex M3. Прикладнику и производственнику скакать по платформам - не имеет никакого смысла. И совсем не из-за stdint.h Цитата(AHTOXA @ Apr 11 2012, 11:26)  Я говорил про M3. У него обработчик PendSV выполняется ~70 тактов (менее микросекунды на 72 МГц). Уточните пожалуйста, имеется в виду "обработчик" от scmRTOS со всеми его полингами или чистую реакцию процессора на прерывание по вектору SW?
|
|
|
|
|
Apr 11 2012, 19:11
|

Местный
  
Группа: Участник
Сообщений: 374
Регистрация: 7-11-07
Из: Moscow
Пользователь №: 32 131

|
Цитата(AHTOXA @ Apr 11 2012, 18:44)  Обработчик прерывания PendSV порта scmRTOS для Cortex-M3. Спасибо. Теперь сравните со времнем реакции задачи, если бы она синхронизировалась напрямую от прерываний периферии и ее exec() находился бы внутри ISR. По моему, небо и земля. А если учесть, что в современных МК периферия работает с памятью по DMA, то вообще- OS по старинке отдыхает. Цитата(mdmitry @ Apr 11 2012, 17:43)  .. Пожалейте авторов! Они сделали большую работу очень качественно и бесплатно для пользователей. P.S. Всегда считал, что писать переносимый код это хороший тон  . Я испытываю глубочайшее и искреннее уважение к авторам scmRTOS. И прежде всего потому, что сваяли вещь на С++, в то время как остальные тянут С. Как прикладник, я очень понимаю, сколь хорошо и надежно один раз создать и отладить класс, а потом наплодить на его основе много однотипных обьектов. Только поэтому и обратил внимание на scmRTOS, думал- вот оно! Но оказалось, что авторы, сделав грандиозный скачок в программировании, одновременно сделали и два, не менее грандиозных шага назад, в прошлый век,- по хардверу. Работая на передовом C++, они ориентируются на мелкие, примитивные микроконтроллеры, которые сейчас и найти-то стало трудно на рынке. Используют темплейты языка C++ для отживших свой век АVR! Честно скажу - уму нерастяжимо. Давно прошло то время, когда надо было влезать в узкие ворота ограниченных ресурсов процессора. Сейчас за те же деньги и при тех же габаритах юзер имеет возможность использовать чипы, сравнимые с ПК. Но авторы по-прежнему считают доблестью сохранить совместимость с устаревшими моделями. Причем, в ущерб своему же творению, его тянет назад груз прошлого, тормозит развитие. Извините, я этого понять не в состоянии.
|
|
|
|
|
Apr 11 2012, 19:56
|

Гуру
     
Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095

|
QUOTE (Aprox @ Apr 11 2012, 22:11)  Работая на передовом C++, они ориентируются на мелкие, примитивные микроконтроллеры, которые сейчас и найти-то стало трудно на рынке. Используют темплейты языка C++ для отживших свой век АVR! Ну извините, не угодили использующим исключительно "профессинальные контроллеры" с переднего края полета мысли контроллеростроителей. Когда будем делать следующую ОСь, мы вас спросим, для каких контроллеров ее делать и главное, для каких ее делать не нужно.
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
Сообщений в этой теме
AHTOXA Выпущена scmRTOS 4.0. Apr 5 2012, 12:57 haker_fox Искренние поздравления!
Использовал несколько ... Apr 6 2012, 02:27 Fat Robot Молодцы! Apr 6 2012, 09:10   demiurg_spb Цитата(Aprox @ Apr 10 2012, 13:02) Зато к... Apr 10 2012, 10:12    dxp QUOTE (demiurg_spb @ Apr 10 2012, 17:12) ... Apr 10 2012, 10:17     demiurg_spb ответил в предыдущем посте. Apr 10 2012, 10:21    dxp QUOTE (demiurg_spb @ Apr 10 2012, 17:12) ... Apr 10 2012, 13:33     aaarrr Цитата(Aprox @ Apr 10 2012, 23:47) Я посм... Apr 10 2012, 20:12     demiurg_spb Цитата(Aprox @ Apr 10 2012, 23:47) ... Apr 11 2012, 04:54       mdmitry Цитата(Aprox @ Apr 11 2012, 16:50) А юзер... Apr 11 2012, 13:43         AHTOXA Цитата(Aprox @ Apr 12 2012, 00:24) OS по ... Apr 11 2012, 19:12          Aprox Цитата(AHTOXA @ Apr 11 2012, 23:12) У мен... Apr 12 2012, 07:57           Lotor Цитата(Aprox @ Apr 12 2012, 11:57) Чтобы ... Apr 12 2012, 08:29           MrYuran Цитата(Aprox @ Apr 12 2012, 11:57) Дело з... Apr 12 2012, 08:43            Aprox Цитата(MrYuran @ Apr 12 2012, 11:43) ScmR... Apr 12 2012, 11:54   _pv Цитата(Aprox @ Apr 10 2012, 16:02) Зато к... Apr 10 2012, 11:35   AHTOXA Цитата(Aprox @ Apr 10 2012, 15:02) Вот, я... Apr 10 2012, 12:31    _Артём_ Цитата(AHTOXA @ Apr 10 2012, 15:31) Вложе... Apr 10 2012, 14:11     AHTOXA Цитата(_Артём_ @ Apr 10 2012, 20:11) Може... Apr 10 2012, 16:56      _Артём_ Цитата(AHTOXA @ Apr 10 2012, 19:56) в scm... Apr 10 2012, 18:08       AHTOXA Цитата(_Артём_ @ Apr 11 2012, 00:08) Ну д... Apr 11 2012, 07:26        _Артём_ Цитата(AHTOXA @ Apr 11 2012, 10:26) Ну, у... Apr 11 2012, 17:09         AHTOXA Цитата(_Артём_ @ Apr 11 2012, 23:09) 70 г... Apr 11 2012, 18:07      Aprox Цитата(AHTOXA @ Apr 10 2012, 20:56) Нет, ... Apr 10 2012, 20:30       aaarrr Цитата(Aprox @ Apr 11 2012, 00:30) Тогда ... Apr 10 2012, 20:54 bookevg Цитата(Aprox @ Apr 9 2012, 22:32) 1. Вы ... Apr 9 2012, 19:05 Сергей Борщ QUOTE (Aprox @ Apr 9 2012, 21:32) 1. Вы ... Apr 9 2012, 20:53 Anatoly74 Найдена опечатка в порте AVR, Common/OS_Kernel.h
В... Apr 11 2012, 07:34 _pv Цитата(Anatoly74 @ Apr 11 2012, 14:34) На... Apr 11 2012, 09:05  demiurg_spb Цитата(_pv @ Apr 11 2012, 12:05) а будет ... Apr 11 2012, 09:08 Сергей Борщ QUOTE (Anatoly74 @ Apr 11 2012, 10:34) До... Apr 11 2012, 10:23  ReAl Цитата(Aprox @ Apr 11 2012, 15:50) Но ни ... Apr 11 2012, 13:48   Сергей Борщ QUOTE (ReAl @ Apr 11 2012, 16:48) Сдвигае... Apr 11 2012, 14:03    mdmitry Получается, что в текущем варианте можно использо... Apr 11 2012, 14:35     Сергей Борщ QUOTE (mdmitry @ Apr 11 2012, 17:35) Полу... Apr 11 2012, 14:45      mdmitry Зануда:
А в документации страницы с 115 по 118, ... Apr 11 2012, 14:56 ReAl Цитата(Anatoly74 @ Apr 11 2012, 10:34) На... Apr 11 2012, 13:39 mdmitry Aprox, Вас ни кто не заставляет использовать эту О... Apr 11 2012, 20:06 dxp QUOTE (mdmitry @ Apr 11 2012, 21:56) Зану... Apr 12 2012, 03:44 viterra Дело в том, что с типами данных действительно БЕДА... Apr 12 2012, 10:05 IgorKossak Хочется надеяться, что на том и порешили.
Дальше, ... Apr 12 2012, 12:24 Aprox Цитата(IgorKossak @ Apr 12 2012, 16:24) Д... Apr 12 2012, 17:42  IgorKossak Цитата(Aprox @ Apr 12 2012, 20:42) А по д... Apr 12 2012, 17:56  MrYuran Цитата(Aprox @ Apr 12 2012, 21:42) А по д... Apr 12 2012, 17:57   ReAl Цитата(MrYuran @ Apr 12 2012, 20:57) А вы... Apr 12 2012, 20:33    Aprox Цитата(ReAl @ Apr 13 2012, 00:33) Я думаю... Apr 13 2012, 07:18     Nixon Цитата(Aprox @ Apr 13 2012, 10:18) Если ч... Apr 13 2012, 07:25      Aprox Цитата(Nixon @ Apr 13 2012, 11:25) Отличн... Apr 14 2012, 09:01     haker_fox QUOTE (Aprox @ Apr 13 2012, 15:18) В моем... Apr 13 2012, 15:24     ReAl Цитата(Aprox @ Apr 13 2012, 10:18) Нет, н... Apr 13 2012, 18:47 Nixon Хотелось бы в рантайме иметь возможность определен... Apr 12 2012, 12:33 mdmitry Цитата(Nixon @ Apr 12 2012, 16:33) Хотело... Apr 12 2012, 12:52 Сергей Борщ QUOTE (Nixon @ Apr 12 2012, 15:33) Хотело... Apr 12 2012, 12:59 Nixon Все правильно, но из плагина я читаю переменную ил... Apr 12 2012, 13:04 _Артём_ Цитата(Nixon @ Apr 12 2012, 16:04) Все пр... Apr 12 2012, 13:30 dxp QUOTE (IgorKossak @ Apr 13 2012, 00:56) П... Apr 13 2012, 03:35 ReAl Цитата(dxp @ Apr 13 2012, 06:35) Ну, а си... Apr 13 2012, 05:18 IgorKossak Цитата(dxp @ Apr 13 2012, 06:35) Одну я п... Apr 13 2012, 06:42 Lotor Позиция авторов, что задачи с одинаковым приоритет... Apr 13 2012, 06:44 dxp QUOTE (ReAl @ Apr 13 2012, 12:18) Кстати,... Apr 13 2012, 13:08 Lotor Цитата(dxp @ Apr 13 2012, 17:08) Смысл в ... Apr 13 2012, 13:46  IgorKossak Цитата(Lotor @ Apr 13 2012, 16:46) ... та... Apr 13 2012, 14:29 Nixon Хотел бы еще добавить свои пять копеек. IMHO полез... Apr 13 2012, 13:27 dxp QUOTE (Nixon @ Apr 13 2012, 20:27) По пов... Apr 13 2012, 17:29 Lotor Цитата(dxp @ Apr 13 2012, 21:29) Да, тему... Apr 16 2012, 04:20  VslavX Цитата(Lotor @ Apr 16 2012, 07:20) Я согл... Apr 16 2012, 06:19 ReAl Вы её просто не умеете готовить. Как, видимо, и лю... Apr 14 2012, 10:38 Aprox Цитата(ReAl @ Apr 14 2012, 14:38) Если Вы... Apr 15 2012, 08:20  sasamy Цитата(Aprox @ Apr 15 2012, 12:20) одна и... Apr 15 2012, 11:08  AHTOXA Цитата(Aprox @ Apr 15 2012, 14:20) Зачем ... Apr 15 2012, 13:57  ReAl Цитата(Aprox @ Apr 15 2012, 11:20) Видите... Apr 15 2012, 15:46 dxp QUOTE (Aprox @ Apr 15 2012, 15:20) Отдель... Apr 16 2012, 04:52 Lotor Цитата(dxp @ Apr 16 2012, 08:52) Почему б... Apr 16 2012, 05:48  dxp QUOTE (Lotor @ Apr 16 2012, 12:48) У меня... Apr 16 2012, 06:35   ReAl Цитата(dxp @ Apr 16 2012, 09:35) Кто сказ... Apr 16 2012, 07:29    dxp QUOTE (ReAl @ Apr 16 2012, 14:29) Та не™,... Apr 16 2012, 07:46     Lotor Цитата(dxp @ Apr 16 2012, 11:46) Кстати, ... Apr 16 2012, 08:44   Lotor Цитата(dxp @ Apr 16 2012, 10:35) Всё равн... Apr 16 2012, 07:29   VslavX Цитата(dxp @ Apr 16 2012, 09:35) Это что ... Apr 16 2012, 08:40    AHTOXA Цитата(VslavX @ Apr 16 2012, 14:40) Поэто... Apr 16 2012, 08:50     VslavX Цитата(AHTOXA @ Apr 16 2012, 11:50) ваш в... Apr 16 2012, 09:11      AHTOXA У меня нет ни IAR-а ни LCP17xx
BTW, а не было ли ... Apr 16 2012, 09:27       VslavX Цитата(AHTOXA @ Apr 16 2012, 12:27) У мен... Apr 16 2012, 09:34        AHTOXA Цитата(VslavX @ Apr 16 2012, 15:34) Думаю... Apr 16 2012, 09:48         VslavX Цитата(AHTOXA @ Apr 16 2012, 12:48) Предс... Apr 16 2012, 10:09          AHTOXA Цитата(VslavX @ Apr 16 2012, 16:09) Это в... Apr 16 2012, 11:12 dxp QUOTE (VslavX @ Apr 16 2012, 15:40) Опера... Apr 16 2012, 11:03 VslavX Цитата(dxp @ Apr 16 2012, 14:03) Я про ва... Apr 16 2012, 11:17  dxp QUOTE (VslavX @ Apr 16 2012, 18:17) По зн... Apr 16 2012, 11:47   VslavX Цитата(dxp @ Apr 16 2012, 14:47) Это хоро... Apr 16 2012, 11:59
3 страниц
1 2 3 >
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|