MIR-LLC / macs-rtos

MACS RTOS kernel repository
BSD 3-Clause "New" or "Revised" License
33 stars 15 forks source link

Проблема с svc_privileged_call #1

Open maozzz opened 4 years ago

maozzz commented 4 years ago

Добрый день. Пытаюсь запустить ОС на: МК: MDR32F9Q2T Отладочная плата для К1986ВЕ92QI ОС: macOS Mojave IDE: CLion

Ошибка происходит здесь: https://take.ms/wVqEQ

Например, создаю Task: void Execute() { while (true) { led->toggle(); Delay(1000); } }

При выполнении Delay попадаю сюда: https://take.ms/dXwJ8U И в SvcExecPrivileged возникает ошибка. Если, например, запустить Task с Task::ModePrivileged - то ошибки не происходит при Delay. Но она там дальше случается при переключении тасков или еще где-то.

Использую macs-rtos-1.6.0/target/1986ve92/toolchain/gcc/svc_handler.S

И еще никак не получается установить m_tick_rate_hz (SystemBase::InitScheduler()). Проблема вот тут: https://take.ms/y82mc Если в поставить 1000 напрямую (https://take.ms/dohHS) - ошибки нет. Никак не могу понять, где нужно что задать, чтобы работало?

Помогите, пожалуйста.

MIR-LLC commented 4 years ago

Здравствуйте! Для начала вопрос – работает ли у вас наш демо-пример “Blink” ? Если нет, то это какая-то внешняя проблема, так как у нас он работает. Сообщите побольше деталей (сообщения, поведение и т.п.). Если да, то просьба прислать ваш проект – мы попробуем запустить у себя.

Что касается проблемы с установкой частоты следования тиков ОС, то это тревожный признак. Дело в том, что m_tick_rate_hz - это просто статический член класса: uint32_t SystemBase::m_tick_rate_hz = MACS_INIT_TICK_RATE_HZ; Если в нем"мусор" - значит не выполняется инициализация статики при загрузке программы. Очевидно, что работать ничего не будет. Проверьте значения статических объектов.