本文章基于兆易创新GD32 MCU所提供的2.2.4版本库函数开发
后续项目主要在下面该专栏中发布:
手把手教你嵌入式国产化_不及你的温柔的博客-CSDN博客
感兴趣的点个关注收藏一下吧!
电机驱动开发可以跳转:
手把手教你嵌入式国产化-实战项目-无刷电机驱动(1)-CSDN博客
BMS电源系统开发可以跳转:暂未放链接
本项目配套开发板:
基于GD32F103RCT6国产GD32平台,以下教程编写基于该开发板
图片:
原理图以及例程请联系客服获取!
注意:
本教程致力于解决所有在调试中出现的所有问题,如有未包含在的问题,请联系QQ:2049363803,有奖更新文档!
介绍
GD32F103RCT6的教程已经出了一部分了,GD32F407的教程待更新,F103现在已经在出UCOSIII的教程了,那么谈到UCOSIII的操作系统想要挂载到F1上面,那么我们关心的最重要的一个点就是,F1他能不能放得下,那么我们本次将会介绍一下F1系列对应的一个FLASH空间。
官方资料
那么我们首先来看一下官网所提供的资料:
这是官方提供的各类型号的硬件资源选项,从这里我们可以清楚的看见各类常用单片机的片上Flash和ARM的大小。
这里整理出了常用的几类芯片:
芯片型号 片上Flash ARM GD32F103C8T6 64KB 20KB GD32F103RCT6 256KB 48KB GD32F103VET6 512KB 64KB GD32F103ZET6 512KB 64KB
那么其对应的在单片机中的地址寻找,让我们打开keil5的魔术棒就可以看见:
GD32F103C8T6
Flash起始地址为0x8000000,尺寸为0x10000H对应大小为64KB
RAM起始地址为0x2000000,尺寸为0x5000H对应大小为20KB
这里大家可能会疑惑,明明我是GD32F103C8T6为什么编译器会出现128K的大小?按理说只有和GD32103RCT6引脚一样但是Flash大小不同的GD32F103CBT6才会有128K的大小才对,在官方参考手册中可以明确看见如下:
其中c8为64KB对应0x8000000H~0x800FFFFH
cb为64KB对应0x8000000H~0x801FFFFH
但是实际使用中会发现,你选c8也是默认下载算法里面出现128KB的选项。
GD32F103RCT6
Flash起始地址为0x8000000,尺寸为0x4000H对应大小为256KB
RAM起始地址为0x2000000,尺寸为0xC000H对应大小为48KB在实际使用中我们也能发现,标称是256KB,但是下载算法中依旧是512KB
GD32F103RCT6的Flash内存是256KB
GD32F103RET6的Flash内存是512KB
GD32F103VET6
Flash起始地址为0x8000000,尺寸为0x80000H对应大小为512KB
RAM起始地址为0x2000000,尺寸为0x10000H对应大小为64KB
GD32F103ZET6
Flash起始地址为0x8000000,尺寸为0x80000H对应大小为512KB
RAM起始地址为0x2000000,尺寸为0x10000H对应大小为64KB
至于是为什么出现上述情况,我们在ST的论坛中会发现ST系列也会存在着这样的问题,但是好玩的是,超过部分的内存,实际读可以被读取到。这里用ST论坛上的话来说是个福利?如果有知道的,可以给我们大家科普一下这是为什么?在日常使用中,并不推荐对超出部分进行操作,造成程序的崩溃或者读写错误之类的问题就得不偿失了。
群号:621154399
有问题欢迎大家加入我们一起交流,这个群是开源性技术交流群。
这里提供一份官方的内存寻址文件作为参考:
文件我无法用CSDN上传资源,去看了一下,有人把GD32官方的免费文件给上传以后收费了,笑死我了,没办法只能贴个百度网盘的链接了,大家有需要自取:
链接:https://pan.baidu.com/s/1pC2OXZXkMs1kqGhlzlEndQ?pwd=5caz
提取码:5caz
--来自百度网盘超级会员V3的分享