记全国产化的一个小测试系统的一次全程体验

  从六月份到现在,一直在学习使用并测试国产化平台项目,使用的主控芯片是复旦微的FMQL10S400ZYNQ芯片,使用的外挂flash是国微的SM25QH256MX的FLASH芯片。这两款都是祖国出品的佼佼者,向他们致敬,打破外佬封锁,为实现国产化突破重重障碍,确实牛逼!

  赞赏归赞赏,建议也得提,虽然我是一个字母搬运工。你们资料给的太少了,即使我时刻在支持国产,但不得不说外国佬做的东西给的资料就是详细啊,用起来得心用手,资源广泛,生态环境好,这又让我想起了我刚参加工作时,去听我们单位一位院士老前辈的报告,老前辈说的大意是”为什么现在我们的芯片越来越差,是因为我们自己不用,我们自己不用,设计芯片的厂家就没钱,没钱就设计不出来高性能的芯片,设计不出来高性能的芯片,我们自己更不会用,如此,恶性循环,好在,现在开始注重国产化了,我们的春天到来了。“

  扯了这么多还是想说,芯片商多做一些文件支持、技术支持,像xilinx的芯片资料真是非常多,推广的也多,PDF动不动就是几千页,真是平常遇到的问题,里面都能找到解决的方法。而复旦微的资料,目前销售给我们的,寄存器介绍+寄存器讲解+例程+各种有的无的PDF,也就一两千来页吧,真的开发起来太费劲了,而且技术支持也不太好,可能芯片商太忙了。使用的flash芯片是国微的,资料更少了,简简单单的介绍了怎么用的,还不详细,资料上留的联系方式,区号都写错了。但是技术支持非常给力,咨询请教的问题都实时给出了解答,非常赞!这样咱们才会愿意用啊,才会越做越好啊!

开发的过程

  我们项目组使用复旦微的zynq,目前是开发了一些裸机的测试程序,主要是为后面做项目做铺垫。有串口的测试、MIO、EMIO、TTC、QSPI、多核的启动、DDR测试等功能,开发的过程还是挺艰辛的,因为总感觉哪地方不对劲,但又说不出来,可能是技术不到位吧,还要努力学习!复旦微提供了一些例程,一些库函数,说实话,这些函数还是挺丰富的,但是大佬您给个说明啊,不能让我们猜是怎么用的啊。。。。

