‮Сдвиг по фазе (kincajou) wrote,
‮Сдвиг по фазе
kincajou

worklog: FreeRTOS

как-то раз я уже пытался её запустить, но тогда я делал всё при помощи STMCube - штука, безусловно, очень удобная и продвинутая, если нужно тяп-ляп и в продакшен.

Но мне всегда неуютно, когда я не понимаю, как устроено то, чем я пользуюсь. Во многих случаях с этим просто надо смириться и принять таким, какое оно есть (я не знаю, как устроен Windows и вряд ли когда-нибудь это пойму), но ежели речь идёт о программном обеспечении железяки, которую я делаю сам для себя, то такое положение вещей меня не устраивает.

Поэтому щас я переписал свой тестовый -- до боевого ещё ооооочень далеко! -- код, выкинув из него HAL и Cube - остался только CMSIS, ибо в нём расписаны все регистры, биты, номера прерываний и т.п., и т.д., и никакого говна, вложенного в говно говна. Ну, ещё позаимствовал ассемблерный startup и скрипт для линковщика (хотя и до них, наверное, однажды доберусь).

Первым шагом был просто запуск платы (да, опять), но с кодом, который написал я так, как хочу -- пошагово, с комментами самому себе, регистр за регистром включается вся мелочь, без которой вообще ничего не будет работать: тактовые сигналы, память, управление питанием, всё такое.

Помигал лампочкой при помощи прерывания от таймера. Частота ок, потребление ок, всё выглядит так, как ожидалось.

Следующим шагом вкорячил свежескачанный FreeRTOS. Вручную, следуя их инструкциям.

Написал функцию для мигания лампочкой БЕЗ прерывания таймера (во всяком случае, в явном виде -- для формирования периода теперь используется API от FreeRTOS, внутри которого спрятан обработчик Systick), запустил её как задачу... Мигает!

Потом, конечно, всё равно придётся скатиться до использования чужого кода, который работает неизвестно как (хоть его и можно изучить, но это уведёт меня сильно в сторону от решения задачи) - когда я буду запускать Ethernet и USB. Возможно, вместо самопала прикручу какую-нибудь готовую графическую библиотеку (например, uGFX, обещающую лёгкость, надёжность, скорость и всё такое).

В общем, где-то там, вдалеке, забрезжила надежда.
Subscribe
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 0 comments