DE10-Nano D8M support

From Terasic Wiki

Jump to: navigation, search

DE10_NANO 使用ARM读取D8M数据

  1. 參考文件 ; https://pan.baidu.com/s/1WJE1y-IecuzsvM3uCy-eFg
  2. 是基于两个工程去结合使用的 :
    • 第一个工程 DE1_SOC 的培训材料里面的高阶实验 BMP_SAVE,其功能是通过ARM获取FPGA的QSYS里面一个图像生成器的图像,保存为BMP格式,可以通过网线传到PC上查看。
    • 第二个工程 DE10_NANO的D8M DDR3的显示工程 ,其功能是将D8M的数据缓存到DDR3,通过HDMI显示到屏幕
  3. 可以在DE10_NANO D8M DDR3工程的基础上修改QSYS,将DE1_SOC工程里面一些获取图片的方式加入,达到通过ARM获取D8M的数据。
  4. 有一个修改好的工程例子 ,之前用ARM + D8M的DE10_NANO做WIFI视频传输的,QSYS的修改可以参考这个工程
  5. 关于IMAGE, DE1_SOC的image中有 DTB和zimage DE10_NANO的image有u-boot.scr 和rbf , 将u-boot.scr 和rbf拷到DE1_SOC image烧写后的卡中,将卡插到DE10_NANO里面,上电 等HPS起来 后,烧新工程的sof就可以在arm下执行 app获取D8M的图片了
  6. ARM的app和驱动有源码 ,但可能要根据实际需要修改编译驱动 (地址 ,设备号 可能会变 ,还有分辨率可能不同)
  7. 文件列表:
    • 驱动 kernel_module_source_code (是在ARM中控制CAMERA IP)的
    • DE1_SOC的 DEMO bmp_save 内含app源码和硬件工程
    • DE10_NANO的DEMO DE10_NANO_D8M_DDR3 (PDF为配套文档)
    • Soc_traning_image.zip 是DE1_SOC的image
    • Terasic_hps_ddr3,zip是de10_nano的image
    • D8M_SPI_wifi_bal是两个工程结合后的例子,但包含有其它东西 ,可以参考一下.

除最后的参考例子,和驱动源码,其余文档可在友晶官网上下载


de10_nano_d8m_ddr3与de1soc_bmp_save的结合

两个工程作用不在赘述,都有对应详细资料,将ddr3对应img烧到sd卡,可以看到只有一个u-boot.scr 和soc_system.rbf, 根据手册,实际上是u-boot.scr脚本先启动 ,读取rbf,配置DDR3以及相应fpga桥,配置完成HPS LED点亮,再烧SOF即可, 而DE1SOC_BMP_SAVE的image里面仅有zimage和dtb,因此,可以将u-boot.scr和rbf拷到bmp-save的U盘里,修改qsys将两者结合, 便宜后修改quartus工程,生成新的SOF,在把相应的lab2_demo.ko的源码修改编译(有可能设备文件号已经被占用,同时记得修改test.sh里面的设备号), 修改demo2_axi_demo的源码,再编译,由于之前是用的13.1的soceds编译app除了修改文件位置,没有其他错误。 修改web_service的源码,生成app,将D8M的数据通过网线传到PC查看。

后来在qsys里加了SPI 的IP 和 pio 用于handshake,之后修改quartus工程,生成新的sof, 再用原来的image发现app跑不了了,实际上主要问题是新加了IP以后vip_capiture 的BSAE address 从0x00000000 变成了0x00000020, 所以app里面的地址需要修改,修改以后在编译过程出现其他问题 ,第一个问题是social/social.h找不到, 原因是之前是de1soc的培训里面的bmp_save,最初也是13.1编译,后来电脑只有17.0,因为后面支持了a10, 所以embedded里面有cyclonev也有a10,social文件夹发生变化,知道soc_cv_av的文件里面添加路径进去, 具体的看makefile,但是后来还是有问题,提示you must define soc_cv_av or soc_a10 before compile hwlibs, 也就是说由于即支持soc_cv_av 也支持soc_a10 ,因此编译时必须给参数,在makefile 的CFLAGS 一行加入 -D soc_cv_av 的宏定义,再make就ok了。 后面需要新加spi驱动到内核,需要重新编译zimage并替换。

Personal tools