最近公司一个项目要从STM32F030C8移植到GD32F130C8。第一次做项目的移植,对GD的单片机也不是很了解,写下这篇博客记载我的移植进程。正在移植的进程中,每天更新,期望自己前进的一起能够给他人一些参阅。
这两款单片机的pin脚根本兼容,归于pin对pin。
下面是我的移植旅程,(我可能要开端走弯路了,看到这篇文章的大侠少侠们如果有更好的办法请纠正)
一、增加芯片类型判别程序:
在库中的发动代码前面加一段,读一下ID code,主动区别一下芯片的厂商和类型,这样就一了百了了。
依照 ARM 和 JEDEC-106 规范,履行下面这个函数
这个程序能够让程序知道当时的芯片是ST的仍是GD的。
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;
}
MCUid = Get_JTAG_ID();//发动芯片之前判别芯片是
回来0x041 是 ST(ST手册Doc ID 13902 Rev 14 的 1055页 31.6.2 和31.6.4 ),
回来0x7A3 是GD 。