Перейти к содержанию

jcxz

Свой
  • Публикаций

    5 296
  • Зарегистрирован

  • Посещение

Репутация

0 Обычный

Информация о jcxz

  • Звание
    Гуру
  • День рождения 01.12.1974

Контакты

  • ICQ
    311337544

Информация

  • Город
    Омск

Посетители профиля

13 475 просмотров профиля
  1. char const znakogenerator[] = {...}; спасёт отца русской демократии.
  2. А что мешает в runtime определить в какой именно странице находится данный объект? "Жёстко задавать" там где без этого можно обойтись - это то же самое что брать на себя функции компоновщика при размещении переменных в ОЗУ. И если "жёстко задавать" адрес - это значит ещё и вручную следить за размерами этих объектов с настройками, чтобы они не вылезли за границы страницы. А это уже - конкретный геморрой.
  3. Как ни странно, но в runtime адрес переменной легко получить: (int)&var. ;)
  4. Если бы Вы удосужились прочитать именно мой исходный вопрос, то могли бы заметить, что мой вопрос касался конкретной фразы injen-d: И если Вы не поняли моего вопроса, то я поясню, что я удивлён почему при включенной аппаратной плавучке размер контекста задачи определяется таким странным образом. И по-моему должен быть больше. И встречный вопрос - если Вам нечего сказать по заданному вопросу, то зачем тогда отвечаете? AHTOXA уже вполне достаточно всё объяснил: указанный размер контекста для случая без аппаратной плавучки.
  5. А с чего вы взяли что я спрашивал вас? Я спрашивал того, кто знает (в отличие от вас).
  6. Так если Вы не знаете как реализовано сохранение контекста в scmRTOS, то зачем тогда рассказываете как оно там сделано? Разве не Ваши слова: Почему 17, а не 33 или 34?
  7. Я (в отличие от Вас) знаю как сохраняются регистры FPU при прерывании. Но какое это имеет отношение к задачам ОС? Это во-первых, а во-вторых - при прерывании сохраняются только регистры FPSCR,S0...S15 (и тоже кстати - опционально). Вы хотя-бы сами прочитайте то, на что ссылаетесь.
  8. И что? Например - задача использовала все 32 регистра данных. Почему в контекст сохраняются только 16 из них? И каким образом переключатель задач узнаёт о том, какие именно регистры использовались (в задаче), а какие - нет?
  9. А почему в scmRTOS сохраняются только 17 регистров FPU, а не все 33? Или может всё-таки sizeof(stack_item_t) == 8 и тогда всё будет ок? ;)
  10. Зачем??? Какой от этого прок? И как "по мотивам scmRTOS" оформить код ниже, может объясните?: CPU_SR_ALLOCATE(); u32 t = sysTimer; while (1) { ENTR_CRT_SECTION(); switch (faza) { case FAZA_INIT: newCfg = 0; EXIT_CRT_SECTION(); ReadConfig(); fazaTime = t + ms2tkt(TOU?T_SILENCE); faza = FAZA_IDLE; break; case FAZA_IDLE: if (IS_CONSOLE_INPUT()) { #if LOG_SERVICE && LOG_DTE console.faza = console.F_EXEC; #endif } else if (newCfg) { faza = FAZA_INIT; EXIT_CRT_SECTION(); continue; } else if ((s32)(t - fazaTime) < 0) { EXIT_CRT_SECTION(); return; } fazaTime = t + ms2tkt(TOUT_CONNECT); faza = FAZA_CONNECT; EXIT_CRT_SECTION(); SocketOpen(SOCK_TIME);? return; case FAZA_CONNECT: ... case FAZA_RX_END: fazaTime = t + ms2tkt(TOUT_CLOSE); faza = FAZA_CLOSE; EXIT_CRT_SECTION(); SocketClose(SOCK_TIME); return; default: EXIT_CRT_SECTION(); } break; } где: ENTR_CRT_SECTION() и EXIT_CRT_SECTION() - вход и выход в/из критической секции. И нужно изменять faza (машина состояний некоего процесса) и fazaTime (счётчик таймаута для некоторых состояний faza) атомарно в нескольких задачах и ISR. Таких атомарно меняемых переменных может быть больше. Т.е. - один вход и к.секцию и множество выходов из неё.
  11. Прерывание PendSV разрешено? В вектор прописан адрес ISR? Входит туда? Именно оно обычно на Cortex-M переключает контекст на готовую задачу.
  12. STM32F107+WiFi по Ethernet

    Вы это серьёзно??? Или прикалываетесь? На STM32F107?? :-D Я спрашивал про скорость прикладного потока в требуемом протоколе обмена. А не скорость по физике Ethernet.
  13. STM32F107+WiFi по Ethernet

    Для начала нужно хотя-бы узнать: "высокоскоростной" - это сколько в граммах кБ/сек? И по какому протоколу? И что автор дальше с этим потоком собирается делать в МК? После чего может оказаться что и банального UART за глаза хватит. ;)
  14. Хммм... действительно... Или я попутал и не оттуда прочитал или автор уже отредактировал пост ;)