有时候涌现bug的时候,非常难找问题,要一段一段屏蔽然后测试。
在刚开始打仗开拓的时候,我非常不习惯用在线仿真,大概是由于没用过。
记得有一次进了一家公司做行车记录仪,用的台产GRAIN的单片机。
那时候基本上没什么资料,就一个dada sheet和demo程序。
在开拓之前,老大安排了给我一个任务,便是把这个仿真环境先给搭起来。
相称于是他们原厂没有的东西,让我去搞定,这个芯片是基于Fa626TE core的32位掌握器。
网上的资料太少了,光是测试搭建这个环境花了半个多月,末了还没搭建出来。
那个时候完备是懵逼状态,摸着石头过河,不知道仿真啥事理,反正网上搜到一个我就试一个。
做这个之前基本都是在做51的东西,以是对我来说太难了,加上资料又少,便是跨级打boss。
后面我有点不耐烦,就跟老大说:这个我不用仿真了,以前不用仿真还是也能把产品做出来。
后来老大思考了一下,还是希望能想把仿真搞出来,我有点崩溃,实在想不明白为何他这么固执。
当我后面逐步打仗32位的单片机多了,开拓的产品多了,我才真正体会到了仿真的好处。
绝不夸年夜地说,用好仿真,你的开拓效率至少提高3倍,这里说的不是仿真软件。
拿stm32单片机举例,用st-link+keil在线硬件仿真,不但能监控程序怎么跑的,还能监控跑过程中变量的值的变革,指针地址的变革。
用熟了你就知道,特殊是做指针的运用,实在太喷鼻香了,有时候指针指来指去,你的理解可能只是在自己的理论层面上,而用仿真你可以监控到指针的指向变革。
那像51这种,不能像stm32那样用st-link在线仿真怎么办?(现在51彷佛也有了,详细没用过)
大家别鄙视51单片机,有些51内核的ROM都有几十K,终极产品程序的大小并不会比stm32的小。
这种如果没仿真,那涌现一个BUG,够你调半天了。
在过去的开拓中,我也总结了一些履历,大家可以借鉴下。
我一样平常是借助产品硬件上统统能作为提示的东西,比如说:
1.数码管
2.LCD
3.LED灯
4.串口
我在开拓程序的时候,第一个做切实其实定是点亮一个LED灯。
点亮LED能够最快地让你验证硬件核心部分(单片机最小系统)有没有问题,
点亮往后,我再开一个定时器它每秒闪烁1次,直到产品大多数功能完成。
这样做的好处便是可以验证你程序有没有跑着跑着去世机之类的问题,如果有,那就及时办理,不然后面程序大了找起来会更难。
如果有数码管和LCD,调试起来会更加得心应手,直接在数码管和LCD上显示要调试的数据即可,虽然没仿真这么方便,但是总比都没有好。
还有便是串口,一样平常硬件在第一次打板的时候,我都会把串口预留出来,方便调试,特殊是做物联网产品,串口调试可以说是必备的。
紧张浸染便是用来监控MCU和WiFi模组之间的通讯数据。
末了,还有一种情形便是产品啥都没有,连LED都没有,这种情形该怎么办?
这种情形就只能任天由命了,完备靠你的开拓履历。
一样平常第一板硬件设计成这样的,都是低级水平工程师,履历不敷。
即便你产品用不到那些资源,好歹把串口或者LED预留出来,把整体功能调试完往后终极一板把它去掉不就行了?