DE-fpga验证流程与注意细节

时间:2019-01-23
本文章向大家介绍DE-fpga验证流程与注意细节,主要包括DE-fpga验证流程与注意细节使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

DE-fpga验证流程与注意细节

验证流程 :                                                                                                                               作者:DayInAI 日期:20190123
1、制作卡启动固件+烧写bitfile(两张卡)
   一张烧卡固件(带测试用例),一张烧bitfile文件
   配置DE的config  make ARCH=arm64 menuconfig 
   
2、卡固件制作如下:
   1)修改下面文件
   
   包括时钟,寄存器,makefile文件,feature文件都需要加上相应的平台。
  3、找到fpga开发板(s4或者v7),de验证都是用v7(并且bitfile需要带卡启动固件)
  4、spec文档查看:mem对应配置sys_config.fex文件 lichee/tool/pack/chip/sun50iw8p1/configs/fpga/
                  gic文档对应中断号,dtsi,clk,dts
                  ccmu对应每个模块的寄存器值,根据ccmu可以查看模块的基地址打印de寄存器的值
  5、打印寄存器
     cd /sys/class/sunxi_dump/
                 echo 0x03001000 > dump && cat dump
   
                查看时钟配置
                mount -t debugfs none /sys/kernel/debug
           cat /sys/class/disp/disp/attr/sys 查看图层信息
           cd /sys/kernel/debug/clk 查看时钟的目录 
                 cat clk_summary | grep de 查看相应的de时钟信息  查看tcon_lcd0和pll_video0使能
                 查看中断号:cat /proc/interrupt
                在cedarc-ci代码仓库拉下来放在每个平台的liche目录下面,找到相应的编译工具链并且编译出out目录
                fpag验证需要静态编译:CFLAG ="-static"  make  &&  CFLAG ="-static"  make  install

     6、测试过程总结:测试之前先问清楚bitfile在那个板子上面验证(s4 or v7),带不带相应的模块比如de,有没有卡启动的brom。
             FPGA板子测试需要换下串口,一般是板子里面的一个,固件卡启动也是放在里面,
             异常管脚需要写寄存器:cd  /sys/class/sunxi_dump
             echo 0x0300b06c 0x22222222 > write
             echo 0x0300b070 0x22222222 > write
             echo 0x0300b074 0x22222222 > write
             echo 0x0300b078 0x77772222 > write

      (1)测试会写:测试之前先挂载  mount -t debugfs none /sys/kernel/debug
                1)先显示一个正常图片:cat pic/ui_800x480_double_151.bin > /dev/fb0
                2)抓取会写参数: ./disptest/display_capturescreen.sh 0 xx.bmp 0 (这个有三个参数需要传进去)
                #$1: disp id, $2: case file name, $3: capture counter in the same case
           第二种测试方法: ./distest/display_layer_alpha.sh auto (加auto参数并新建result文件价目录)
           第三种测试方法
              ./layer/disp_layer_cfg -ch 0 -mem_id 0  -channel_id $chn_index -layer_id 0 -in_fb 0 800 480 0 0 800 480 4 -layer_mode 0                   screen_win 0 0 800 480 -alpha 1 255 -zorder 1  -file ./pic/ui_800x480_double_151.bin
                ./disptest/display_capturescreen.sh 0 $0 $count 
               (./capture/disp_capture -ch 0 -mem_id 1 -out_fb 0 1280 800 320 200 640 400 -window 320 200 640 400 
                 -file ./cap_64 0x 400_win_crop.bin) 两个脚本一起运行直接截取