遇到的坑

  在做串口中断测试的时候,跑复旦微提供的例程可以跑过去,自己修改的就是不行,无奈,肯定自己的问题啊,因为官方是可以过去的,就找呀找bug,找了几天小bug,发现中断这玩意,似乎有顺序要求,调试了几次确实有影响,算是自己遇到的第一个坑吧,但总算爬出来了,这个还给复旦微的技术人员反应了,不知道他测试了吗。还是再说一下中断的事情,做MIO测试时,发现有些中断条件无法触发,因为我们暂时用不上他,也就未去解决。还有固化的程序的时候,那个procise不太好用,一直在用IAR去固化。还有就是操作qspi flash 的时候,这个是我第一次去这么底层的操作flash,刚开始使用的国微的这个片子,反正调着调着出问题了,解决了半天没解决掉,由于时间紧急就换了个flash,是winbond的,操作起来真好用,因为复旦微是支持这个片子的。。。但是我们需要将32MB 的空间都读写出来,这就又让我遇到了一个大坑,基于同事的以往经验,是使用4字节地址去读写高128Mb的地址空间,我就开始了为期五天的漫长摸索时刻,又是用指令去切换,又是擦除,读写的,怎么也读不到高128Mb,后来我受不了了,去搬来了我们无所不会、无所不通、无所不精的技术大拿,在我的误导下,他帮我研究了一下午,说是不是高128Mb的地址被QSPI1占用了?!好吧,我这个傻帽,然后依据大拿的指示,调整方向,不用4字节模式了,使用高低地址切换的方法,终于读到了完整的flash地址空间。winbond的高低地址切换指令是:往0xc5寄存器写0x0001,切换高地址区间;往0xc5寄存器写0x0000,切换低地址区间。winbond用的爽爽的,无奈,还是要换回国产的才行啊,就又开始迎战国微的片子了,换回来之后,发现直接不能固化程序了,喊着我的师傅来解决这个问题,搞了三天,发现是flash里面的状态位被改变了,这也让我们想起了之前那个国微的片子不能使用的原因了,大概率是状态为被改变了。因为zynq固化和启动是支持x4或x8的,而这个被改变的状态位恰好是QE位,也就是使能X4位,直接不使能了,也就无法固化和启动了。表征的现象就是校验和出错!修改的方法是:往0x01寄存器写0x40,将QE位重新使能,这是一个非易失的寄存器。由于有了调试winbond 的经验,这次读写高地址直接就冲向了高低地址切换的方法,国微的切换方法是:往0x18寄存器写0x0001,切换为高地址。问我为什么知道是这样做的,我翻看国微给的手册,没有提到这一点,只有一个BNAK寄存器说有这个功能,但这个功能怎么实现的,不给写,就去联系国微的FAE,FAE发给了我一个指令表格,我看到了BANK寄存器的地址,就操作成功了,试问国微为什么你们有这个功能,有这个表格为什么不放在手册里呢?就是玩吗?就此还有一个问题,为什么QE位会被改掉呢?经翻阅程序,发现在操作flash 的时候,有一段解锁flash 的程序,会修改QE位,将其注释掉,就好了。(据说flash不需要解锁,哎,学识太浅,基本功不扎实)

  至此,我们的测试系统已经搭建的差不多了,也让我们松了一口气,也迎来了高温假,明天再过去多测几把,搞稳定了再说。

  细细回想,遇到的bug大多还是自己的功力问题,国产加油!国产化加油!

  这好像是我第三次用国产芯片了,第一次记得是做的一个智能电表的项目,使用的是深圳锐能微的片子,那个真是稀烂,我没记错的话,一个pdf文档,一个非常复杂的DEMO程序,别的再无其他。

  第二次使用的国产片子就牛逼多了,不提供任何软件文档,有问题直接询问设计这个片子的设计师,因为这是我们所自己设计的片子,可以pin to pin 软硬件无需改动,原位替代stm32f103的一款国产芯片!非常牛逼,我实际使用过,有需要的同行可以试试啊,我使用的是军用的,型号就不透漏了。民用的也有,叫什么我也忘记了,好像也是什么103吧,这个好像还有开发板,有需要的可以给你们咨询一下。无情的为我们的芯片打一波广告。

                              五六七、奥利给!

