"一次性可编程产品指的是内部的程序内存采用一次性可编程只读存储器(One Time Programmable Read Only Memory,OTPROM,简称OTP)的单片机。OTPROM之资料写入原理同EPROM,可利用编程烧录工具的高电压将资料编程写入。OTP产品为一次性可编程器件,标准产品的程序内存及代码选项区为全空,客户将应用程序代码烧录到芯片中,就能按用户的功能正常工作。这为用户的开发验证和量产提供了极大的方便和灵活性。但是为了节省成本,编程写入之后的资料就不再提供抹除或改写功能。"
对于软件而言,这种芯片只能烧录一次程序,如果修改软件,就只能丢掉芯片,不存在升级的说法。最大的优点就是“节省成本”。
调试主要在开发板上完成,开发板模拟了OTP的工作模式,可以多次下载程序进去。芯片的每个IO口在板子上都有针孔,可以通过连接线,连到实际的设备上。比较郁闷的是如果连出的设备比较多,则连接线就很多,看起来比较头大。
对于已经装机的芯片如果出现问题,调试起来每改一次就得更换一次芯片,比较浪费,于是对测试用例的设计就比其他类型的芯片严格了很多。
今日遇到2个bug,小小记录一下调试过程(前提没有现成的开发板):
1,遥控器按数字键有时候不灵敏,导致歌曲没有跳转。
问题分析:1)遥控器发送的码值机器没有收到 2)短按时间比较短,导致发送了长按的消息类型
测试用例修改:1)在码值接收到的位置添加在屏幕上数字显示 2)将当前消息类型显示出来,(短按显示0,长按显示1)
测试的时候发现,每次按键都有数字,但是按的稍微久一点就会有长按消息发出,而应用中没有处理长按消息
通过烧录一次芯片即可找到解决方案
2,语音芯片灵敏度调整
问题分析:灵敏度范围为0到999,需要在这个范围中找到一个合适的值
测试用例修改:将灵敏度记录到一个变量里,默认为999,增加上下键可以增加和减少灵敏度的值,同时可以在屏幕上显示当前的灵敏度的值。
测试的时候通过按键修改灵敏度,直到找到合适的值。
通过烧录一次芯片即可找到解决方案