@DC7499

Страница 1099 из 1477
OMEN
16.09.2017
20:22:36
умею

просто я тут немного не понимаю

Andrew
16.09.2017
20:23:04
ну так а чо, ткнуть тебя носом что ли?

OMEN
16.09.2017
20:23:10
тики системные или переключение контекста

Google
Andrew
16.09.2017
20:23:39
во-первых, тебе какая разница

во-вторых, давай расскажи нам чем они отличаются

OMEN
16.09.2017
20:24:15
ну епта

у меня значит ядро молотит на 72 мегагерцах

Andrew
16.09.2017
20:24:41
таак

OMEN
16.09.2017
20:25:32
в FreeRTOSConfig.h я могу залепить TICK_RATE_HZ как я захочу

Andrew
16.09.2017
20:25:53
у меня значит ядро молотит на 72 мегагерцах
под «тиками» всегда понимают именно системные тики, а не фронты клока ядра

OMEN
16.09.2017
20:26:25
это значит, что 72 000 000 / TICK_RATE_HZ

и получаем частоту переключения контекста

Andrew
16.09.2017
20:26:56
ты читал вот это? http://www.freertos.org/a00127.html

» The constant portTICK_PERIOD_MS can be used to calculate real time from the tick rate - with the resolution of one tick period.

и получаем частоту переключения контекста
нет, частота переключения контекста и есть TICK_RATE_HZ

Google
Andrew
16.09.2017
20:27:50
а 72 000 000 / TICK_RATE_HZ это величина делителя системного таймера

и вообще завязывай называть это частотой переключения контекста, это именно частота системного таймера, контекст далеко не во всех случаях обязательно переключаться будет

OMEN
16.09.2017
20:31:19
250 hz это типа 250 раз в секунду?

на ду нах

Andrew
16.09.2017
20:31:25
бля…

у тебя еще физика в школе не началась, да?

OMEN
16.09.2017
20:31:41
или ты имеешь в виду это предделитель

Andrew
16.09.2017
20:31:51
ща с 7 класса начинается, да?

я ничо не имею в виду, как написал так и есть

TICK_RATE_HZ = 250, при sysclock_freq = 72e6 предделитель = 288000

OMEN
16.09.2017
20:33:20
да я пытаюсь вкурить

всё

я понял тебя

Andrew
16.09.2017
20:33:57
да я пытаюсь вкурить
завязывай с наркотиками

OMEN
16.09.2017
20:34:59
configSYSTICK_CLOCK_HZ это я так понимаю мы указываем предделитель самого ядра который дёргает xPortSysTickHandler

Andrew
16.09.2017
20:35:02
и вообще завязывай называть это частотой переключения контекста, это именно частота системного таймера, контекст далеко не во всех случаях обязательно переключаться будет
так вот, пока текущая задача не перейдет из running в Blocked или более приоритетная задача не выйдет в running — контекст не переключится

unum
16.09.2017
20:35:33
Что он делает вообще? Какая связь между rtos и arduino?

Andrew
16.09.2017
20:35:35
что у тебя в голове?

что у тебя в голове?
как у тебя блять предделитель ядра дергает xPortSysTickHandler?

Google
OMEN
16.09.2017
20:36:52
легко

void sys_tick_handler(void) { xPortSysTickHandler(); }

Andrew
16.09.2017
20:37:12
эээ

обыно вроде дефайном их биндяд

OMEN
16.09.2017
20:37:30
дефолтная настройка же

systick_set_clocksource(STK_CSR_CLKSOURCE_AHB_DIV8);

ну я хз как их биндят

Andrew
16.09.2017
20:38:18
ты где этот код взял?

обработчик прерывания в cmsis не так называется

OMEN
16.09.2017
20:38:46
это libopencm3

Andrew
16.09.2017
20:39:03
ну он, у них такая таблица

выебнулись

Andrew
16.09.2017
20:40:09
есть системный таймер, он тактируется на AHB1 обычно, со своим делителем, у него есть counter, есть порог сброса, порог и есть суть этот предделитель частоты систика (с учетом делителя тактирования). когда таймер сбрасывается, вызывается прерывание xPortSysTickHandler

OMEN
16.09.2017
20:40:36
да, всё правильно

SYSTICK_CLOCK_HZ указывает реальную частоты системного таймера, отличную от частоту ядра

Andrew
16.09.2017
20:41:25
конечно же

))

OMEN
16.09.2017
20:41:32
разобрались

Andrew
16.09.2017
20:41:39
системный таймер очень медленный

ну типа 1 кГц

Google
OMEN
16.09.2017
20:42:01
и вот я надыбал макрос pdMS_TO_TICKS

Andrew
16.09.2017
20:42:48
почему нельзя просто поделить на portTICK_PERIOD_MS?

как в примере собственно написано

OMEN
16.09.2017
20:43:14
почему, можно)

теперь надо понять как расчитать размер стэка

Andrew
16.09.2017
20:44:23
обычно эмпирически

ты понимаешь, что такое стек, что там оказывается и почему у каждой задачи свой стек?

OMEN
16.09.2017
20:44:40
бляха, а формул нет?

Andrew
16.09.2017
20:44:47
каких блять формул

Admin
ERROR: S client not available

OMEN
16.09.2017
20:44:48
да

знаю

я как то писал ОС для атмеги8

Andrew
16.09.2017
20:45:11
ну и что же в стек попадает?

и какие формулы должны быть?

OMEN
16.09.2017
20:45:43
там никакого размера стэка не указывалось

я просто сохранял РОН

Andrew
16.09.2017
20:45:50
в общем случае величина стека для задачи является невычислимой

это что за регистр?

OMEN
16.09.2017
20:46:00
и восстанавливал

Google
OMEN
16.09.2017
20:46:11
регистры бщего назначения

их 13 штук вроде

через POP и PUSH засовывал и извлекал из стэка

unum
16.09.2017
20:46:56
@shadowsoul тут опять аниме

OMEN
16.09.2017
20:47:04
простая вытесняющая многозадачность

Andrew
16.09.2017
20:47:43
ну то есть нормально да, что одна таска положила на стек 10 байт, потом ты контекст преключил, другая таска положила еще 15 байт на стек и перетерла нахуй все?

OMEN
16.09.2017
20:48:12
я там над этим не заморачивался

там никакой динамики

Andrew
16.09.2017
20:48:22
чо блять значт не заморачвался

ёптваюбмать

меня сейчас за мат забанят

пиздос

какая динамика

как можно без стека на си писать вообще

OMEN
16.09.2017
20:48:48
да бля, ты давно кодил на AVR?

Andrew
16.09.2017
20:49:11
я примерно представляю, как си в ассемблер компилируется

даже если все статикой объявить, как ты функции вызывать будешь

OMEN
16.09.2017
20:49:50
там всё просто

Andrew
16.09.2017
20:50:57
я хз может в атмеге как-то по-другому работает вызов функций, может они там на магнитной ленте контекст вызова сохраняют и в архив сдают

OMEN
16.09.2017
20:52:07
в атмеге стэк нужен тупо для сохранения всяких адрессов возвратов

unum
16.09.2017
20:52:14
Функцию там вызывают как сантехников, по номеру из газеты. Это же очевидный троллинг

Andrew
16.09.2017
20:52:39
я сейчас оказался героем «истории одного байта», он там тоже подгорал с того, что кто-то ему сказал, что «нам стек не нужен»

Страница 1099 из 1477