阶段性总结:复旦微的FMQL10S400ZYNQ芯片+国微SM25QH256MX的FLASH的使用感受

文章目录

  • 前言
  • 一、理论时间的分配及实际时间的花费
    • 1.理论时间
    • 2.实操
  • 总结


前言

从六月至今,这个国产化项目暂时可以告一段落了,真的累死了,从上上周到现在,大多每天干到11点,睡觉都在想着怎么改代码。现在也该总结一下为什么会花费这么多时间了,总结教训,希望下个项目有改进,不要在不必要的地方浪费时间了(如果还是国产化项目话的话,那可能还是有无法预料的问题)。

一、理论时间的分配及实际时间的花费

1.理论时间

当时给的开发时间是两周左右。可是实际花了将近两个半月的时间,幸好没有延迟使用,真险。因为当时一些需要的单个功能已经做出来了,所以认为做起来会快一点,但无法预料的事情打乱了节奏。

2.实操

(1)QSPIFlash
第一个安排调试的功能是调试QSPIFlash,当时开发板使用的是华邦的32 MB的flash,以前项目组有调试这个flash的经验,所以问了同事怎么去调,后来证明以前的经验不能全部复用。这在上个文章中说过了,还是自己实力不够。
(2)uart中断和ttc中断
第二个是调试中断,因为需要使用串口中断去接收控制指令和传输数据。这个调起来没问题。调完这个调ttc中断,调起来也没问题。但是他俩组合在一起出问题了,程序不能正常运行,具体现象记不清了,记得是中断不正常运行,这在上个文章中说过了,还是自己实力不够。

(3)GPIO
这个是个重头戏,调了一周吧,联合上位机、fpga、PL端共同调试。比较繁琐,还是自己实力不够。

(4)AXI-BRAM
这个问题也是调多核通信的时候发现的,刚开始没怀疑BRAM的问题,以为只要地址对了,直接操作就行,所以用了一个项目板的bit进行固化在开发板上,怎么也调不通,差不多也挣扎了有一周,请教同事后,说用统一匹配的bit试试呢,一试通过了。。。。以后调项目一定不 能想当然!!!!!

(5)FSBL
调试这个功能是因为不能正常引导bit和应用程序。也是调了好几天,才发现是vivado工程中配置DDR的问题,导致倒入procise后,生成的FSBL无法使用,还是自己实力不够。

(6)多核
这个功能至今未正常调通,因为四核只能通信一次,不能第二次正常通信,不过我相信这个快调通了,因为以往的现象是第二核一直挂掉,后来应该是找到了第二个核挂掉的原因,是DDR的问题,哎,这个DDR的问题是速度跑的太快了,800M,调到400M,第二个核正常了,但是还是未成功,但我感觉离跳出来的时间很接近了,只是后来开发板挂掉了,要等等了。这是第一次调多核的功能,理解不透彻。这个至少断断续续的调了10天,如果DDR跑慢的话,我估计调出来了。

(7)浮点运算
这是最大的一个坑,因为为了浮点运算的速度,整整调了有一周,所有方法都想了,速度就是上不去。以前在单个工程都调出来了,难道是因为放在一起不行了?那就注释掉别的功能,还是不行;那就重新生成工程,还是不行;寻找复旦微的售后,问他他也不知道为什么。实在没辙了,开始怀疑是procise版本的问题了(怀疑的原因是我看到两个版本的procise生成的配置文件不一样!!!),果然一换,可以了,哎,那几天都调崩溃了,这是复旦微的售后推荐我用新版本的procise,说老版本的不好用,真坑!

(8)DDR
这个就是测试读写数据的时候,发现数据在读写几遍的时候,数据会出错,发现是速度太快的原因。
(9)融合
融合的各项小功能的时候,也是问题频出,还是各个功能开发的独立性不好,需要加强提高!

总结

经过这个项目的洗礼,学到了很多东西,要充分对功能进行测试,要保证性能,要规范代码格式,要优化代码结构,要会排查遇到的各种问题,最重要的是要提前准备,提前将程序完成,不要等到最后再测试,再完成,要把事情做在前面,因为等到了各方联合测试的时候,会手忙脚乱,也会耽误别人的时间,希望下次做项目能做的完美一点。也学会了用CSDN记录遇到的问题,这样不会怕忘记的时候记不起来了。忽然想到了之前调试一个DSP控制PWM波控制电机的项目了,那个也是有一个问题调了几天,好像是有一个控制引脚使用了普通的IO控制,没有复用为PWM的电平,导致最终联调的时候使用控制不了,也是找bug找的崩溃了,最后一天晚上的近12点才找到问题是出在了应该使用PWM的专用脚去控制电平,而不是自己自作聪明,懒省事的使用普通IO口,因为那个IO在硬件设计上已经放在了PWM的引脚上,我自己认为反正这个脚只是输出一下高低电平,不是输出PWM波的脚,就没有复用,而是直接当做普通IO用了,导致出现了一个隐藏最深的bug出现了!

																			***五六七,奥利给***

你可能感兴趣的:(国产化,arm)