如何将stm32f103RCT6的代码(含FreeRTOS操作系统)移植到stm32f103C8T6

现在想移植到的STM32F103C8
72MHz, 64kB Flash, 20kB SRAM,
原来正点原子的STM32F103RC
72MHz, 256kB Flash, 48kB SRAM,

如下图,点魔法棒,进入Device,选择需要更换的芯片,将stm32f103RCT6换成stm32f103C8T6
在这里插入图片描述
进入Target,更换频率为8.0HZ,在这里插入图片描述
进入C/C++,将STM32F10X_HD,USE_STDPERIPH_DRIVER换成STM32F10X_MD,USE_STDPERIPH_DRIVER,也就是HD变MD。因为c8t6是中容量芯片,含64kB Flash
在这里插入图片描述
换前
在这里插入图片描述
换后
在这里插入图片描述
如果不换,会这样报错
在这里插入图片描述

进入Debug,点击Setting
在这里插入图片描述
选择Flash Download,更改移除High—density…512K,在这里插入图片描述
添加Med—density…128K
在这里插入图片描述
然后进入代码文件,更换启动文件,在_hd.s处右键,然后Remove
在这里插入图片描述
在文件夹CORE处右键,添加已存在的Add Existing Files
在这里插入图片描述
进入CORE进寻找在这里插入图片描述
添加中等容量产品的启动文件在这里插入图片描述
添加后
在这里插入图片描述
再进入FreeRTOS操作系统修改堆栈
可能裸机的代码刚好够内存使用,因为加了FreeRTOS操作系统,得修改堆栈大小,否则这样报错
在这里插入图片描述
两种办法更改堆(heap)的大小
1,如图进入操作系统配置文件FreeRTOSConfig.h,因为STM32C8T6总共才20kB SRAM,需要将堆适当改小,栈才有空间
在这里插入图片描述
改成5*1024个字节,即5KB
在这里插入图片描述
第二种是在启动文件_md.s中,如图点击Configuration Wizard展开堆(Heap)栈(Stack),适当调整,
在这里插入图片描述
这个过程中,我将堆分配为0k,栈分配1k,由于方法一中也分配了堆,总的堆就是0K+5K=5K,即总的堆的大小两种分配方法堆的总和。
0x400=1024B=1K
0x800=2048B=2K
0x1000=4096B=4K
……
将原来RCT6的堆栈
在这里插入图片描述
改成下图,编译没报错

在这里插入图片描述
最后参考stm32手册改引脚,增加或者删去多余引脚和功能代码
例如C8t6最小系统板,没有LCD显示模块,不需要用,可以移除类似这样的文件,删去包含的头文件等
在这里插入图片描述
选择要移除的文件,右键,选择Remove File
在这里插入图片描述
头文件路径可删可不删,为了更简洁直观一点,我选择删了
点击魔法棒进入
在这里插入图片描述
选中,再点红色的X
在这里插入图片描述
重新编译,测试代码,修改引脚,因为不同容量产品的芯片,引脚是不同的,RCT6有64个引脚,而C8T6只有48个引脚,整理了一下。

在这里插入图片描述
接下来慢慢修改BUG……

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值