调试ARM Cortex M核还需要仿真器, NUCLEO-L073RZ自带ST-Link调试器,如果您的开发板或者芯片模组没有板载仿真器,就需要连接外置的仿真器,如J-Link、U-Link之类的。

    本移植指南针对的是Keil编译器,所以我们移植内核前需要先安装Keil编译器,能编译ARM Cortex M核的Keil编译器现在也叫MDK,最新版本5.28a,下载地址为:填写注册信息即可下载,下载完成在windows环境下按照提示安装即可,安装完成后需要自行购买软件License,避免32K Flash下载限制。由于新版本的MDK编译器和芯片支持包是分离的,所以MDK(Keil)安装完成后,还需要安装对应芯片的器件支持包(PACK包),比如本教程示例的NUCLEO-L037RZ开发板的芯片是STM32L073RZ,就需要安装Keil.STM32L0xx_DFP.2.0.1.pack系列器件支持包,MDK所有支持芯片的PACK包下载地址为:http://www.keil.com/dd2/Pack/#/eula-container ,您只需要根据您的芯片型号下载对应的PACK包即可,当然您也可以在MDK集成开发环境中在线下载安装。

    移植TencentOS tiny基础内核需要您提前准备一个芯片对应的裸机工程,裸机工程包含基本的芯片启动文件、基础配置(时钟、主频等)、以及串口、基本GPIO驱动用于RTOS测试。

    本教程使用ST官方的STM32CubeMX软件来自动化生成MDK裸机工程,STM32CubeMX的下载地址为:

    安装STM32CubeMx还需要事先安装好JDK环境,您可以在互联网上查找如何安装和配置JDK环境,此处不再赘述。

    3.1 首先启动STM32CubeMX,新建工程

    3.2 选择MCU型号

    如上图所示:通过MCU筛选来找到自己开发板对应的芯片型号,双击后弹出工程配置界面,如下图:

    3.3 Pin设置界面配置时钟源

    一、移植前的准备 - 图4

    3.4 Pin设置界面配置串口

    3.5 Pin设置界面配置GPIO

    3.6 配置总线时钟

    3.7 工程生成参数配置

    3.8 代码生成方式配置

    3.9 生成工程

    3.10 keil下的裸机工程

    点击生成代码后,生成的裸机工程效果如下:

    这样NUCLEO-L073RZ裸机工程生成完成,该工程可直接编译并烧写在板子上运行。

    由于本教程只介绍TencentOS tiny的内核移植,所以这里只需要用到 arch、board、kernel、osal四个目录下的源码。