5款国产ARM芯片(对标stm32f103c8t6)测试评估

时间:2024-02-19 17:22:05
此文转载自:https://blog.csdn.net/weixin_41565556/article/details/112515813

5款国产ARM-Cortex3芯片(对标stm32f103c8t6)兼容性测试评估

前言:

​ 国产arm芯片近年来不断的开疆拓土,建功立业。然而,随着大变局时代的开启,美国对中国科技的打压,对中国芯片的锁脖,ST芯片价格的一再高涨,更加有力推动了国产arm芯片的蓬勃发展。可以预计的未来,随着国产arm在价格上的优势和性能上的不断提高,随着国内企业对国外芯片不确定性恐惧的逐渐加深,国产arm市占率必定持续攀升。

​ 因此, 很有必要把几款国产芯片拿来说说事。一般的设计者都希望能直接兼容替代对应的ST产品,本文也主要探讨各个产品基本的兼容性。如程序运行、下载等。拿来的5种国产芯片分别是:

GD32F103c8t6(北京易兆创新)

APM32F103c8t6(珠海极海)

HK32F103c8t6(深圳航顺)

CKSF103c8t6(无锡中科芯)

CH32F103c8t6(南京沁恒)

五种数据手册可下载:https://download.csdn.net/download/weixin_41565556/14121823

测试平台:STm32最小系统,只更换芯片,其余不变,

软件:keil和Stm32CubeProgrammer

程序:HAL库,blink程序

工具:usb转串口

在这里插入图片描述

一、管脚兼容性

每个芯片的手册里的管脚定义分别如下5个图,可以看到都兼容ST芯片。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

二、结构框架、总线安排、时钟分配等

为保证兼容性,架构基本一致。因为内核一样,所以只能最多在外设等安排上进行删减,总体上和ST结构类似。这里只列举ST公司和CH公司的参考比较。
在这里插入图片描述

三、寄存器、存储器地址映射

**这个决定了芯片外设是否兼容,能否可以使用st官方驱动库。**不一样的地方、或者有增强的地方、或者省去的地方都可以一目了然,并且按照变化来增加或者删减相关配置。其中只有GD芯片没有按图的方式,而是以表的方式给出,其它数据手册都是按照自己的图的方式给出。比较可以看出,基本外设地址都是一致的,部分的器件有功能的增加和减少,**这也意味着绝大多数的功能是可以兼容的,但用到一些特定的功能时,需要参考官方例程或者库,或者移植寄存器地址设置。**例如CH公司在地址0x4002 3400处增加了自己的USBHD地址映射,这是其他芯片没有的,加之其自有的BOOT,所以能够轻松实现USB下载固件。其它可以按下图仔细比较异同。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

四、自带的Bootloader兼容性评估

还是以ST的串口下载为例,以目前官方主推的STM32CubeProgrammer软件为标准,看看是否能够顺利下载并运行点灯程序。

在这里插入图片描述
程序采用ST官方的HAL库,主程序代码如下:blink灯

int main(void)
{
  /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
  HAL_Init();
  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
  while (1)
  {
    /* USER CODE END WHILE */
	HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13, GPIO_PIN_RESET);
	HAL_Delay(1000);
	HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13, GPIO_PIN_SET);
	HAL_Delay(1000);
    /* USER CODE BEGIN 3 */
  }
  /* USER CODE END 3 */
}

在这里插入图片描述
测试结果:

GD32、APM32可以通过此软件下载,其它几种不可以,说明GD32和APM的BootLoader是和STM32兼容的

五、flash下载算法兼容性评估

两种方法比较,一种是在编译环境中,如keil里采用stlink下载,算法仍然选择ST中密度的。如下图。

在这里插入图片描述
在这里插入图片描述

另外一种方法是仍然用STM32CubeProgrammer软件下载,采用SWD方式下载。硬件连接方式和软件配置如下:
在这里插入图片描述
在这里插入图片描述

测试结果:

GD32、APM32、HS32、CSK32都可以可以正常下载,只有CH32不可以,说明只有CH32的flash算法和ST不兼容。

值得说明的是,CH给出了自己的算法,但需要安装依赖包器件库,这样在keil里也可以正常下载,另外他自己的bootloader支持串口和usb下载,具体可参考博文:https://blog.csdn.net/weixin_41565556/article/details/111619741
部分公司也提供了自己的器件库,可方便在keil环境里开发。

六、总结

国产芯片都有较好的兼容性,并且各有特点,和ST对标,绝大部分内容都是兼容的,其它自身特点和新功能需要仔细查看数据手册。