虽然有很多新的CPU面世,但也不要简单的怀疑freescale的技术实力。 1)关于计数,LZ没有看文档,或者没有看懂,TPM输入时钟可以是固定频率,也可以是外部引脚,可以工作在递增、递减计数方式..... 2)关于FLASH的ISP,IAP,在flash擦除或写的时候,flash是不能当一般程序ROM的,就是LZ欣赏的c8051f的说明文档里面也有说明的:“在FLASH写/擦除操作期间,程序暂停执行”。 有几种解决方案: 1.代码在RAM区域执行,freescale就是这样的。 2,用2块flash,1快擦写的时候,在另外的flash执行代码,好像sst的是这样的。 3.程序暂停,等待flash完成擦写工作,c8051f应该是这种方式。 这几种方式各有特点。 我以前也觉得freescale的flash操作很麻烦,据说原来HC08的部分CPU的ROM内部带flash函数,后来的HCS08又没有了。经常要自己写flash操作代码,我还只用c,所以头痛。有一次看博客,里面有freescale工程师关于“高可靠!”的程序代码设计规范,其中有1条就是“代码内部没有任何flash操作”。主要原因是防止程序跑飞,误擦除代码或数据。 所以freescale写烧写falsh的步骤是启动CPU,将flash操作代码下载到ram,然后写flash代码。cpu掉电后ram内的flash造作代码消失。 所以应该理解freescale的设计理念,他是在避免编程方便但有使用风险的事。freescale很多应用是汽车电子,可靠性比编程方便更重要。 不要简单地怀疑别人落后了!
|