Mbed在自己的stm32系列平台移植适配(二)

Mbed在自己的stm32系列平台移植适配

适配平台:
cpu:STM32F103RCT6
外设:

peripheral pin disciption
LED1 PC_0
LED2 PC_6
UART5_TX PC_12 no remap
UART5_RX PD_2 no remap

引用资源:
mbed在线编译器
Mbed源码仓库
Stm32f1官方hal库

二、构建源码工程

1获取NUCLEO_F103RB的模版

既然是根据nucleo_F103RB来适配,当然需要有一个nucleo_F103RB的模版才行,当然没有也是可以的,我们可以手动通过MDK创建一个全新的工程。但是配置一些编译选项可能比较麻烦,所以我们还是通过nucleo_F103RB的模版来修改吧。
打开mbed的官网,进入developer,然后点击编辑器compiler,当然如果没有帐号的先注册一个帐号吧。
Mbed在自己的stm32系列平台移植适配(二)_第1张图片
然后选择一个开发板,此处我们选择nucleo-f103RB
Mbed在自己的stm32系列平台移植适配(二)_第2张图片
确认选择后我们就可以新建工程了。
Mbed在自己的stm32系列平台移植适配(二)_第3张图片
点击OK后工程建立完成,不过mbed的底层文件都被掩藏起来了,是看不到源码的。
然后我们将工程导出,此处我们到处为mdk v5
Mbed在自己的stm32系列平台移植适配(二)_第4张图片
Mbed在自己的stm32系列平台移植适配(二)_第5张图片
至此,我们就拥有了一个nucleo-f103rb的模版,只不过打开这个工程的文件夹后我们可以看到mbed里面全都是.o文件,并不是我们希望的源码,因为我们要适配必须要源码才行,.o文件是没有办法修改的。

2建立nucleo-f103rb的源码工程

我们知道,mbed os是开源项目,那么之前看到的.o文件都是通过这些源码编译后生成的,我们只要后去了mbed的源码,然后添加到工程中,然后稍作配置即可编译成功了。
从mbed的github下载mbed的源码:
mbed源码
下载成功后会看到这样的一些文件
Mbed在自己的stm32系列平台移植适配(二)_第6张图片
将nucleo-f103rb工程目录中mbed里面的所有文件全部删除,然后将mbed源码中的文件全部拷贝,一些文档类的文件可以删除。
当然为了是工程结构更加简洁,我们新建一个user和project文件夹,然后将project文件移入project中,将main和mbed_config.h文件移入user中。
打开工程,将之前的文件输出掉,然后添加新的资源文件到工程中,注意观察原本的工程包含了那些文件夹,比如drivers、hal、platform等、对应着添加,原本没有添加的就不需要加进去了,比如原本event没有添加到工程中,那么我们添加源码时event就可以不用添加了。但是注意一定要添加完整,不然可能会出现编译错误的情况。
Mbed在自己的stm32系列平台移植适配(二)_第7张图片
然后修改头文件包含路径,将存在头文件的路径全部添加即可。
Mbed在自己的stm32系列平台移植适配(二)_第8张图片
设置sct文件,
Mbed在自己的stm32系列平台移植适配(二)_第9张图片
将sct文件定位到mbed实际存在的路径上。
在mbed\targets\TARGET_STM\TARGET_STM32F1\TARGET_NUCLEO_F103RB\device\TOOLCHAIN_ARM_STD中。然后就可以尝试着编译了,如果有问题照着问题的提示慢慢修改,直到没有error为止,如果文件添加完整,路径设置正确,sct设置正确应该就没有错误的。然后就是开始适配了。

工程模版

你可能感兴趣的:(stm32)