复旦微的FMQL10S400ZYNQ芯片+国微SM25QH256MX的FLASH的使用体验相关推荐

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

    文章目录 前言 一.理论时间的分配及实际时间的花费 1.理论时间 2.实操 总结 前言 从六月至今,这个国产化项目暂时可以告一段落了,真的累死了,从上上周到现在,大多每天干到11点,睡觉都在想着怎么改 ...

  2. 复旦微的FMQL10S400ZYNQ芯片的多核操作

    复旦微的FMQL10S400ZYNQ芯片的多核操作 前言 写这篇文章,是因为我还没有做出来.以此记录我是怎么才能做出来在AXI-BRAM下的多核通信功能. 一.多核通信是什么? 项目需要实现多核通信, ...

  3. php版微政务模块下载,国微cms小学幼儿园方案(原PHP168 S系列) v20170220

    国微cms小学幼儿园方案(原PHP168 S系列) v20170220更新日志 1.修正苹果mac浏览器打开自动跳转到手机版 2.修正部分站点克隆时候数据没有克隆到的问题. 国微CMS幼儿园方案简介 ...

  4. 中汽中心软件测评中心与紫光国微达成芯片认证合作

    10月23日消息,近日紫光国微作为芯片厂商代表,与中汽中心检测认证事业部软件测评中心(简称"软件测评中心")就汽车安全芯片ACS-EAL4+测试认证合作进行签约. 汽车芯片作为关乎 ...

  5. 芯片|紫光国微拟对参股子公司紫光同创增资 后者从事商用FPGA相关业务

    [TechWeb]8月8日消息,深交所上市公司紫光国微昨晚发布公告称,拟对参股子公司紫光同创增资,后者从事商用FPGA相关业务. 紫光国微公告截图 交易概述 紫光国微表示,深圳市紫光同创电子有限公司( ...

  6. 互联网日报 | 7月8日 星期四 | 小鹏汽车港交所上市;同程生活宣布申请破产;紫光国微市值突破千亿元...

    ‍ ‍今日看点 ✦ 字节跳动再声明:公司暂不具备上市条件,目前无上市计划 ✦ 小鹏汽车正式登陆港交所,成港股"智能电动车第一股" ✦ 同程生活宣布申请破产:多方努力仍无法摆脱困境 ...

  7. 紫光国微:目前业务以芯片设计为主 制造占比较低

    7月4日,有投资者向紫光国微(002049)提问,"董秘您好:其实存储芯片设计业务已经不在合并范围内已被市值所反映,那么想问一季度集团公司在芯片业务设计和制造上的毛利实际有多大?" ...

  8. 大华股份发布Dahua Think #战略;国微思尔芯发布芯神瞳逻辑矩阵LX2;爱设计获数千万元融资 | 全球TMT...

    国内市场 2021大华股份战略升级发布会在线上举行.本次发布会以"Dahua Think # 云联万物.数智未来"为主题,多平台同步直播,就数智赋能城市和企业可持续.绿色.高质量发 ...

  9. 紫光国微财报一枝独秀 2021年净利润三位数增长靠什么

    疫情肆虐,全球供应链短缺,高科技产业一片哀鸿.然而,智慧芯片龙头紫光国微(股票代码002049)却晒出一份靓丽的成绩单. 紫光国微公告显示,2021营收同比增长63.35%,归母净利同比增长142.2 ...

最新文章

  1. IntelliJ IDEA注册码
  2. 设为首页 收藏(IE可用)
  3. RSA加密和DH加密
  4. JS学习之Node类型
  5. 在三台Redis节点上部署哨兵集群以及主备切换、故障恢复的容灾演练中哨兵各自的日志信息、状态查看分析
  6. MFC获得主窗口和父窗口指针
  7. poj3714 最近点对
  8. 《学习OpenCV》课后习题解答1
  9. 【机器学习】K-Means(非监督学习)学习及实例使用其将图片压缩
  10. 微信开发 ---- 设置服务器配置
  11. SQL Server数据库备份工具
  12. 如何高效阅读一篇英文学术类论文?
  13. 开源项目material-dialogs使用
  14. 如何对客户行为进行数据分析?
  15. 新手怎么用word制作表格
  16. 浅谈老妈的QQ号被盗之后
  17. XSS.haozi.me刷题
  18. 怎么用python画皮卡丘_实现童年宝可梦,教你用Python画一只属于自己的皮卡丘
  19. swoft框架,开发遇到基本坑
  20. 国内如何打开 Coursera?(Mac系统)

热门文章

  1. 兼容IE浏览器的PrintArea
  2. 在Cmakelist中添加opencv遇到的问题
  3. python自动发弹幕_一个直播弹幕机器人诞生过程,Python制作自动发送弹幕小程序...
  4. Matlab打开并控制GigE接口相机
  5. 2019.9.3 远景智能后台开发一面
  6. java-php-python-springboot中医保健网站计算机毕业设计
  7. STM32-F407入门学习专题(七) TIM—基本定时器
  8. SAP License: SAP ERP管理软件系统产品价格功能介绍
  9. zigbee智能家居基础扫盲
  10. 2022,软件测试行业岗位细分,薪资分布