掌上单片机实验室 — 编程环境(续)(6)

        最近在帮朋友做个项目时,再次使用 STM32Duino,发现ST公司对STM32Duino做了较大的改进,前文我所抱怨的没有详细技术文档之事如今也增加了,为此,赶紧续文一篇,将此好消息与大家分享。

        第一:ST公司已经将STM32Duino升级到2.1 版本,从2.0版本开始启用新的Arduino开发板管理链接,老的已经不再使用了,详见:

        https://github.com/stm32duino/wiki/wiki/Getting-Started

        原来的链接在Arduino IDE 开发板管理中已提示弃用:

        第二:升级后的库安装目录有所改变:

       目录名从STM32改为STMicroelectronics,应该是为了日后增加更多的旗下产品,目前除了STM32外,STM8系列也支持在Arduino IDE 下编程了:

        具体内容和原来类似:

        第三:提供了API的说明文档,虽说不是很全,但总算是有了:

        https://github.com/stm32duino/wiki/wiki

        从目前状态看,ST 似乎很用心于 Arduino 环境的支持,几乎所有最新产品都在第一时间支持了,从核心库(core)的更新状态看,应该是十分及时的:

        从上述状态看,基于 Arduino IDE 编写应用程序,即便是作为产品开发,也未尝不可。毕竟方便许多,尤其是不常编程的朋友,每次使用那些专业开发工具,进入角色太费劲。如果遇上版本更新有大的改变,就更费事了。

        基于 ArduinoIDE 编程的唯一不好就是编译速度太慢,不知道是何故所致。

        据说可以改用 VSCode + PlatformIO 平台,同样可以享用和 Arduino IDE 类似的简单性,但编译速度提升了很多,我还在尝试,待有了真实体验后再与大家分享。

        使用 ArduinoIDE 的另一个不足就是无法实现经典开发方式(仿真机 + MDK)下的断点调试功能。

        但我个人觉得,逼着自己使用和软件开发人员类似的Dump 方式(linux下应该都是这样调试的)调试程序也是不错的选择,即在程序中添加语句,使用串口输出方式,将需要观察的数据和状态送出来。虽说不如断点来的方便,但程序是全速正常运行的,其运行状态更接近真实环境,这样调试完成的程序,应该更不易出现bug。

        以往由于单片机资源有限,不敢奢侈的添加无用的程序、占用有限的RAM,但现在Cortex-M系列单片机不论是程序空间还是变量空间,均可以允许为了调试增加一点代码,而且所有的单片机均带一个以上的串口,在资源上应该不成问题。

        可以用简单的增加代码方式,将程序中所关注的内容送出来,通过串口调试助手观察。

        也可以在程序的串口功能代码中,增加内存读写命令处理,编写相应的测试软件,根据需要随时读取单片机的内存状态。

        尤其对于Cortex-M系列单片机而言,其内存为线性空间,即ROM、RAM、外设特殊寄存器均在同一存储空间,同步划分不同的地址段区分。如此一来,使用内存读写功能不但可以监测到RAM空间,还可以查看外设寄存器的状态;这样不只是在程序调试期间可以用于排除故障,在产品运行期间,还可以用于分析故障原因。

        很多故障现象在设备断电后即不可重现,需要在故障状态下分析,此时仿真机是无法发挥作用的。

        当然,如果单片机已经死机导致串口无法通讯,那这种方式也是无法发挥作用的。

        不过,如果能基于RTOS编写多任务框架程序,系统某个功能异常,但串口可以工作的可能性会大大增加,从而使这种方式具备更好的实用性。

        这些已经是题外话了。

        总之,ArduinoIDE 这个环境似乎被很多专业芯片厂家所看中,有越来越多的芯片支持在此环境下编程。

        这大概就是开源的力量!

—————————————————————— 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值