Неправильное расположение регистров ядра при переключении контекста в uc / os-III - PullRequest
0 голосов
/ 12 февраля 2019

uC / OS-III говорит:

При вызове OSTaskCreate () uC / OS-III инициализирует верхнюю часть стека задачи с копией регистра ЦП в том же порядке расположения, что иесли они все были сохранены в начале ISR.

Вот набор регистров ARM для руки.

К вашему сведению: я использую cortex-a8, которыйоснованный на архитектуре v7, но я считаю, что структура регистров ядра v7 такая же, как на следующем изображении Complete ARM register set Вот отладочная информация перед выполнением оператора OSTaskCreate: enter image description hereВот отладочная информация после выполнения оператора OSTaskCreate: enter image description here Очевидно, что эти значения, сохраняемые стеком, полностью отличаются от регистра ядра.

Как это могло быть?

1 Ответ

0 голосов
/ 12 февраля 2019

Это, вероятно, необходимая ссылка, переключение контекста , указывающая, что сначала сохраняются SR / PC, а затем другие регистры r0-r13.Для окончательного ответа вы можете обратиться к источнику в os_cpu_a.asm.

...