LINUX.ORG.RU

История изменений

Исправление KivApple, (текущая версия) :

Там не только STM32, а вообще много разных ARM.

Вообще, поведение для разных семейств МК задаётся непосредственно кодом (слишком уж разное поведение требуется). Я сейчас как раз отрефакторил эту часть и теперь каждое семейство задаётся классом унаследованным от Toolchain (см. файлы toolchain_XXX.py).

Для MSP430 и AVR всё просто и банально - единственный необходимый параметр это -mmcu=XXX. Там никакой базы нет (точнее она есть, но непосредственно в компиляторе). Скрипты линкера и заголовочные файлы генерироваться не будут.

Для ARM ситуация сложнее. Параметры компиляции берутся из devices.data, скрипт линковки генерируется на основании этих данных тоже, а заголовочный файл на основании коллекции SVD (я сегодня выпилил собственную базу SVD и теперь использую пакет cmsis_svd, который прописан в зависимостях моего проекта в setup.py).

Исправление KivApple, :

Там не только STM32, а вообще много разных ARM.

Вообще, поведение для разных семейств МК задаётся непосредственно кодом (слишком уж разное поведение требуется). Я сейчас как раз отрефакторил эту часть и теперь каждое семейство задаётся классом унаследованным от Toolchain (см. файле toolchain_XXX.py).

Для MSP430 и AVR всё просто и банально - единственный необходимый параметр это -mmcu=XXX. Там никакой базы нет (точнее она есть, но непосредственно в компиляторе). Скрипты линкера и заголовочные файлы генерироваться не будут.

Для ARM ситуация сложнее. Параметры компиляции берутся из devices.data, скрипт линковки генерируется на основании этих данных тоже, а заголовочный файл на основании коллекции SVD (я сегодня выпилил собственную базу SVD и теперь использую пакет cmsis_svd, который прописан в зависимостях моего проекта в setup.py).

Исходная версия KivApple, :

Там не только STM32, а вообще много разных ARM.

Вообще, поведение для разных семейств МК задаётся непосредственно кодом. Я сейчас как раз отрефакторил эту часть и теперь каждое семейство задаётся классом унаследованным от Toolchain (см. файле toolchain_XXX.py).

Для MSP430 и AVR всё просто и банально - единственный необходимый параметр это -mmcu=XXX. Там никакой базы нет (точнее она есть, но непосредственно в компиляторе). Скрипты линкера и заголовочные файлы генерироваться не будут.

Для ARM ситуация сложнее. Параметры компиляции берутся из devices.data, скрипт линковки генерируется на основании этих данных тоже, а заголовочный файл на основании коллекции SVD (я сегодня выпилил собственную базу SVD и теперь использую пакет cmsis_svd, который прописан в зависимостях моего проекта в setup.py).