目标
向 Arm Mbed OS 5 添加新的微控制器取决于 CMSIS-CORE 和 CMSIS-Pack。请确保微控制器已有这些功能。
添加新的微控制器和电路板
首先将 GitHub 上的 mbed-os 存储库分成您自己的用户帐户。我们将使用占位符 USERNAME 在以下文档中引用您的用户名,MCU_NAME 将引用您要添加的新微控制器,BOARD_NAME 将引用您要添加的新主板。导入 Mbed OS 示例,并使用以下命令添加 mbed-os 的 fork:
mbed import mbed-os-example-blinky
cd mbed-os-example-blinky\mbed-os
git checkout master
git pull
git checkout -b my-new-target
git remote add USERNAME https://github.com/USERNAME/mbed-os
git branch my-new-target -u USERNAME
cd ..
目标说明
使用添加和配置目标部分描述的键将目标描述添加到 mbed-os\targets\targets.json。我们建议您在提交拉取请求之前在目标层次结构上运行目标 lint 脚本:
"MCU_NAME": {
"inherits": ["Target"],
"core": "Cortex-M3",
"supported_toolchains": ["ARM", "GCC_ARM", "IAR"],
"device_has": ["SERIAL", "STDIO_MESSAGES"]
},
"BOARD_NAME": {
"inherits": ["MCU_NAME"],
"macros_add": []
}
HAL 移植
还有许多 API 要实现。您可以通过向 targets.json 中的 MCU_NAME 目标定义添加 device_has 属性并提供 API 标头中声明的 API 的实现来启用以下 API。
device_has | API header |
---|---|
ANALOGIN | analog_in.h |
ANALOGOUT | analog_out.h |
CAN | can_api.h |
EMAC | emac_api.h |
INTERRUPTIN | gpio_irq_api.h |
I2C I2CSLAVE | i2c_api.h |
LPTICKER | lp_ticker_api.h |
LPTICKER | lp_ticker_api.h |
PORT_IN PORT_OUT | port_api.h |
PWMOUT | pwmout_api.h |
RTC | rtc_api.h |
SLEEP | sleep_api.h |
SPI SPISLAVE | spi_api.h |
TRNG | trng_api.h |
FLASH | flash_api.h |