码迷,mamicode.com
首页 > 其他好文 > 详细

flash学习笔记

时间:2017-09-30 16:17:55      阅读:157      评论:0      收藏:0      [点我收藏+]

标签:依据   学习笔记   sheet   数据   alt   技术   串口   升级   学习   

        最近升级FPGA程序遇到校验失败的问题,进一步接触了flash,升级的过程是上位机软件将hex文件通过usb发到RK3188,RK3188通过串口一帧一帧(每帧1kb的数据)地将数据发到fpga,由fpga最终将程序通过SPI写到flash中。升级失败,任何一个环节都可能出现问题,作为底层的fpga,承担起了查找问题的重担。

      我们用到的fpga是ECP3-70,依据datasheet配备的是64M的flash,64KB一个扇区(block),64KB=64*1024=65536=10000。

擦除flash只能一个扇区一个扇区地进行,程序区所占用的内存大小是22.5M, 于是22.5M*1024*1024/8/1024/64=2D, 即flash里的程序区需要预留2E个扇区的空间,

 

技术分享

 

 

 

 

 技术分享

     上位机软件往下写参数到flash的时候,需要避开程序区,即偏移地址是2e0000+10000=2f0000.才不会将原有的程序区写坏。CRC校验的过程是将程序区里的数据都拿出来用CRC算法做校验。抓信号发现校验长度是2E0000, Flash里的起始地址是10000都没有问题。最终对比了2个版本的fpga程序,发现是升级时程序并没有写到flash里。换回以前的上位机软件和嵌入式程序,fpga就能够升级了,基本能够排除是FPGA的原因,问题还在进一步查找中。

技术分享

 

flash学习笔记

标签:依据   学习笔记   sheet   数据   alt   技术   串口   升级   学习   

原文地址:http://www.cnblogs.com/asery/p/7615121.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!