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) 两个脚本一起运行直接截取