Нет никакой разницы, никакой магии и ничего особенного для mbed, что также делает его особенным.
Ответ приведен в документации к рассматриваемой детали и плате.Вы гуглите или заходите в NXP и ищите mcu: MK66FN2M0VMD18, который, конечно, был по вашей ссылке.Там он скажет вам, что это A cortex-m4 на базе ARM, так что вы захотите перейти на сайт вооружения и получить информацию о процессоре для ядра процессора, встроенного в чип NXP.Вы получите документацию для рассматриваемой платы с сайта, на который вы ссылаетесь, или выполните поиск по названию платы.
Например, в руководстве пользователя для этой платы показаны подключения гироскопа для SDA и SDL, для которых вы используете документацию.микроконтроллер, чтобы узнать об интерфейсе I2C для этой части и об интерфейсе на этих выводах, и / или вы просто ударили по gpio.как правило, сначала лучше всего выполнить бит-бэнг, а затем, при желании, попытаться заставить периферийное устройство mcu i2c работать позже.
Остальные периферийные устройства на плате должны быть описаны в документации к плате, в идеале есть схема.Для каждого из микросхем на плате, включая микроконтроллер NXP, вы переходите на сайты различных поставщиков, чтобы получить информацию о каждом из них, в том числе о том, как его запрограммировать, чтобы, например, гироскоп, в этом случае, вы переходили на NXP, поскольку он такжечип NXP и получите этот документ, посмотрите, как его запрограммировать и т. д.
Теперь, что находится между этой информацией и «mbed os» - это набор драйверов и уровней ОС, по концепции не отличающийся от уровней междуэта веб-страница в вашем браузере на вашем компьютере в вашей операционной системе на материнской плате.Некоторые микросхемы на плате, подключенные через плату или через кабели, а также другие элементы (жесткий диск и т. Д.), Подключенные через кабели или разъемы к другим платам.
И точно так же, как и у вашего компьютера, имеются интерфейсы и документация поте интерфейсы и программное обеспечение, которые были написаны с использованием документации для этих интерфейсов, шин и протоколов.
NXP, вероятно, имеет голые библиотеки для периферийных устройств (MCU), таких как I2C, возможно, также имеет некоторый пример кодакакая-то форма для гироскопа, так как я продолжаю выбирать этот чип, но иногда нет, иногда приходится писать свой собственный, такова природа мира микроконтроллеров.
Аналогично этому mbed, NXP, вероятно, написал кодтаким образом, что это соответствует mbed os (обратите внимание, что mbed bare metal и mbed os, возможно, являются разными интерфейсами) в основном написали драйверы для чипов и плат для этого продукта.Скорее всего, опубликовано на сайте NXP, а не на сайте ARMs mbed, но кто знает, что я не пользуюсь ни mbed, ни CMSIS, так что редко обращаю на это внимание.В интересах NXP предоставить исходный код для этой платы, так как они хотят, чтобы вы использовали эту плату для изготовления продуктов и покупали много чипов, если они препятствовали тому, чтобы все, что они делали, это продавали вам одну или несколько плат ипроиграть.Это природа мира mcu, который отличается от мира материнских плат, где они хотят продать вам один чип и одну плату и называть это днем.Поставщики микроконтроллеров выживают только в том случае, если каждый N-й из нас покупает микросхемы от десятков до сотен тысяч деталей.Чтобы заставить этого N-го человека сделать это, ему нужны справочные / eval-платформы со схемами и исходным кодом, в противном случае этот N-й человек будет использовать ST или ti или какой-либо продукт других поставщиков, предоставивший схему и исходный код.
Таким образом, все, о чем вы спрашиваете, задокументировано в разных местах, это чип на основе ARM (не чип руки), поэтому само ядро руки документировано рукой.Это чип NXP, поэтому остальная часть чипа идеально документирована NXP, но могут быть и другие приобретенные IP-адреса, для которых вам нужно перейти на сайт этого поставщика для документации, в редких случаях для микроконтроллеров, но не редко для микросхем уровня операционной системы (например,чип allwinner на оранжевом пи или чип Broadcom на малиновом пи), чтобы иметь некоторые купленные ip, которые NDA диктует, что они не могут документировать их, и поставщик ip не даст вам документы без NDA, которые вы, вероятно, не сможете получить (обычно USB, DDRи некоторые другие типы ip, которые обычно имеют эти секреты).Вы не должны видеть это на этих микроконтроллерах, в редких случаях они могут сказать, что это 16550-совместимый UART или это ARM-сервер, и вам нужно это Google.
если работает на ОС, включая RTOS, по крайней мере, в общемЕсть исключения из этого.приложения обращаются к apis, которые обращаются к драйверам операционной системы, которые взаимодействуют с периферийными устройствами в чипе (gpio, i2c, spi, uart, usb, таймеры и т. д.), некоторые из которых используют внешний по отношению к интерфейсу чипа другой элемент на платеили подключен к плате.Комбинация приложения, API и драйверов заставляет оконечное периферийное устройство выполнять все, что вы просили, при условии, что программное обеспечение разработано правильно и не содержит ошибок.Это ничем не отличается от написания программы на вашем компьютере.Здесь нет никакой магии.
Ничего особенного в ARM против ARM или x86 или другого процессора, используемого на вашем компьютере.На процессорах общего назначения, таких как ARM и X86, есть инструкции по загрузке / сохранению (чтение / запись), точный синтаксис хорошо зависит от ассемблера, машинный код зависит от процессора.Как упоминалось в вашей другой ссылке, x86 имеет представление о командах ввода / вывода, отличных от инструкций памяти, которые в конечном итоге были в то время всего лишь одним выводом на интерфейсе памяти (ввод / вывод против сигнала памяти / вывод вместе с сигналом чтения против записи /булавка и т. д.)Все ARM представляют собой ввод-вывод с отображением в память, и по большей части, так же как и для x86, существует обратная совместимость, и вы можете прочитать документацию по x86 от intel, чтобы увидеть, как она реализована сегодня на внешней шине (ях) микросхем.
В отличие от x86, ARM приобретается по протоколу IP и скрывается в микросхеме поставщика, поэтому в этом случае шина ARM является внутренней по отношению к микросхеме NXP, в NXP у вас есть декодеры адресов, так как MCU малони одно из этого адресного пространства непосредственно не отображается вне чипа.Таким образом, в документации по NXP вы найдете адресное пространство, специфичное для чипа NXP, например, этот конкретный чип UXP может быть специфичным для этого чипа NXP, и нет никаких оснований предполагать, что он такой же, как другой чип NXP, и, конечно, не тот же адрес или как онработает или интерфейсы / регистры как чип не-NXP, который использует то же ядро ARM.Доступ к периферийным устройствам на кристалле осуществляется через инструкции по загрузке и хранению на шине (ах) ARM внутри чипа.NXP определяет в правилах ARM, какие адреса связаны с чем, флэш-памятью, оперативной памятью и конкретными периферийными устройствами.Есть также прерывания, которые также подключены между ядром и встроенными периферийными устройствами для округления их интерфейсов.
с ОС (RT) - это часто драйвер в ОС, который взаимодействует с apis внутри ОС, которыйв конечном счете, становится одним из видов инструкций загрузки и хранения, вызывающих транзакции шины управления для контроллера памяти в микросхеме nxp, которая на основе адреса передает транзакцию в обработчик в микросхеме (флэш-память, память, определенное периферийное устройство).
Адресное пространство для этого чипа можно найти в документации NXP, некоторые поставщики чипов имеют адресное пространство в одном документе, например в техническом описании, и сведения о полужестких периферийных устройствах с смещениями регистров в другом документе.Но каждый вендор делает свое дело: информация там, как правило, хуже, чем у других (NXP довольно хорош, микрочип довольно плох, ST, TI довольно хорош).Исторически NXP заходил настолько далеко, что имел полный адрес регистра в описании регистра, где у большинства поставщиков базовый адрес задокументирован в другом месте этого документа или другого документа, а периферийная документация показывает только смещения к базе.
*API-интерфейсы 1028 * - это просто API-интерфейсы, разработанные ими как хорошие, плохие или как-то иначе (не думайте, что код поставщика хорош, вы можете увидеть по его взгляду, он редко пишется командой «А», обычно пишется кем-то, кто застрял, делая это).иногда это хорошо / хорошо иногда нет).То же самое касается драйверов операционной системы.
В интересах NXP предоставить готовое приложение для этих плат, демонстрирующее его возможности.Но в отличие от материнской платы компьютера для большинства потребителей этих продуктов, потребители микроконтроллеров в идеале являются разработчиками, создающими продукты на уровне чипа и программного обеспечения, а также для таких продуктов, как это программное обеспечение на уровне платы.Так что, хотя приложение под ключ интересно, мы не покупаем плату, чтобы просто запустить это программное обеспечение, поэтому документация API, исходный код и т. Д. Сверху вниз идеально где-то доступны.mbed - это инструмент для рук, поэтому некоторые из этих программ вам, возможно, придется получить из рук, а не nxp.это зависит от того, как именно и что NXP выбрал для упаковки.