首先,感谢主办方的免费活动。能够让自己有机会体验国产ARM,感叹国产ARM在不知不觉中飞速发展,作为中国人感到无比骄傲和自豪。
其次,现在由于中美贸易紧张,加上全球疫情,严重影响芯片产业链,导致芯片价格飞涨。于是,国产化替代是当前企业的热门。
F310K8T6芯片资源概述
- Flash空间有64K,SRAM空间8K。空间比较小,移植大型程序,Flash空间会不够,该芯片只适合裸机验证,且代码量不超过64K的工程文件。
- 通用定时器有5个,高级定时器1个。死区互补的PWM最多只能有3对。在需要互补PWM的项目中,例如三电平拓扑等,资源需要考量。
- ADC只有一个,通道数有13路,外部10路,内部3路。某些ADC通路还在定时器互补通路上,可能导致使用互补通路时,无法使用ADC。
- 系统时钟的最大运行时钟频率可以达到108MHz。
总的来说,了解和熟悉国产化ARM芯片的各种外设足够了,但是用于比较复杂的项目,资源还是太少了。
开发平台
对于公司开展项目来说, 编译器的选择是需要考量的。例如,开发DSP时,需要的是CCS编译器。该编译器开源,使用免费。但是ARM开发软件,Keil软件收费,对于大多数爱好者可能破解就行了,但是对公司来讲,使用破解软件会有版权问题,有开源免费的软件就无需考虑购买问题。兆易创新提供了三种开发方式。特别是免费开源的Eclipse 开发更是适合企业用户。
开始第一个工程
国产arm和st开发基本上相同,熟悉arm开发的很快能烧录和运行第一个程序。不过不得不夸奖GD的工程师,GDlink这个工具特别方便,又不用Jlink,省了一大笔成本。一根线满足烧录,供电需求。
在打开例程的时候,要注意修改工程文件名.uvproj,在后面加一个x ,即.uvprojx文件才可以正常使用。
移植国产操作系统RT_THREAD
RT_Thread 移植要点:
- 首先需要完整的能够运行的裸机程序。
- 将RT_Thread nano程序放在工程文件夹里面。同时将bsp文件夹中的rtconfig.h和board文件移至用户文件夹。bsp中其余文件可以删除。
- 用keil打开裸机工程,同时将刚刚移植出的rtconfig.h 和board.c添加进工程文件。并且修改board.c 在其中加入对应外设初始化程序。
- 此外在工程文件中,添加RTT/src、RTT/ports文件夹。分别对应RT_thread资源文件,cpu接口文件。
- 工程中增加RTT 头文件路径。
- main函数中新增线程初始化程序,并且启动线程。
前面的先拿到开发板的朋友已经给出了很详细的步骤了,我就不多说了。
实际项目芯片替代方案的考量
国产化芯片的核心任务就是替代。既然是替代要涉及到新老更替。那么能不能更替,怎么更替,更替后效果怎么样。在实际项目中都需要详细了解。例如DSP替代过程中遇到的,
- 运行时间问题:库函数导致时间过长,TMU库函数优化下能降低100ns,代码优化下,多次叠加计算能省下不少时间。代码优化,逃不开编译器优化,编译器优化有多大风险等等。
- 数量量产问题:首先,价格低是前提,其次要考虑是否量产,产品设计完成后,后面投产无芯片,也是万万不可取的。
- 运行环境:相较于TI芯片,国产芯片温度范围偏低,在某些高温高湿环境下,国产芯片可靠性怎么样。例如,汽车电子,充电桩,光伏并网逆变器等等。还需要市场验证。
当然,还有在实际项目中很多问题需要考虑。当然,国产芯片发展的既有机遇也有挑战。无论如何,市场上也会给出最真实的反馈。