查看: 15354|回复: 77
收起左侧

如何快速的从 ST 平台转换到 GD 平台

[复制链接]

5

主题

66

帖子

359

积分

资深技术员

 楼主| 发表于 2013-7-10 09:44 | 显示全部楼层 |返回版面|阅读模式
本帖最后由 GONGO 于 2013-7-10 10:23 编辑

     首先,先要明确的是 GD 是硬件兼容蝴蝶的,但是由于提高了运行速度、以及内部工艺的不同,所以软件上可能都或多 少需要改动一点的!

 这里主要是讨论 如何快速移植原有的应用。






评分

参与人数 1威望 +10 收起 理由
锐鑫同创 + 10 很给力!
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里 http://open.21ic.com 移步更多21ic独家微课:http://open.21ic.com/list/3/0/0

5

主题

124

帖子

479

积分

资深技术员

发表于 2013-7-10 09:57 | 显示全部楼层 |返回版面
如果原先用了do while之类软件延时,则换成GD后速度加快很多,就可能导致控制外设的时序出错
所以应加大延时,根据我的经验,要增加一倍以上才可靠
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里 http://open.21ic.com 移步更多21ic独家微课:http://open.21ic.com/list/3/0/0

5

主题

66

帖子

359

积分

资深技术员

 楼主| 发表于 2013-7-10 10:02 | 显示全部楼层 |返回版面
本帖最后由 GONGO 于 2013-7-10 10:32 编辑

Q 01ST上面原来的程序可以直接在GD上运行吗?
A 01:对于大部分原来运行在 ST 系列 Flash 中的程序,是需要少量修改和调试的。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里 http://open.21ic.com 移步更多21ic独家微课:http://open.21ic.com/list/3/0/0

18

主题

218

帖子

1805

积分

版主

发表于 2013-7-10 12:38 | 显示全部楼层 |返回版面
GONGO 发表于 2013-7-10 10:02
Q 01:ST上面原来的程序可以直接在GD上运行吗?A 01:对于大部分原来运行在 ST 系列 Flash 中的程序,是需 ...

期待后续。
邮箱:francis@realsense.com.cn GD32超级QQ新群:466059555
专业支持,用心服务。www.realsense.com.cn
GD32零售地址:gd32.taobao.com
     

79

主题

461

帖子

1495

积分

助理工程师

发表于 2013-7-10 16:58 | 显示全部楼层 |返回版面
Pin对Pin吗?STM32F103VCT6
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里 http://open.21ic.com 移步更多21ic独家微课:http://open.21ic.com/list/3/0/0

5

主题

124

帖子

479

积分

资深技术员

发表于 2013-7-10 17:02 | 显示全部楼层 |返回版面
本帖最后由 锐鑫同创 于 2013-7-10 17:20 编辑

是的,所有型号Pin to Pin兼容
GD兆易半导体——周立功单片机
www.zlgmcu.com/GigaDevice

18

主题

218

帖子

1805

积分

版主

发表于 2013-7-10 17:22 | 显示全部楼层 |返回版面
cym_anhui 发表于 2013-7-10 16:58
Pin对Pin吗?STM32F103VCT6

目前只兼容到VB,VC的要到9月份才出pin to pin的。
邮箱:francis@realsense.com.cn GD32超级QQ新群:466059555
专业支持,用心服务。www.realsense.com.cn
GD32零售地址:gd32.taobao.com

45

主题

1070

帖子

4497

积分

版主

发表于 2013-7-11 08:16 | 显示全部楼层 |返回版面
好贴  期待后续。
欢迎进入电动车版块

5

主题

66

帖子

359

积分

资深技术员

 楼主| 发表于 2013-7-11 10:21 | 显示全部楼层 |返回版面
本帖最后由 GONGO 于 2013-7-11 10:23 编辑

Q 02使用 ISP 下载需要注意的问题
A 02:GD 基本兼容原来的 ST ISP下载程序,但是由于内部实现不同,GD 的全片擦除时间稍长了一点。
      原有的 ST 发布的以及专业的下载器基本不需改动。(一般会有一个配置参数)            
      对于自己开发过 ISP 的朋友,需要把片擦除的等待时间加长一点。
      对于使用 Jtag 和 SW 编程的用户是没有影响的。
                           
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里 http://open.21ic.com 移步更多21ic独家微课:http://open.21ic.com/list/3/0/0

5

主题

66

帖子

359

积分

资深技术员

 楼主| 发表于 2013-7-11 10:41 | 显示全部楼层 |返回版面
本帖最后由 GONGO 于 2013-10-15 15:11 编辑

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

                uint16_t Get_JTAG_ID( )
                {
                        if( *( uint8_t *)( 0xE00FFFE8 ) & 0x08 )
                        {
                                return   ( ( *( uint8_t *)( 0xE00FFFD0 ) & 0x0F ) << 8 ) |
                                              ( ( *( uint8_t *)( 0xE00FFFE4 ) & 0xFF ) >> 3  )  |
                                              ( ( *( uint8_t *)( 0xE00FFFE8 ) & 0x07 ) << 5 ) + 1 ;
                        }
               
               
                        return  0;
                }
         
      返回  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 了。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里 http://open.21ic.com 移步更多21ic独家微课:http://open.21ic.com/list/3/0/0

66

主题

1613

帖子

6165

积分

高级工程师

发表于 2013-7-12 11:13 | 显示全部楼层 |返回版面
定时器和PWM,IIC,RTC能否加强?
闲看他人瞎折腾。

