cstdint, arm-none-eabi- та Ubuntu

Міняв диск, заразом поміняв і Убунту 16.04 на 18.10. Як і минулого разу на шістнадцятій, поставив «рідний» для системи пакет arm-none-eabi-. Мабуть, пора закінчувати з такою практикою, всістися на якусь іншу збірку компілятора, ту ж linaro. Бо проекти перестали збиратися. І на чому, на рівному місці! Компілятор не знаходить файл cstdint.

Короткий пошук показав, що версія компілятора 6.3.1, include-файли лежать в /usr/lib/gcc/arm-none-eabi/6.3.1/include та в /usr/lib/gcc/arm-none-eabi/6.3.1/../../../arm-none-eabi/include, який, зрештою, вказує на /usr/include/newlib.

А от заголовочні файли C++ лежать в /usr/include/newlib/с++/7.3.1. Звідки взялася сімка — важко сказати. Може це одрук, може дійсно поклали іншу версію, але жодного файлу від C++ cpp не знаходить. Назву 7.3.1 вирішив не чіпати, просто поруч додав лінк 6.3.1->7.3.1. Після цього cpp по -v показав додаткові шляхи до файлів і все стало збиратися.

scmRTOS for STM8, IAR port

Нашёл время на продолжение разработки scmRTOS.

Порт STM8/IAR добавлен в репозиторий в ветку scmRTOS pre-v4.00. Оттуда можно вытащить архив примеров scmRTOS для порта STM8/IAR. Каталоги scmRTOS/Common, scmRTOS/Extensions и scmRTOS/STM8 в архиве примеров пусты, необходимо загрузить архивы ядра scmRTOS pre-v4.00, расширений ядра и порта STM8/IAR, распаковать их в соответствующие каталоги.

»»» Подробнее про порт scmRTOS для микроконтроллеров STM8

scmRTOS for STM8

Выкладываю первую черновую версию порта scmRTOS для микроконтроллеров STM8 и компилятора IAR.
Порт основано на scmRTOS ветки pre-v400.

Ограничения этой версии порта:

  • Не поддерживается LARGE модель данных.
  • Не реализовано переключение контекста программно инициированным прерыванием.
  • Не реализовано переключение прерываний на отдльный стек.

В комплекте идут примеры 1-EventFlag и 4-Debug.
Примеры собирались компилятором IAR версии 1.30, проверялись на плате STM8S-DISCOVERY (STM8S105C6).

Файлы iostm*.h от IAR конфликтуют с файлом stm8s.h от STMicroelectronics, примеры сделаны под IAR-овские include-файлы.
Порт scmRTOS (содержимое каталога scmRTOS/STM8) не зависит от этих файлов, всё необхимое ему передаётся в виде макросов в файле scmRTOS_TARGET_CFG.h.
Позже, по-видимому, в отдельном #include-файле будет дописано недостающее для применения stm8s.h и примеры переписаны под стандартную библиотеку от STMicro.

Пример 1-EventFlag основан на примере для AVR/GCC порта, можно пользоваться описанием этого примера использования scmRTOS.
При оптимизации максимального уровня на скорость пример 4-Debug работает неправильно. В чём причина — пока не разбирался.


Дополнение от 8.11.2011: порт STM8/IAR добавлен в репозиторий scmRTOS.

Attached Files:

Наконец-то!

Наконец-то я нашёл время для перевода описания примера «1-EventFlag» scmRTOS на русский и английский языки. Объяснение основано на avr-gcc (WinAVR) порте для микроконтроллеров AVR, но может быть полезным для понимания работы любого порта scmRTOS.

Заодно немного причесал текст, добавил обозначения на осциллограммы. Надеюсь, что стало лучше.

[flagcounter image]