Code Monkey home page Code Monkey logo

stm32-cmake-build's People

Contributors

droncode avatar

Watchers

 avatar  avatar

stm32-cmake-build's Issues

Работа с прерываниями

В побочной ветке уже реализованы единые прерывания, но их надо перенести в отдельный модуль. Так же нужно сделать поддержку кастомных прерываний.

Делать после #14

Clion + arm-none-eabi-gdb + remote debug (st-util)

  • Написать инструкцию по развертке дебага
  • Подумать над тем, как избавиться от дополнительной цели в Clion (неудобно переключаться на сборку)

GPIO

Нужно сделать архитектуру GPIO, сделать поддержку

  • setPullMode( pullUp, pullDown, pullNone )
  • setValue (digital, analog)
  • getValue (digital, analog)
  • setMode (digital, analog)
  • addInterruptHandler
  • clearInterruptHandlers
  • defaultInterruptHandler
  • InterruptType (LOW_HIGH, HIGH_LOW)
    TODO complete it

Обновить HAL

У меня на локальной машине в локальной ветке лежат наработки по C++ HAL и пора бы вылить это.

Убрать предупреждения компилятора

При сборке идет море мусора и все не по делу.
Часть ругани на применение С99 (ну а что хотели то, весь HAL на нем написан), часть на линковку (там вообще хз что, надо исследовать).

  • Убрать предупреждения на устаревшие конструкции (заглушить на этапе компиляции)
  • Убрать предупреждения на этапе линковки (понять почему и поправить)

Произвести декомпозицию сборки

Железо-зависимые части необходимо вынести в отдельные .cmake файлы и там разнести их по макросам. Общий же код так же необходимо вынести в cmake/platform.cmake в макрос INITIALIZE_PROJECT. Генерацию сборки необходимо вынести в отдельный скрипт (Python или нет уже другой вопрос)
Задачи:

  • Создать генератор проекта
  • Создать генератор ld файлов
  • Создать декомпозицию железо-зависимых модулей.
  • Создать возможность подключение подмодулей (речь о HAL)
  • Проверить возможность статической линковки (есть такое есть, то попробовать вынести свой wrapper в статическую библиотеку)

Wiki

Завести wiki и описать процесс подготовки проекта.
Выполнять только после #2 и #3

Перенести CMSIS в git submodule

Если есть офф репозиторий, то подключить его. Если нет, то создать свой.

UPD:
Есть офф репозиторий. Берем его, ветка master

Ссылка: https://github.com/ARM-software/CMSIS
Папка: 3rd/CMSIS

Задачи:

  • Убрать текущий CMSIS
  • Добавить git submodule
  • Поправить скрипты сборки
  • Поправить ссылки в исходном коде
  • Организовать декомпозицию сборки

Таймеры и работа с system clock

Нужно дальше отходить от кубика. Для этого нам надо реализовать свои таймеры и свой system clock c delay и прочими вещами.

Пока можно поверх HAL, но с минимумом его использования.

Интеграция Doxygen

Нужна дока => нужен Doxygen + описание всего HAL'а (нашей части, не надо докать кубик, он вообще deprecated)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.