欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

DSP与STM32的对比浅见(二)

程序员文章站 2022-03-15 13:49:18
我的DSP项目在一步步深入,经过一轮轮的计算和选型,最终控制器做成了STM32F1与F28335组合体,ARM和DSP分管不同的功能,芯片间进行通信。这篇文章给大家对比一下在编程环节上,STM32系列和DSP系列的区别。一、IDESTM32系列属于ARM架构,最常用的IDE应该是MDK了(除MDK外,也有IAR,ST也推出针对STM32的IDE)。MDK的优点是功能的完整和齐全,从包管理器(支持多间厂商的ARMMCU的库文件下载,各种常用的中间件,以及RTOS等),到仿真器(JLINK、ULINK....

我的DSP项目在一步步深入,经过一轮轮的计算和选型,最终控制器做成了STM32F1与F28335组合体,ARM和DSP分管不同的功能,芯片间进行通信。这篇文章给大家对比一下在编程环节上,STM32系列和DSP系列的区别。

一、IDE

STM32系列属于ARM架构,最常用的IDE应该是MDK了(除MDK外,也有IAR,ST也推出针对STM32的IDE)。MDK的优点是功能的完整和齐全,从包管理器(支持多间厂商的ARM MCU的库文件下载,各种常用的中间件,以及RTOS等),到仿真器(JLINK、ULINK等等),以及编辑器、调试器一应俱全。

DSP与STM32的对比浅见(二)

但MDK的优点也止乎于止了,让人吐槽的地方多不胜数:编辑器的功能停留于20年前、调试器的功能有限、ARMCC的死板... ...我对MDK的依赖也仅止乎于它对仿真器的支持了。网上有很多例子用VSCode、Edit Plus之类的高级编辑器加插件,再搭配GCC来写单片机程序,但这些做法在我看来(我也尝试过),就是缺少了对仿真器的支持,调试程序的时候非常的不方便,所以我放弃了。

DSP用的IDE就是CCS了,CCS是一个基于Eclipse的IDE。一旦基于Eclipse,这IDE就一定逃不开启动缓慢的缺点。相比MDK,CCS的项目管理、代码编辑器功能上略强,但很过分的是CCS的某些基本操作如注释代码你只能用快捷键,在编辑菜单中你找不到注释代码的按钮,也找不到任何快捷键的说明,会不会用全凭你对Eclipse的熟悉程度或者依靠搜索引擎... ...

CCS没有MDK V5的包管理器,在这点上MDK赢CCS九条街。

但在调试器功能上,CCS就真的比MDK强很多了。首先是对变量的监测数量和反应上都优于MDK,另外程序断点的数量上也明显多于MDK(这两点可能与仿真器有很大关系,毕竟我用的STM32仿真器和DSP仿真器不是同一档次的东西),另外CCS可以很轻松的对某个变量的数值变化进行实时跟踪,也能直观的完成实时图表的展示,非常方便。

DSP与STM32的对比浅见(二)

二、库文件

库文件的作用基本就是把单片机的寄存器地址用宏来表示,再把一些时钟、外设的初始化、配置、回调用C函数组织起来,让开发者能相对简单利用单片机的资源。我印象中STM32的库文件是单片机界第一次掀起讨论热潮的底层函数,以往的51、AVR一般只有头文件,而不会做成C函数库的形式。使用库文件后,开发效率当然比直接操作寄存器高,但也带来了程序效率下降、代码空间增大的问题,但STM32的主频、FLASH、RAM相比51、AVR提高得太多,以至于基于库文件的开发也成为现在的主流。

我见过也用过几个品牌的Cortex M单片机,就库文件而言,ST是最用心搞的。以前的标准库已经可以让程序基本用不到汇编的语句了,现在主推的HAL库野心更大,虽然带来了程序效率下降、代码空间增大的问题,但随着新的性能更强的单片机系列推出,我相信HAL库会成为主流。

DSP C2000的库文件相比ST的库文件差距就比较明显了,与NXP的差不多吧,程序中要用到很多宏,宏也是直接使用汇编语句,抽象程度不高。另外C2000的头文件中对寄存器大量使用结构体和联合体进行表达,让开发者必须老老实实的看完手册才能编程,如果能够再做一层中间函数就非常优秀了。相对而言,ST的库文件即使看不透寄存器的操作,但单凭中间函数的定义与说明都可以让开发者容易地上手。

三、仿真器

仿真器这东西对于单片机的开发而言,我认为是不可缺少的。单凭串口输出调试字串,一是麻烦,二来对于复杂的程序不容易定位问题。

Cortex M的仿真器现在是很便宜了,我以前用过Jlink,现在更多用所谓的Jlink OB,也就是SW调试方式的仿真器,也就二三十元的价格,坏了连维修的想法都没有。

DSP C2000的仿真器价格就感人了,国产都要上百,不过配合CCS后,在功能、性能上也比MDK+JLINK要强不少。

本文地址:https://blog.csdn.net/lingcoln/article/details/109251128

相关标签: DSP 嵌入式