5

主题

66

帖子

359

积分

资深技术员

 楼主| 发表于 2013-7-12 13:44 | 显示全部楼层 |返回版面
本帖最后由 GONGO 于 2013-7-12 15:38 编辑
lpcfans 发表于 2013-7-12 11:13
定时器和PWM,IIC,RTC能否加强?

具体指哪方面?
GD和ST 相比,这些模块的功能定义基本一致,性能有一定提高,主要是速度快了!
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里 http://open.21ic.com 移步更多21ic独家微课:http://open.21ic.com/list/3/0/0

66

主题

1613

帖子

6165

积分

高级工程师

发表于 2013-7-12 14:39 | 显示全部楼层 |返回版面
GONGO 发表于 2013-7-12 13:44
具体指哪方面?
GD和ST 相比,这些模块的功能定义基本一致,性能有一定提高,最要是速度快了! ...

16位能否做出32位。
闲看他人瞎折腾。

5

主题

66

帖子

359

积分

资深技术员

 楼主| 发表于 2013-7-16 17:33 | 显示全部楼层 |返回版面
本帖最后由 GONGO 于 2013-7-16 17:57 编辑
lpcfans 发表于 2013-7-12 14:39
16位能否做出32位。

你是指用两个 TIM 拼接出一个32 TIM 吧。
这个是可以的,不过拼的时候选 TIM2-4
不要选TIM1

可以按以下方案测试:



比较模式
TIM3 二分频,TIM4+TIM2 组成一个 32 bit 定时器。这样当 TIM4+TIM2   计数一个偶数时正好 和 TIM3 二分频以后的值可以重合。
用TIM3 CCR1 比较一个超过 0x8000的值, 把这个值*2 作为 32 位计数器的输出比较值,
TIM4 作为 32位计数器 的 MSB(TIM4_CCR1=MSB),TIM2 作为LSB( TIM2_CCR1=LSB )
TIM4_PSC = 0xFFFF. TIM2 配置成从,并且 one pulse mode , SlaveMode = Trigger
把TIM4  的 OC1 输出作为触发源输出给 TIM2,TIM4 CCR1输出比较启动 TIM2执行一次。
用TIM1 同时触发TIM3和TIM4

用示波器测量 TIM2 和 TIM3 的 CH1 输出,可以看到完美的重合。
如果有兴趣,用MCO(PA8)把 System clk 输出出来,一起测一下,会发现,一个时钟都不差。
说 32 位 就是 32 位!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里 http://open.21ic.com 移步更多21ic独家微课:http://open.21ic.com/list/3/0/0

26

主题

1316

帖子

4536

积分

中级工程师

发表于 2013-7-16 17:41 | 显示全部楼层 |返回版面
GONGO 发表于 2013-7-16 17:33
你是指用两个 TIM 拼接出一个32为TIM吧。
这个是可以的,不过拼的时候选 TIM2-4
不要选TIM1

赞专业。
邮箱:gd32@realsense.com.cn GD32超级QQ群:91270935
专业支持,用心服务。www.realsense.com.cn
GD32零售地址: http://gd32.taobao.com

0

主题

13

帖子

337

积分

资深技术员

发表于 2013-7-17 10:43 | 显示全部楼层 |返回版面
灰常专业,
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里 http://open.21ic.com 移步更多21ic独家微课:http://open.21ic.com/list/3/0/0

1

主题

56

帖子

173

积分

禁止发言

发表于 2013-7-17 10:54 | 显示全部楼层 |返回版面
GONGO 发表于 2013-7-16 17:33
你是指用两个 TIM 拼接出一个32位 TIM 吧。
这个是可以的,不过拼的时候选 TIM2-4
不要选TIM1 ...

这种带技术应用分析讨论的回复最棒了~
21ic公开课,21ic网友共同的学习圈子!学单片机、嵌入式、模拟、电源……就看这里 http://open.21ic.com 移步更多21ic独家微课:http://open.21ic.com/list/3/0/0

66

主题

1613

帖子

6165

积分

高级工程师

发表于 2013-7-17 11:14 | 显示全部楼层 |返回版面
GONGO 发表于 2013-7-16 17:33
你是指用两个 TIM 拼接出一个32位 TIM 吧。
这个是可以的,不过拼的时候选 TIM2-4
不要选TIM1 ...

多谢。
专业。
闲看他人瞎折腾。

66

主题

1613

帖子

6165

积分

高级工程师

发表于 2013-7-17 11:15 | 显示全部楼层 |返回版面
GONGO 发表于 2013-7-12 13:44
具体指哪方面?
GD和ST 相比,这些模块的功能定义基本一致,性能有一定提高,主要是速度快了! ...

STM32的IIC和RTC不怎么好用。IIC软件模拟的,没用硬件IIC.
RTC对外部的晶振要求高。

TIMER,PWM希望以后新产品能做到32位。

谢。
闲看他人瞎折腾。

18

主题

218

帖子

1805

积分

版主

发表于 2013-7-17 15:33 | 显示全部楼层 |返回版面
lpcfans 发表于 2013-7-12 11:13
定时器和PWM,IIC,RTC能否加强?

rtc和iic方面,gd32也进行了改进。
邮箱:francis@realsense.com.cn GD32超级QQ新群:466059555
专业支持,用心服务。www.realsense.com.cn
GD32零售地址:gd32.taobao.com
您需要登录后才可以回帖 登录 | 注册

本版积分规则

分享 快速回复 返回顶部 返回列表