1赞

8回答

2收藏

[资料] 如何快速的从 ST 平台转换到 GD 平台

GD32 GD32 6131 人阅读 | 8 人回复 | 2015-05-13

首先,先要明确的是 GD 是硬件兼容蝴蝶的,但是由于提高了运行速度、以及内部工艺的不同,所以软件上可能都或多或 少需要改动一点的!
Q 01:ST上面原来的程序可以直接在GD上运行吗?
A 01:对于大部分原来运行在 ST 系列 Flash 中的程序,是需要少量修改和调试的。


Q 02:使用 ISP 下载需要注意的问题?
A 02:GD 基本兼容原来的 ST ISP下载程序,但是由于内部实现不同,GD 的全片擦除时间稍长了一点。
      原有的 ST 发布的以及专业的下载器基本不需改动。(一般会有一个配置参数)            
      对于自己开发过 ISP 的朋友,需要把片擦除的等待时间加长一点。
      对于使用 Jtag 和 SW 编程的用户是没有影响的。


Q 03:我是应该用 ST 的库还是使用 GD 的库?
A 03:看过 GD 手册的朋友会发现,GD 的全部寄存器地址都是可以兼容 ST 的(极个别的某几位定义不同,但几乎不影响使用)
      但是寄存器的名称确实还是有比较大的差异,对于当前大部分的需要移植的朋友来讲,我个人推荐还是在 ST 的库中修改。
      这样可以保持原来的阅读习惯,并且改动量并不是很大。最好是在库中的启动代码前面加一段。
      读一下 ID code,自动区分一下芯片的厂商和类型,这样就一劳永逸了。
      按照 ARM 和 JEDEC-106 标准,

         
      执行下面这个函数
  1. <span style="word-break: break-all;">uint16_t Get_JTAG_ID( )</span>
  2. <span style="word-break: break-all;">                </span><span style="word-break: break-all;"><span style="word-break: break-all;">{</span>
  3. <span style="word-break: break-all;">                </span><span style="word-break: break-all;"><span style="word-break: break-all;">        if( *( uint8_t *)( 0xE00FFFE8 ) & 0x08 )</span>
  4. <span style="word-break: break-all;">                </span><span style="word-break: break-all;"><span style="word-break: break-all;">        {</span>
  5. <span style="word-break: break-all;">                </span><span style="word-break: break-all;"><span style="word-break: break-all;">                return  </span><span style="word-break: break-all;"> </span><span style="word-break: break-all;">( ( *( uint8_t *)( 0xE00FFFD0 ) & 0x0F ) << 8 ) |</span>
  6. <span style="word-break: break-all;">                </span><span style="word-break: break-all;"><span style="word-break: break-all;">                              ( ( *( uint8_t *)( 0xE00FFFE4 ) & 0xFF ) >> 3  )  | </span>
  7. <span style="word-break: break-all;">                </span><span style="word-break: break-all;"><span style="word-break: break-all;">                              ( ( *( uint8_t *)( 0xE00FFFE8 ) & 0x07 ) << 5 ) </span><span style="word-break: break-all;"><span style="word-break: break-all;">+ 1 ;</span>
  8. <span style="word-break: break-all;">                </span><span style="word-break: break-all;"><span style="word-break: break-all;">        }</span>
  9. <span style="word-break: break-all;">                </span><span style="word-break: break-all;"><span style="word-break: break-all;">
  10. </span><span style="word-break: break-all;">                </span><span style="word-break: break-all;">
  11. <span style="word-break: break-all;">                </span><span style="word-break: break-all;"><span style="word-break: break-all;">        return  0;</span>
  12. <span style="word-break: break-all;">                </span><span style="word-break: break-all;"><span style="word-break: break-all;">}</span></span></span></span></span></span></span></span></span></span></span></span></span>
复制代码
返回  0x041 是 ST (ST手册 Doc ID 13902 Rev 14 的 1055页    31.6.2 和 31.6.4 ) ,
      返回  0x7A3 是 GD 。         
      另外,可以通过 JLink 读取该值,

ST103

#1 Id: 0x06414041  ,后三位。

GD103

#1 Id: 0x790007A3  ,后三位。

后面显示 : Unknwon device    这里不用担心,只是Jlink 库还未更新的缘故,不影响使用。估计很快就会显示 GD32 了。



分享到:
回复

使用道具 举报

回答|共 8 个

倒序浏览

沙发

zhangdaijin

发表于 2015-5-29 15:06:10 | 只看该作者

这么好的资料居然没人顶
板凳

shadow丶

发表于 2015-6-17 11:32:42 | 只看该作者

顶一下  0.0   看样子
地板

wambob

发表于 2015-6-17 13:18:34 | 只看该作者

帮顶,虽然现在用不到
5#

akejoy

发表于 2015-6-18 14:54:31 | 只看该作者

顶,,,,,,这真是好资料,看到这个突然又想起,确实用系统很有优势啊
6#

damiaa

发表于 2015-6-27 17:48:15 | 只看该作者

好好。很好。
7#

geek1024

发表于 2015-6-27 18:53:17 | 只看该作者

好东西,顶
8#

boblin

发表于 2015-8-26 15:34:07 | 只看该作者

good, more different data
9#

奋斗逼

发表于 2015-11-9 09:17:25 | 只看该作者

感谢分享
您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条