FreeRTOS приоритет 1 особенный?
В моей системе у меня 6 приоритетов 0-5.Я знаю idle pro на 0.
Я назначаю задачу на 1, другие на 2-5. Из времени процессора и информации IDEL pro, я мог бы знать, что у процессора достаточно времени, чтобы выполнить все про.
Я обнаружил проблему в том, что задача в 1 не могла работать в нужное время, частота 10 Гц, но я обнаружил, что иногда она не работает.может быть 8 или ниже 10, даже ниже 1 Гц.
когда я задаю задачу на 2, все нормально, работает на 10 Гц.
Структура кода выглядит следующим образом:
void SYS_MONITOR::run(){
int ret = 0;
while(1){
vTaskDelayUntil(&last_wake_time, SYS_MONITOR_RUN_INTERVAL_MS/portTICK_RATE_MS);
dosomething....
}
ID State Prio Mark CPU(%) Name
1 S 1 261 0.0000000 God
2 R 0 109 69.6136779 IDLE
3 S 5 470 3.9053585 Tmr Svc
4 B 2 179 0.0242588 SYS_MONITOR_run
5 R 1 303 0.0142761 SYS_CLI_SERV_run
6 S 3 283 0.0000000 LOG_cmd_serv
7 S 2 211 0.2886269 LOG_write_serv
8 B 3 153 0.2118190 LOG_most_50hz
9 S 3 201 0.0000000 RADIO_decode
10 B 3 126 0.1288428 RADIO_process
11 B 2 196 0.0772956 RADIO_process_aux
12 S 3 415 0.4776628 MIXER_run
13 S 3 169 0.4424228 MOTORS_run
14 S 3 371 0.8374434 MODE_CTRL_run
15 S 3 343 0.0000000 ARM_CTRL_req_run
16 B 2 347 0.0137783 ARM_CTRL_auto_run
17 B 3 137 0.2266569 LAND_DECT_run
18 S 3 407 0.4652265 ATTI_CTRL_run
19 S 3 419 0.3744379 RATE_CTRL_run
20 B 2 411 0.2941673 MAV_input_serv
21 B 2 323 0.3829140 MAV_output_serv
22 B 2 473 0.0374897 MAV_stream_serv
23 B 2 396 0.0025562 MAV_hrtbt_serv
24 S 2 477 0.0000000 MAV_req_serv
25 B 2 213 0.1037065 PAYLOAD_run
26 B 3 197 0.0423389 FAILSAFE_update
27 B 3 209 0.0483238 FENCE_run
28 B 3 175 0.0065178 BATT_run
29 S 3 217 0.0000000 CLOCK_run
30 B 3 213 0.0727151 LIGHT_CTRL_run
31 S 3 763 11.7553119 CUR_POINT_run
32 B 4 339 7.0509743 SENSOR_update_imu
33 B 3 433 0.0510168 SENSOR_update_baro
34 B 3 421 0.0687697 SENSOR_update_compass
35 B 3 429 0.1039878 SENSOR_update_gps
36 B 2 417 0.0329442 SENSOR_update_battery
37 B 2 201 0.0206714 NOTIFY_run
38 S 3 475 0.0000000 TEMP_DRIFT_run
39 B 3 459 0.0591755 m8n decode serv
40 B 2 207 0.2241918 cloader
41 B 3 197 0.8418054 IST8310_30_deamon
42 B 3 197 0.8042585 IST8310_24_deamon
43 B 3 197 0.3707146 MS5611_0_deamon
44 B 2 475 0.5381515 usbtx_serv
Heap : Total 491520 , Used 193696 , Remain 297824
DmaHeap: Total 16384 , Used 2048 , Remain 14336