CMSIS — API или библиотека

У меня есть несколько вопросов, которые я не могу понять.

  1. В чем разница между API и библиотекой во встроенном программном обеспечении? Любой пример будет оценен.
  2. Что такое CMSIS - это библиотека, предоставляемая ARM, которая обеспечивает немного более высокий уровень, чем программирование, указывая на чистые регистры?

Ответы (2)

  1. Библиотека — это часть кода, а то, как вы называете код библиотеки, — это API.

  2. CMSIS — это, по сути, стандарт уровня абстракции для различных микроконтроллеров — он определяет API или то, как вы вызываете код в библиотеке, чтобы что-то сделать.

CMSIS — это не API... нет «приложения», которому нужен программный интерфейс. Это не «библиотека», так как в C нет понятия библиотеки.

CMSIS — это группа заголовочных файлов C. Они обеспечивают стандартный способ доступа к аппаратным регистрам, некоторые встроенные функции для прямого доступа к специальным инструкциям сборки и несколько стандартизированных функций для использования архитектуры ARM. CMSIS очень хорошо документирована, поэтому, если вы просмотрите примеры, предоставленные ARM, я уверен, что вы поймете суть.

CMSIS это API. интерфейс для приложения для доступа к оборудованию
Это может быть вопрос мнения, но хотя сам компилятор языка C не имеет понятия о библиотеках, компоновщик наверняка имеет его. Это означает, что вы можете включить заголовок, чтобы ваш код мог вызывать код в библиотеке, а компоновщику предлагается включить код из библиотеки при компоновке исполняемого файла вместе. Также такие вещи, как strncmp или memset, взяты из стандартной библиотеки C.
@Justme Ты прав, это пришло мне в голову позже.