axis2dma.register_map.CTRL = 0x1
sobel1.register_map.CTRL = 0x1
dma2axis31.register_map.CTRL = 0x1
cam_image = Image.fromarray(buffer3)
print("Image size: {}x{} pixels.".format(width, height))
plt.figure(figsize=(12, 10));
_ = plt.imshow(cam_image)
と変更した。axis2dma = cam_disp.axis2DMA4dwc_0
で止まってしまった。dma2axis31.register_map.CTRL = 0x1
// axis2DMA4dwc.cpp
// 2022/08/24 by marsee
//
#include <ap_int.h>
#include <hls_stream.h>
#include <ap_axi_sdata.h>
#include <stdint.h>
int axis2DMA4dwc(hls::stream<ap_axis<32,1,1,1> >& ins,
int32_t row_size, int32_t col_size, ap_int<32> *out){
#pragma HLS INTERFACE mode=m_axi depth=480000 port=out offset=slave
#pragma HLS INTERFACE mode=s_axilite port=col_size
#pragma HLS INTERFACE mode=s_axilite port=row_size
#pragma HLS INTERFACE mode=axis register_mode=both port=ins register
#pragma HLS INTERFACE mode=s_axilite port=return
ap_axis<32,1,1,1> val;
for(int y=0; y<row_size; y++){
#pragma HLS LOOP_TRIPCOUNT min=480 max=1080 avg=600
for(int x=0; x<col_size; x++){
#pragma HLS LOOP_TRIPCOUNT min=640 max=1920 avg=800
ins >> val;
out[y*col_size+x] = val.data;
}
}
return(0);
}
// axis2DMA4dwc_tb.cpp
// 2022/08/24 by marsee
//
#include <iostream>
#include <ap_int.h>
#include <hls_stream.h>
#include <ap_axi_sdata.h>
#include "opencv2/opencv.hpp"
#include "opencv2/imgproc/imgproc.hpp"
#include "opencv2/highgui/highgui.hpp"
#include "opencv2/imgcodecs/imgcodecs.hpp"
#include "pict_data.h"
char OUTPUT_PICT_FILE[] = "test.jpg";
int axis2DMA4dwc(hls::stream<ap_axis<32,1,1,1> >& ins,
int32_t row_size, int32_t col_size, ap_int<32> *out);
int main(){
hls::stream<ap_axis<32,1,1,1> > ins;
ap_axis<32,1,1,1> axisp;
ap_int<32> *wr_pict;
for(int y=0; y<Y_SIZE; y++){
for(int x=0; x<X_SIZE; x++){
axisp.data = (ap_int<32>)pict_file_array[y][x][0] | ((ap_int<32>)pict_file_array[y][x][1])<<8 | ((ap_int<32>)pict_file_array[y][x][2])<<16;
if(y==0 && x==0)
axisp.user = 1;
else
axisp.user = 0;
if(x == X_SIZE-1)
axisp.last = 1;
else
axisp.last = 0;
ins << axisp;
}
}
if((wr_pict =(ap_int<32> *)malloc(sizeof(ap_int<32>) * (X_SIZE * Y_SIZE))) == NULL){
fprintf(stderr, "Can't allocate wr_pict memory\n");
exit(1);
}
axis2DMA4dwc(ins, Y_SIZE, X_SIZE, wr_pict);
cv::Mat img(Y_SIZE, X_SIZE, CV_8UC3);
cv::Mat_<cv::Vec3b> dst_vec3b = cv::Mat_<cv::Vec3b>(img);
for (int y=0; y<Y_SIZE; y++){
for (int x=0; x<X_SIZE; x++){
ap_int<32> data = wr_pict[y*X_SIZE+x];
cv::Vec3b pixel;
pixel[0] = data & 0xff; // blue
pixel[1] = (data >> 8) & 0xff; // green
pixel[2] = (data >> 16) & 0xff; // red
dst_vec3b(y,x) = pixel;
}
}
cv::imwrite(OUTPUT_PICT_FILE, img);
return(0);
}
を設定した。-I/usr/local/include
を設定した。-L/usr/local/lib -lopencv_core -lopencv_imgcodecs -lopencv_imgproc
# cam_disp.py
# 2022/08/05 by marsee
# 2022/08/14 : Added Sobel filter.
from PIL import Image
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
from pynq import allocate, Overlay
import time
# Download bitstream
cam_disp = Overlay("./cam_disp.bit")
# Generate an instance for each IP
vflip_dmaw = cam_disp.vflip_dma_write_0
paracam_inf = cam_disp.paracam_inf_axis_0
bmpd_cont = cam_disp.bitmap_disp_cont_axis_0
cam_iic = cam_disp.axi_iic_0
sobel0 = cam_disp.sobel_axis_RGB24_0
sobel1 = cam_disp.sobel_axis_RGB24_1
dma2axis30 = cam_disp.DMA2axis_3buf_0
dma2axis31 = cam_disp.DMA2axis_3buf_1
axis2dma = cam_disp.axis2DMA_0
def cam_i2c_init(cam_iic):
cam_iic.write(0x100, 0x2) # reset tx fifo ,address is 0x100, i2c_control_reg
cam_iic.write(0x100, 0x1) # enable i2c
def cam_i2x_write_sync():
time.sleep(0.001) # 1ms wait
def cam_i2c_write(cam_iic, device_addr, write_addr, write_data):
cam_iic.write(0x108, bin(0x100 | (device_addr & 0xfe))) # Slave IIC Write Address, address is 0x108, i2c_tx_fifo
cam_iic.write(0x108, bin((write_addr >> 8) & 0xff)) # address upper byte
cam_iic.write(0x108, bin(write_addr & 0xff)) # address lower byte
cam_iic.write(0x108, bin(0x200 | (write_data & 0xff))) # data
cam_i2x_write_sync()
def cam_reg_set(cam_iic, device_addr):
cam_i2c_write(cam_iic, device_addr, 0x3103, 0x93)
cam_i2c_write(cam_iic, device_addr, 0x3008, 0x82)
cam_i2c_write(cam_iic, device_addr, 0x3017, 0x7f)
cam_i2c_write(cam_iic, device_addr, 0x3018, 0xfc)
cam_i2c_write(cam_iic, device_addr, 0x3810, 0xc2)
cam_i2c_write(cam_iic, device_addr, 0x3615, 0xf0)
cam_i2c_write(cam_iic, device_addr, 0x3000, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x3001, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x3002, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x3003, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x3000, 0xf8)
cam_i2c_write(cam_iic, device_addr, 0x3001, 0x48)
cam_i2c_write(cam_iic, device_addr, 0x3002, 0x5c)
cam_i2c_write(cam_iic, device_addr, 0x3003, 0x02)
cam_i2c_write(cam_iic, device_addr, 0x3004, 0x07)
cam_i2c_write(cam_iic, device_addr, 0x3005, 0xb7)
cam_i2c_write(cam_iic, device_addr, 0x3006, 0x43)
cam_i2c_write(cam_iic, device_addr, 0x3007, 0x37)
cam_i2c_write(cam_iic, device_addr, 0x3011, 0x08) # 0x08 - 15fps, 0x10 - 30fps
cam_i2c_write(cam_iic, device_addr, 0x3010, 0x10)
cam_i2c_write(cam_iic, device_addr, 0x460c, 0x22)
cam_i2c_write(cam_iic, device_addr, 0x3815, 0x04)
cam_i2c_write(cam_iic, device_addr, 0x370d, 0x06)
cam_i2c_write(cam_iic, device_addr, 0x370c, 0xa0)
cam_i2c_write(cam_iic, device_addr, 0x3602, 0xfc)
cam_i2c_write(cam_iic, device_addr, 0x3612, 0xff)
cam_i2c_write(cam_iic, device_addr, 0x3634, 0xc0)
cam_i2c_write(cam_iic, device_addr, 0x3613, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x3605, 0x7c)
cam_i2c_write(cam_iic, device_addr, 0x3621, 0x09)
cam_i2c_write(cam_iic, device_addr, 0x3622, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x3604, 0x40)
cam_i2c_write(cam_iic, device_addr, 0x3603, 0xa7)
cam_i2c_write(cam_iic, device_addr, 0x3603, 0x27)
cam_i2c_write(cam_iic, device_addr, 0x4000, 0x21)
cam_i2c_write(cam_iic, device_addr, 0x401d, 0x02)
cam_i2c_write(cam_iic, device_addr, 0x3600, 0x54)
cam_i2c_write(cam_iic, device_addr, 0x3605, 0x04)
cam_i2c_write(cam_iic, device_addr, 0x3606, 0x3f)
cam_i2c_write(cam_iic, device_addr, 0x3c01, 0x80)
cam_i2c_write(cam_iic, device_addr, 0x5000, 0x4f)
cam_i2c_write(cam_iic, device_addr, 0x5020, 0x04)
cam_i2c_write(cam_iic, device_addr, 0x5181, 0x79)
cam_i2c_write(cam_iic, device_addr, 0x5182, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5185, 0x22)
cam_i2c_write(cam_iic, device_addr, 0x5197, 0x01)
cam_i2c_write(cam_iic, device_addr, 0x5001, 0xff)
cam_i2c_write(cam_iic, device_addr, 0x5500, 0x0a)
cam_i2c_write(cam_iic, device_addr, 0x5504, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5505, 0x7f)
cam_i2c_write(cam_iic, device_addr, 0x5080, 0x08)
cam_i2c_write(cam_iic, device_addr, 0x300e, 0x18)
cam_i2c_write(cam_iic, device_addr, 0x4610, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x471d, 0x05)
cam_i2c_write(cam_iic, device_addr, 0x4708, 0x06)
cam_i2c_write(cam_iic, device_addr, 0x3710, 0x10)
cam_i2c_write(cam_iic, device_addr, 0x3632, 0x41)
cam_i2c_write(cam_iic, device_addr, 0x3702, 0x40)
cam_i2c_write(cam_iic, device_addr, 0x3620, 0x37)
cam_i2c_write(cam_iic, device_addr, 0x3631, 0x01)
cam_i2c_write(cam_iic, device_addr, 0x3808, 0x02)
cam_i2c_write(cam_iic, device_addr, 0x3809, 0x80)
cam_i2c_write(cam_iic, device_addr, 0x380a, 0x01)
cam_i2c_write(cam_iic, device_addr, 0x380b, 0xe0)
cam_i2c_write(cam_iic, device_addr, 0x380e, 0x07)
cam_i2c_write(cam_iic, device_addr, 0x380f, 0xd0)
cam_i2c_write(cam_iic, device_addr, 0x501f, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5000, 0x4f)
cam_i2c_write(cam_iic, device_addr, 0x4300, 0x61) # RGB565
cam_i2c_write(cam_iic, device_addr, 0x3503, 0x07)
cam_i2c_write(cam_iic, device_addr, 0x3501, 0x73)
cam_i2c_write(cam_iic, device_addr, 0x3502, 0x80)
cam_i2c_write(cam_iic, device_addr, 0x350b, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x3503, 0x07)
cam_i2c_write(cam_iic, device_addr, 0x3824, 0x11)
cam_i2c_write(cam_iic, device_addr, 0x3501, 0x1e)
cam_i2c_write(cam_iic, device_addr, 0x3502, 0x80)
cam_i2c_write(cam_iic, device_addr, 0x350b, 0x7f)
cam_i2c_write(cam_iic, device_addr, 0x380c, 0x0c)
cam_i2c_write(cam_iic, device_addr, 0x380d, 0x80)
cam_i2c_write(cam_iic, device_addr, 0x380e, 0x03)
cam_i2c_write(cam_iic, device_addr, 0x380f, 0xe8)
cam_i2c_write(cam_iic, device_addr, 0x3a0d, 0x04)
cam_i2c_write(cam_iic, device_addr, 0x3a0e, 0x03)
cam_i2c_write(cam_iic, device_addr, 0x3818, 0xc1)
cam_i2c_write(cam_iic, device_addr, 0x3705, 0xdb)
cam_i2c_write(cam_iic, device_addr, 0x370a, 0x81)
cam_i2c_write(cam_iic, device_addr, 0x3801, 0x80)
cam_i2c_write(cam_iic, device_addr, 0x3621, 0xc7)
cam_i2c_write(cam_iic, device_addr, 0x3801, 0x50)
cam_i2c_write(cam_iic, device_addr, 0x3803, 0x08)
cam_i2c_write(cam_iic, device_addr, 0x3827, 0x08)
cam_i2c_write(cam_iic, device_addr, 0x3810, 0xc0)
cam_i2c_write(cam_iic, device_addr, 0x3804, 0x05)
cam_i2c_write(cam_iic, device_addr, 0x3805, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5682, 0x05)
cam_i2c_write(cam_iic, device_addr, 0x5683, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x3806, 0x03)
cam_i2c_write(cam_iic, device_addr, 0x3807, 0xc0)
cam_i2c_write(cam_iic, device_addr, 0x5686, 0x03)
cam_i2c_write(cam_iic, device_addr, 0x5687, 0xc0)
cam_i2c_write(cam_iic, device_addr, 0x3a00, 0x78)
cam_i2c_write(cam_iic, device_addr, 0x3a1a, 0x04)
cam_i2c_write(cam_iic, device_addr, 0x3a13, 0x30)
cam_i2c_write(cam_iic, device_addr, 0x3a18, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x3a19, 0x7c)
cam_i2c_write(cam_iic, device_addr, 0x3a08, 0x12)
cam_i2c_write(cam_iic, device_addr, 0x3a09, 0xc0)
cam_i2c_write(cam_iic, device_addr, 0x3a0a, 0x0f)
cam_i2c_write(cam_iic, device_addr, 0x3a0b, 0xa0)
cam_i2c_write(cam_iic, device_addr, 0x3004, 0xff)
cam_i2c_write(cam_iic, device_addr, 0x350c, 0x07)
cam_i2c_write(cam_iic, device_addr, 0x350d, 0xd0)
cam_i2c_write(cam_iic, device_addr, 0x3500, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x3501, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x3502, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x350a, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x350b, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x3503, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x528a, 0x02)
cam_i2c_write(cam_iic, device_addr, 0x528b, 0x04)
cam_i2c_write(cam_iic, device_addr, 0x528c, 0x08)
cam_i2c_write(cam_iic, device_addr, 0x528d, 0x08)
cam_i2c_write(cam_iic, device_addr, 0x528e, 0x08)
cam_i2c_write(cam_iic, device_addr, 0x528f, 0x10)
cam_i2c_write(cam_iic, device_addr, 0x5290, 0x10)
cam_i2c_write(cam_iic, device_addr, 0x5292, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5293, 0x02)
cam_i2c_write(cam_iic, device_addr, 0x5294, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5295, 0x02)
cam_i2c_write(cam_iic, device_addr, 0x5296, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5297, 0x02)
cam_i2c_write(cam_iic, device_addr, 0x5298, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5299, 0x02)
cam_i2c_write(cam_iic, device_addr, 0x529a, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x529b, 0x02)
cam_i2c_write(cam_iic, device_addr, 0x529c, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x529d, 0x02)
cam_i2c_write(cam_iic, device_addr, 0x529e, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x529f, 0x02)
cam_i2c_write(cam_iic, device_addr, 0x3a0f, 0x3c)
cam_i2c_write(cam_iic, device_addr, 0x3a10, 0x30)
cam_i2c_write(cam_iic, device_addr, 0x3a1b, 0x3c)
cam_i2c_write(cam_iic, device_addr, 0x3a1e, 0x30)
cam_i2c_write(cam_iic, device_addr, 0x3a11, 0x70)
cam_i2c_write(cam_iic, device_addr, 0x3a1f, 0x10)
cam_i2c_write(cam_iic, device_addr, 0x3030, 0x0b)
cam_i2c_write(cam_iic, device_addr, 0x3a02, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x3a03, 0x7d)
cam_i2c_write(cam_iic, device_addr, 0x3a04, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x3a14, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x3a15, 0x7d)
cam_i2c_write(cam_iic, device_addr, 0x3a16, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x3a00, 0x78)
cam_i2c_write(cam_iic, device_addr, 0x3a08, 0x09)
cam_i2c_write(cam_iic, device_addr, 0x3a09, 0x60)
cam_i2c_write(cam_iic, device_addr, 0x3a0a, 0x07)
cam_i2c_write(cam_iic, device_addr, 0x3a0b, 0xd0)
cam_i2c_write(cam_iic, device_addr, 0x3a0d, 0x08)
cam_i2c_write(cam_iic, device_addr, 0x3a0e, 0x06)
cam_i2c_write(cam_iic, device_addr, 0x5193, 0x70)
cam_i2c_write(cam_iic, device_addr, 0x3620, 0x57)
cam_i2c_write(cam_iic, device_addr, 0x3703, 0x98)
cam_i2c_write(cam_iic, device_addr, 0x3704, 0x1c)
cam_i2c_write(cam_iic, device_addr, 0x589b, 0x04)
cam_i2c_write(cam_iic, device_addr, 0x589a, 0xc5)
cam_i2c_write(cam_iic, device_addr, 0x528a, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x528b, 0x02)
cam_i2c_write(cam_iic, device_addr, 0x528c, 0x08)
cam_i2c_write(cam_iic, device_addr, 0x528d, 0x10)
cam_i2c_write(cam_iic, device_addr, 0x528e, 0x20)
cam_i2c_write(cam_iic, device_addr, 0x528f, 0x28)
cam_i2c_write(cam_iic, device_addr, 0x5290, 0x30)
cam_i2c_write(cam_iic, device_addr, 0x5292, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5293, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5294, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5295, 0x02)
cam_i2c_write(cam_iic, device_addr, 0x5296, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5297, 0x08)
cam_i2c_write(cam_iic, device_addr, 0x5298, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5299, 0x10)
cam_i2c_write(cam_iic, device_addr, 0x529a, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x529b, 0x20)
cam_i2c_write(cam_iic, device_addr, 0x529c, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x529d, 0x28)
cam_i2c_write(cam_iic, device_addr, 0x529e, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x529f, 0x30)
cam_i2c_write(cam_iic, device_addr, 0x5282, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5300, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5301, 0x20)
cam_i2c_write(cam_iic, device_addr, 0x5302, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5303, 0x7c)
cam_i2c_write(cam_iic, device_addr, 0x530c, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x530d, 0x0c)
cam_i2c_write(cam_iic, device_addr, 0x530e, 0x20)
cam_i2c_write(cam_iic, device_addr, 0x530f, 0x80)
cam_i2c_write(cam_iic, device_addr, 0x5310, 0x20)
cam_i2c_write(cam_iic, device_addr, 0x5311, 0x80)
cam_i2c_write(cam_iic, device_addr, 0x5308, 0x20)
cam_i2c_write(cam_iic, device_addr, 0x5309, 0x40)
cam_i2c_write(cam_iic, device_addr, 0x5304, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5305, 0x30)
cam_i2c_write(cam_iic, device_addr, 0x5306, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5307, 0x80)
cam_i2c_write(cam_iic, device_addr, 0x5314, 0x08)
cam_i2c_write(cam_iic, device_addr, 0x5315, 0x20)
cam_i2c_write(cam_iic, device_addr, 0x5319, 0x30)
cam_i2c_write(cam_iic, device_addr, 0x5316, 0x10)
cam_i2c_write(cam_iic, device_addr, 0x5317, 0x08)
cam_i2c_write(cam_iic, device_addr, 0x5318, 0x02)
cam_i2c_write(cam_iic, device_addr, 0x5380, 0x01)
cam_i2c_write(cam_iic, device_addr, 0x5381, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5382, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5383, 0x4e)
cam_i2c_write(cam_iic, device_addr, 0x5384, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5385, 0x0f)
cam_i2c_write(cam_iic, device_addr, 0x5386, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5387, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5388, 0x01)
cam_i2c_write(cam_iic, device_addr, 0x5389, 0x15)
cam_i2c_write(cam_iic, device_addr, 0x538a, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x538b, 0x31)
cam_i2c_write(cam_iic, device_addr, 0x538c, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x538d, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x538e, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x538f, 0x0f)
cam_i2c_write(cam_iic, device_addr, 0x5390, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5391, 0xab)
cam_i2c_write(cam_iic, device_addr, 0x5392, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5393, 0xa2)
cam_i2c_write(cam_iic, device_addr, 0x5394, 0x08)
cam_i2c_write(cam_iic, device_addr, 0x5480, 0x14)
cam_i2c_write(cam_iic, device_addr, 0x5481, 0x21)
cam_i2c_write(cam_iic, device_addr, 0x5482, 0x36)
cam_i2c_write(cam_iic, device_addr, 0x5483, 0x57)
cam_i2c_write(cam_iic, device_addr, 0x5484, 0x65)
cam_i2c_write(cam_iic, device_addr, 0x5485, 0x71)
cam_i2c_write(cam_iic, device_addr, 0x5486, 0x7d)
cam_i2c_write(cam_iic, device_addr, 0x5487, 0x87)
cam_i2c_write(cam_iic, device_addr, 0x5488, 0x91)
cam_i2c_write(cam_iic, device_addr, 0x5489, 0x9a)
cam_i2c_write(cam_iic, device_addr, 0x548a, 0xaa)
cam_i2c_write(cam_iic, device_addr, 0x548b, 0xb8)
cam_i2c_write(cam_iic, device_addr, 0x548c, 0xcd)
cam_i2c_write(cam_iic, device_addr, 0x548d, 0xdd)
cam_i2c_write(cam_iic, device_addr, 0x548e, 0xea)
cam_i2c_write(cam_iic, device_addr, 0x548f, 0x10)
cam_i2c_write(cam_iic, device_addr, 0x5490, 0x05)
cam_i2c_write(cam_iic, device_addr, 0x5491, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5492, 0x04)
cam_i2c_write(cam_iic, device_addr, 0x5493, 0x20)
cam_i2c_write(cam_iic, device_addr, 0x5494, 0x03)
cam_i2c_write(cam_iic, device_addr, 0x5495, 0x60)
cam_i2c_write(cam_iic, device_addr, 0x5496, 0x02)
cam_i2c_write(cam_iic, device_addr, 0x5497, 0xb8)
cam_i2c_write(cam_iic, device_addr, 0x5498, 0x02)
cam_i2c_write(cam_iic, device_addr, 0x5499, 0x86)
cam_i2c_write(cam_iic, device_addr, 0x549a, 0x02)
cam_i2c_write(cam_iic, device_addr, 0x549b, 0x5b)
cam_i2c_write(cam_iic, device_addr, 0x549c, 0x02)
cam_i2c_write(cam_iic, device_addr, 0x549d, 0x3b)
cam_i2c_write(cam_iic, device_addr, 0x549e, 0x02)
cam_i2c_write(cam_iic, device_addr, 0x549f, 0x1c)
cam_i2c_write(cam_iic, device_addr, 0x54a0, 0x02)
cam_i2c_write(cam_iic, device_addr, 0x54a1, 0x04)
cam_i2c_write(cam_iic, device_addr, 0x54a2, 0x01)
cam_i2c_write(cam_iic, device_addr, 0x54a3, 0xed)
cam_i2c_write(cam_iic, device_addr, 0x54a4, 0x01)
cam_i2c_write(cam_iic, device_addr, 0x54a5, 0xc5)
cam_i2c_write(cam_iic, device_addr, 0x54a6, 0x01)
cam_i2c_write(cam_iic, device_addr, 0x54a7, 0xa5)
cam_i2c_write(cam_iic, device_addr, 0x54a8, 0x01)
cam_i2c_write(cam_iic, device_addr, 0x54a9, 0x6c)
cam_i2c_write(cam_iic, device_addr, 0x54aa, 0x01)
cam_i2c_write(cam_iic, device_addr, 0x54ab, 0x41)
cam_i2c_write(cam_iic, device_addr, 0x54ac, 0x01)
cam_i2c_write(cam_iic, device_addr, 0x54ad, 0x20)
cam_i2c_write(cam_iic, device_addr, 0x54ae, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x54af, 0x16)
cam_i2c_write(cam_iic, device_addr, 0x3406, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5192, 0x04) # 0x04
cam_i2c_write(cam_iic, device_addr, 0x5191, 0xf8) # 0xf8
cam_i2c_write(cam_iic, device_addr, 0x5193, 0x70)
cam_i2c_write(cam_iic, device_addr, 0x5194, 0xf0)
cam_i2c_write(cam_iic, device_addr, 0x5195, 0xf0)
cam_i2c_write(cam_iic, device_addr, 0x518d, 0x3d)
cam_i2c_write(cam_iic, device_addr, 0x518f, 0x54)
cam_i2c_write(cam_iic, device_addr, 0x518e, 0x3d)
cam_i2c_write(cam_iic, device_addr, 0x5190, 0x54)
cam_i2c_write(cam_iic, device_addr, 0x518b, 0xc0)
cam_i2c_write(cam_iic, device_addr, 0x518c, 0xbd)
cam_i2c_write(cam_iic, device_addr, 0x5187, 0x18)
cam_i2c_write(cam_iic, device_addr, 0x5188, 0x18)
cam_i2c_write(cam_iic, device_addr, 0x5189, 0x6e)
cam_i2c_write(cam_iic, device_addr, 0x518a, 0x68)
cam_i2c_write(cam_iic, device_addr, 0x5186, 0x1c)
cam_i2c_write(cam_iic, device_addr, 0x5181, 0x50)
cam_i2c_write(cam_iic, device_addr, 0x5184, 0x25)
cam_i2c_write(cam_iic, device_addr, 0x5182, 0x11)
cam_i2c_write(cam_iic, device_addr, 0x5183, 0x14)
cam_i2c_write(cam_iic, device_addr, 0x5184, 0x25)
cam_i2c_write(cam_iic, device_addr, 0x5185, 0x24)
cam_i2c_write(cam_iic, device_addr, 0x5025, 0x82)
cam_i2c_write(cam_iic, device_addr, 0x5583, 0x40)
cam_i2c_write(cam_iic, device_addr, 0x5584, 0x40)
cam_i2c_write(cam_iic, device_addr, 0x5580, 0x02) # 0x02
cam_i2c_write(cam_iic, device_addr, 0x3633, 0x07)
cam_i2c_write(cam_iic, device_addr, 0x3702, 0x10)
cam_i2c_write(cam_iic, device_addr, 0x3703, 0xb2)
cam_i2c_write(cam_iic, device_addr, 0x3704, 0x18)
cam_i2c_write(cam_iic, device_addr, 0x370b, 0x40)
cam_i2c_write(cam_iic, device_addr, 0x370d, 0x02)
cam_i2c_write(cam_iic, device_addr, 0x3620, 0x52)
cam_i2c_write(cam_iic, device_addr, 0x3c00, 0x04)
cam_i2c_write(cam_iic, device_addr, 0x5001, 0xFF)
cam_i2c_write(cam_iic, device_addr, 0x5282, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5300, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5301, 0x20)
cam_i2c_write(cam_iic, device_addr, 0x5302, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5303, 0x7c)
cam_i2c_write(cam_iic, device_addr, 0x530c, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x530d, 0x10)
cam_i2c_write(cam_iic, device_addr, 0x530e, 0x20)
cam_i2c_write(cam_iic, device_addr, 0x530f, 0x80)
cam_i2c_write(cam_iic, device_addr, 0x5310, 0x20)
cam_i2c_write(cam_iic, device_addr, 0x5311, 0x80)
cam_i2c_write(cam_iic, device_addr, 0x5308, 0x20)
cam_i2c_write(cam_iic, device_addr, 0x5309, 0x40)
cam_i2c_write(cam_iic, device_addr, 0x5304, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5305, 0x30)
cam_i2c_write(cam_iic, device_addr, 0x5306, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5307, 0x80)
cam_i2c_write(cam_iic, device_addr, 0x5314, 0x08)
cam_i2c_write(cam_iic, device_addr, 0x5315, 0x20)
cam_i2c_write(cam_iic, device_addr, 0x5319, 0x30)
cam_i2c_write(cam_iic, device_addr, 0x5316, 0x10)
cam_i2c_write(cam_iic, device_addr, 0x5317, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5318, 0x02)
cam_i2c_write(cam_iic, device_addr, 0x5500, 0x10)
cam_i2c_write(cam_iic, device_addr, 0x5502, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5503, 0x06)
cam_i2c_write(cam_iic, device_addr, 0x5504, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5505, 0x7f)
cam_i2c_write(cam_iic, device_addr, 0x5025, 0x80)
cam_i2c_write(cam_iic, device_addr, 0x5300, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5301, 0x20)
cam_i2c_write(cam_iic, device_addr, 0x5302, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5303, 0x7c)
cam_i2c_write(cam_iic, device_addr, 0x530c, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x530d, 0x0c)
cam_i2c_write(cam_iic, device_addr, 0x530e, 0x20)
cam_i2c_write(cam_iic, device_addr, 0x530f, 0x80)
cam_i2c_write(cam_iic, device_addr, 0x5310, 0x20)
cam_i2c_write(cam_iic, device_addr, 0x5311, 0x80)
cam_i2c_write(cam_iic, device_addr, 0x5308, 0x20)
cam_i2c_write(cam_iic, device_addr, 0x5309, 0x40)
cam_i2c_write(cam_iic, device_addr, 0x5304, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5305, 0x30)
cam_i2c_write(cam_iic, device_addr, 0x5306, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5307, 0x80)
cam_i2c_write(cam_iic, device_addr, 0x5314, 0x08)
cam_i2c_write(cam_iic, device_addr, 0x5315, 0x20)
cam_i2c_write(cam_iic, device_addr, 0x5319, 0x30)
cam_i2c_write(cam_iic, device_addr, 0x5316, 0x10)
cam_i2c_write(cam_iic, device_addr, 0x5317, 0x08)
cam_i2c_write(cam_iic, device_addr, 0x5318, 0x02)
cam_i2c_write(cam_iic, device_addr, 0x5380, 0x01)
cam_i2c_write(cam_iic, device_addr, 0x5381, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5382, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5383, 0x1f)
cam_i2c_write(cam_iic, device_addr, 0x5384, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5385, 0x06)
cam_i2c_write(cam_iic, device_addr, 0x5386, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5387, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5388, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5389, 0xE1)
cam_i2c_write(cam_iic, device_addr, 0x538A, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x538B, 0x2B)
cam_i2c_write(cam_iic, device_addr, 0x538C, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x538D, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x538E, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x538F, 0x10)
cam_i2c_write(cam_iic, device_addr, 0x5390, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5391, 0xB3)
cam_i2c_write(cam_iic, device_addr, 0x5392, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5393, 0xA6)
cam_i2c_write(cam_iic, device_addr, 0x5394, 0x08)
cam_i2c_write(cam_iic, device_addr, 0x5480, 0xd)
cam_i2c_write(cam_iic, device_addr, 0x5481, 0x18)
cam_i2c_write(cam_iic, device_addr, 0x5482, 0x2a)
cam_i2c_write(cam_iic, device_addr, 0x5483, 0x49)
cam_i2c_write(cam_iic, device_addr, 0x5484, 0x56)
cam_i2c_write(cam_iic, device_addr, 0x5485, 0x62)
cam_i2c_write(cam_iic, device_addr, 0x5486, 0x6c)
cam_i2c_write(cam_iic, device_addr, 0x5487, 0x76)
cam_i2c_write(cam_iic, device_addr, 0x5488, 0x80)
cam_i2c_write(cam_iic, device_addr, 0x5489, 0x88)
cam_i2c_write(cam_iic, device_addr, 0x548a, 0x96)
cam_i2c_write(cam_iic, device_addr, 0x548b, 0xa2)
cam_i2c_write(cam_iic, device_addr, 0x548c, 0xb8)
cam_i2c_write(cam_iic, device_addr, 0x548d, 0xcc)
cam_i2c_write(cam_iic, device_addr, 0x548e, 0xe0)
cam_i2c_write(cam_iic, device_addr, 0x548f, 0x10)
cam_i2c_write(cam_iic, device_addr, 0x5490, 0x3)
cam_i2c_write(cam_iic, device_addr, 0x5491, 0x40)
cam_i2c_write(cam_iic, device_addr, 0x5492, 0x3)
cam_i2c_write(cam_iic, device_addr, 0x5493, 0x0)
cam_i2c_write(cam_iic, device_addr, 0x5494, 0x2)
cam_i2c_write(cam_iic, device_addr, 0x5495, 0xa0)
cam_i2c_write(cam_iic, device_addr, 0x5496, 0x2)
cam_i2c_write(cam_iic, device_addr, 0x5497, 0x48)
cam_i2c_write(cam_iic, device_addr, 0x5498, 0x2)
cam_i2c_write(cam_iic, device_addr, 0x5499, 0x26)
cam_i2c_write(cam_iic, device_addr, 0x549a, 0x2)
cam_i2c_write(cam_iic, device_addr, 0x549b, 0xb)
cam_i2c_write(cam_iic, device_addr, 0x549c, 0x1)
cam_i2c_write(cam_iic, device_addr, 0x549d, 0xee)
cam_i2c_write(cam_iic, device_addr, 0x549e, 0x1)
cam_i2c_write(cam_iic, device_addr, 0x549f, 0xd8)
cam_i2c_write(cam_iic, device_addr, 0x54a0, 0x1)
cam_i2c_write(cam_iic, device_addr, 0x54a1, 0xc7)
cam_i2c_write(cam_iic, device_addr, 0x54a2, 0x1)
cam_i2c_write(cam_iic, device_addr, 0x54a3, 0xb3)
cam_i2c_write(cam_iic, device_addr, 0x54a4, 0x1)
cam_i2c_write(cam_iic, device_addr, 0x54a5, 0x90)
cam_i2c_write(cam_iic, device_addr, 0x54a6, 0x1)
cam_i2c_write(cam_iic, device_addr, 0x54a7, 0x62)
cam_i2c_write(cam_iic, device_addr, 0x54a8, 0x1)
cam_i2c_write(cam_iic, device_addr, 0x54a9, 0x27)
cam_i2c_write(cam_iic, device_addr, 0x54aa, 0x01)
cam_i2c_write(cam_iic, device_addr, 0x54ab, 0x09)
cam_i2c_write(cam_iic, device_addr, 0x54ac, 0x01)
cam_i2c_write(cam_iic, device_addr, 0x54ad, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x54ae, 0x0)
cam_i2c_write(cam_iic, device_addr, 0x54af, 0x40)
cam_i2c_write(cam_iic, device_addr, 0x54b0, 0x1)
cam_i2c_write(cam_iic, device_addr, 0x54b1, 0x20)
cam_i2c_write(cam_iic, device_addr, 0x54b2, 0x1)
cam_i2c_write(cam_iic, device_addr, 0x54b3, 0x40)
cam_i2c_write(cam_iic, device_addr, 0x54b4, 0x0)
cam_i2c_write(cam_iic, device_addr, 0x54b5, 0xf0)
cam_i2c_write(cam_iic, device_addr, 0x54b6, 0x1)
cam_i2c_write(cam_iic, device_addr, 0x54b7, 0xdf)
cam_i2c_write(cam_iic, device_addr, 0x5583, 0x5d)
cam_i2c_write(cam_iic, device_addr, 0x5584, 0x5d)
cam_i2c_write(cam_iic, device_addr, 0x5580, 0x06)
cam_i2c_write(cam_iic, device_addr, 0x5587, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5588, 0x20)
cam_i2c_write(cam_iic, device_addr, 0x558a, 0x09)
cam_i2c_write(cam_iic, device_addr, 0x5589, 0x10)
cam_i2c_write(cam_iic, device_addr, 0x5000, 0xcf)
cam_i2c_write(cam_iic, device_addr, 0x5800, 0x48)
cam_i2c_write(cam_iic, device_addr, 0x5801, 0x31)
cam_i2c_write(cam_iic, device_addr, 0x5802, 0x21)
cam_i2c_write(cam_iic, device_addr, 0x5803, 0x1b)
cam_i2c_write(cam_iic, device_addr, 0x5804, 0x1a)
cam_i2c_write(cam_iic, device_addr, 0x5805, 0x1e)
cam_i2c_write(cam_iic, device_addr, 0x5806, 0x29)
cam_i2c_write(cam_iic, device_addr, 0x5807, 0x38)
cam_i2c_write(cam_iic, device_addr, 0x5808, 0x26)
cam_i2c_write(cam_iic, device_addr, 0x5809, 0x17)
cam_i2c_write(cam_iic, device_addr, 0x580a, 0x11)
cam_i2c_write(cam_iic, device_addr, 0x580b, 0xe)
cam_i2c_write(cam_iic, device_addr, 0x580c, 0xd)
cam_i2c_write(cam_iic, device_addr, 0x580d, 0xe)
cam_i2c_write(cam_iic, device_addr, 0x580e, 0x13)
cam_i2c_write(cam_iic, device_addr, 0x580f, 0x1a)
cam_i2c_write(cam_iic, device_addr, 0x5810, 0x15)
cam_i2c_write(cam_iic, device_addr, 0x5811, 0xd)
cam_i2c_write(cam_iic, device_addr, 0x5812, 0x8)
cam_i2c_write(cam_iic, device_addr, 0x5813, 0x5)
cam_i2c_write(cam_iic, device_addr, 0x5814, 0x4)
cam_i2c_write(cam_iic, device_addr, 0x5815, 0x5)
cam_i2c_write(cam_iic, device_addr, 0x5816, 0x9)
cam_i2c_write(cam_iic, device_addr, 0x5817, 0xd)
cam_i2c_write(cam_iic, device_addr, 0x5818, 0x11)
cam_i2c_write(cam_iic, device_addr, 0x5819, 0xa)
cam_i2c_write(cam_iic, device_addr, 0x581a, 0x4)
cam_i2c_write(cam_iic, device_addr, 0x581b, 0x0)
cam_i2c_write(cam_iic, device_addr, 0x581c, 0x0)
cam_i2c_write(cam_iic, device_addr, 0x581d, 0x1)
cam_i2c_write(cam_iic, device_addr, 0x581e, 0x6)
cam_i2c_write(cam_iic, device_addr, 0x581f, 0x9)
cam_i2c_write(cam_iic, device_addr, 0x5820, 0x12)
cam_i2c_write(cam_iic, device_addr, 0x5821, 0xb)
cam_i2c_write(cam_iic, device_addr, 0x5822, 0x4)
cam_i2c_write(cam_iic, device_addr, 0x5823, 0x0)
cam_i2c_write(cam_iic, device_addr, 0x5824, 0x0)
cam_i2c_write(cam_iic, device_addr, 0x5825, 0x1)
cam_i2c_write(cam_iic, device_addr, 0x5826, 0x6)
cam_i2c_write(cam_iic, device_addr, 0x5827, 0xa)
cam_i2c_write(cam_iic, device_addr, 0x5828, 0x17)
cam_i2c_write(cam_iic, device_addr, 0x5829, 0xf)
cam_i2c_write(cam_iic, device_addr, 0x582a, 0x9)
cam_i2c_write(cam_iic, device_addr, 0x582b, 0x6)
cam_i2c_write(cam_iic, device_addr, 0x582c, 0x5)
cam_i2c_write(cam_iic, device_addr, 0x582d, 0x6)
cam_i2c_write(cam_iic, device_addr, 0x582e, 0xa)
cam_i2c_write(cam_iic, device_addr, 0x582f, 0xe)
cam_i2c_write(cam_iic, device_addr, 0x5830, 0x28)
cam_i2c_write(cam_iic, device_addr, 0x5831, 0x1a)
cam_i2c_write(cam_iic, device_addr, 0x5832, 0x11)
cam_i2c_write(cam_iic, device_addr, 0x5833, 0xe)
cam_i2c_write(cam_iic, device_addr, 0x5834, 0xe)
cam_i2c_write(cam_iic, device_addr, 0x5835, 0xf)
cam_i2c_write(cam_iic, device_addr, 0x5836, 0x15)
cam_i2c_write(cam_iic, device_addr, 0x5837, 0x1d)
cam_i2c_write(cam_iic, device_addr, 0x5838, 0x6e)
cam_i2c_write(cam_iic, device_addr, 0x5839, 0x39)
cam_i2c_write(cam_iic, device_addr, 0x583a, 0x27)
cam_i2c_write(cam_iic, device_addr, 0x583b, 0x1f)
cam_i2c_write(cam_iic, device_addr, 0x583c, 0x1e)
cam_i2c_write(cam_iic, device_addr, 0x583d, 0x23)
cam_i2c_write(cam_iic, device_addr, 0x583e, 0x2f)
cam_i2c_write(cam_iic, device_addr, 0x583f, 0x41)
cam_i2c_write(cam_iic, device_addr, 0x5840, 0xe)
cam_i2c_write(cam_iic, device_addr, 0x5841, 0xc)
cam_i2c_write(cam_iic, device_addr, 0x5842, 0xd)
cam_i2c_write(cam_iic, device_addr, 0x5843, 0xc)
cam_i2c_write(cam_iic, device_addr, 0x5844, 0xc)
cam_i2c_write(cam_iic, device_addr, 0x5845, 0xc)
cam_i2c_write(cam_iic, device_addr, 0x5846, 0xc)
cam_i2c_write(cam_iic, device_addr, 0x5847, 0xc)
cam_i2c_write(cam_iic, device_addr, 0x5848, 0xd)
cam_i2c_write(cam_iic, device_addr, 0x5849, 0xe)
cam_i2c_write(cam_iic, device_addr, 0x584a, 0xe)
cam_i2c_write(cam_iic, device_addr, 0x584b, 0xa)
cam_i2c_write(cam_iic, device_addr, 0x584c, 0xe)
cam_i2c_write(cam_iic, device_addr, 0x584d, 0xe)
cam_i2c_write(cam_iic, device_addr, 0x584e, 0x10)
cam_i2c_write(cam_iic, device_addr, 0x584f, 0x10)
cam_i2c_write(cam_iic, device_addr, 0x5850, 0x11)
cam_i2c_write(cam_iic, device_addr, 0x5851, 0xa)
cam_i2c_write(cam_iic, device_addr, 0x5852, 0xf)
cam_i2c_write(cam_iic, device_addr, 0x5853, 0xe)
cam_i2c_write(cam_iic, device_addr, 0x5854, 0x10)
cam_i2c_write(cam_iic, device_addr, 0x5855, 0x10)
cam_i2c_write(cam_iic, device_addr, 0x5856, 0x10)
cam_i2c_write(cam_iic, device_addr, 0x5857, 0xa)
cam_i2c_write(cam_iic, device_addr, 0x5858, 0xe)
cam_i2c_write(cam_iic, device_addr, 0x5859, 0xe)
cam_i2c_write(cam_iic, device_addr, 0x585a, 0xf)
cam_i2c_write(cam_iic, device_addr, 0x585b, 0xf)
cam_i2c_write(cam_iic, device_addr, 0x585c, 0xf)
cam_i2c_write(cam_iic, device_addr, 0x585d, 0xa)
cam_i2c_write(cam_iic, device_addr, 0x585e, 0x9)
cam_i2c_write(cam_iic, device_addr, 0x585f, 0xd)
cam_i2c_write(cam_iic, device_addr, 0x5860, 0xc)
cam_i2c_write(cam_iic, device_addr, 0x5861, 0xb)
cam_i2c_write(cam_iic, device_addr, 0x5862, 0xd)
cam_i2c_write(cam_iic, device_addr, 0x5863, 0x7)
cam_i2c_write(cam_iic, device_addr, 0x5864, 0x17)
cam_i2c_write(cam_iic, device_addr, 0x5865, 0x14)
cam_i2c_write(cam_iic, device_addr, 0x5866, 0x18)
cam_i2c_write(cam_iic, device_addr, 0x5867, 0x18)
cam_i2c_write(cam_iic, device_addr, 0x5868, 0x16)
cam_i2c_write(cam_iic, device_addr, 0x5869, 0x12)
cam_i2c_write(cam_iic, device_addr, 0x586a, 0x1b)
cam_i2c_write(cam_iic, device_addr, 0x586b, 0x1a)
cam_i2c_write(cam_iic, device_addr, 0x586c, 0x16)
cam_i2c_write(cam_iic, device_addr, 0x586d, 0x16)
cam_i2c_write(cam_iic, device_addr, 0x586e, 0x18)
cam_i2c_write(cam_iic, device_addr, 0x586f, 0x1f)
cam_i2c_write(cam_iic, device_addr, 0x5870, 0x1c)
cam_i2c_write(cam_iic, device_addr, 0x5871, 0x16)
cam_i2c_write(cam_iic, device_addr, 0x5872, 0x10)
cam_i2c_write(cam_iic, device_addr, 0x5873, 0xf)
cam_i2c_write(cam_iic, device_addr, 0x5874, 0x13)
cam_i2c_write(cam_iic, device_addr, 0x5875, 0x1c)
cam_i2c_write(cam_iic, device_addr, 0x5876, 0x1e)
cam_i2c_write(cam_iic, device_addr, 0x5877, 0x17)
cam_i2c_write(cam_iic, device_addr, 0x5878, 0x11)
cam_i2c_write(cam_iic, device_addr, 0x5879, 0x11)
cam_i2c_write(cam_iic, device_addr, 0x587a, 0x14)
cam_i2c_write(cam_iic, device_addr, 0x587b, 0x1e)
cam_i2c_write(cam_iic, device_addr, 0x587c, 0x1c)
cam_i2c_write(cam_iic, device_addr, 0x587d, 0x1c)
cam_i2c_write(cam_iic, device_addr, 0x587e, 0x1a)
cam_i2c_write(cam_iic, device_addr, 0x587f, 0x1a)
cam_i2c_write(cam_iic, device_addr, 0x5880, 0x1b)
cam_i2c_write(cam_iic, device_addr, 0x5881, 0x1f)
cam_i2c_write(cam_iic, device_addr, 0x5882, 0x14)
cam_i2c_write(cam_iic, device_addr, 0x5883, 0x1a)
cam_i2c_write(cam_iic, device_addr, 0x5884, 0x1d)
cam_i2c_write(cam_iic, device_addr, 0x5885, 0x1e)
cam_i2c_write(cam_iic, device_addr, 0x5886, 0x1a)
cam_i2c_write(cam_iic, device_addr, 0x5887, 0x1a)
cam_i2c_write(cam_iic, device_addr, 0x528a, 0x02)
cam_i2c_write(cam_iic, device_addr, 0x528b, 0x06)
cam_i2c_write(cam_iic, device_addr, 0x528c, 0x20)
cam_i2c_write(cam_iic, device_addr, 0x528d, 0x30)
cam_i2c_write(cam_iic, device_addr, 0x528e, 0x40)
cam_i2c_write(cam_iic, device_addr, 0x528f, 0x50)
cam_i2c_write(cam_iic, device_addr, 0x5290, 0x60)
cam_i2c_write(cam_iic, device_addr, 0x5292, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5293, 0x02)
cam_i2c_write(cam_iic, device_addr, 0x5294, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5295, 0x04)
cam_i2c_write(cam_iic, device_addr, 0x5296, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5297, 0x08)
cam_i2c_write(cam_iic, device_addr, 0x5298, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5299, 0x10)
cam_i2c_write(cam_iic, device_addr, 0x529a, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x529b, 0x20)
cam_i2c_write(cam_iic, device_addr, 0x529c, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x529d, 0x28)
cam_i2c_write(cam_iic, device_addr, 0x529e, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x529f, 0x30)
cam_i2c_write(cam_iic, device_addr, 0x5282, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5680, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5681, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5682, 0x05)
cam_i2c_write(cam_iic, device_addr, 0x5683, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5684, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5685, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5686, 0x03)
cam_i2c_write(cam_iic, device_addr, 0x5687, 0xc0)
cam_i2c_write(cam_iic, device_addr, 0x5180, 0xff)
cam_i2c_write(cam_iic, device_addr, 0x5181, 0x52)
cam_i2c_write(cam_iic, device_addr, 0x5182, 0x11)
cam_i2c_write(cam_iic, device_addr, 0x5183, 0x14)
cam_i2c_write(cam_iic, device_addr, 0x5184, 0x25)
cam_i2c_write(cam_iic, device_addr, 0x5185, 0x24)
cam_i2c_write(cam_iic, device_addr, 0x5186, 0x14)
cam_i2c_write(cam_iic, device_addr, 0x5187, 0x14)
cam_i2c_write(cam_iic, device_addr, 0x5188, 0x14)
cam_i2c_write(cam_iic, device_addr, 0x5189, 0x80)
cam_i2c_write(cam_iic, device_addr, 0x518a, 0x60)
cam_i2c_write(cam_iic, device_addr, 0x518b, 0xa2)
cam_i2c_write(cam_iic, device_addr, 0x518c, 0x9c)
cam_i2c_write(cam_iic, device_addr, 0x518d, 0x36)
cam_i2c_write(cam_iic, device_addr, 0x518e, 0x34)
cam_i2c_write(cam_iic, device_addr, 0x518f, 0x54)
cam_i2c_write(cam_iic, device_addr, 0x5190, 0x4c)
cam_i2c_write(cam_iic, device_addr, 0x5191, 0xf8)
cam_i2c_write(cam_iic, device_addr, 0x5192, 0x04)
cam_i2c_write(cam_iic, device_addr, 0x5193, 0x70)
cam_i2c_write(cam_iic, device_addr, 0x5194, 0xf0)
cam_i2c_write(cam_iic, device_addr, 0x5195, 0xf0)
cam_i2c_write(cam_iic, device_addr, 0x5196, 0x03)
cam_i2c_write(cam_iic, device_addr, 0x5197, 0x01)
cam_i2c_write(cam_iic, device_addr, 0x5198, 0x05)
cam_i2c_write(cam_iic, device_addr, 0x5199, 0x2f)
cam_i2c_write(cam_iic, device_addr, 0x519a, 0x04)
cam_i2c_write(cam_iic, device_addr, 0x519b, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x519c, 0x06)
cam_i2c_write(cam_iic, device_addr, 0x519d, 0xa0)
cam_i2c_write(cam_iic, device_addr, 0x519e, 0xa0)
cam_i2c_write(cam_iic, device_addr, 0x3a0f, 0x3c)
cam_i2c_write(cam_iic, device_addr, 0x3a10, 0x30)
cam_i2c_write(cam_iic, device_addr, 0x3a1b, 0x3c)
cam_i2c_write(cam_iic, device_addr, 0x3a1e, 0x30)
cam_i2c_write(cam_iic, device_addr, 0x3a11, 0x70)
cam_i2c_write(cam_iic, device_addr, 0x3a1f, 0x10)
cam_i2c_write(cam_iic, device_addr, 0x3800, 0x1)
cam_i2c_write(cam_iic, device_addr, 0x3801, 0x50)
cam_i2c_write(cam_iic, device_addr, 0x3802, 0x0)
cam_i2c_write(cam_iic, device_addr, 0x3803, 0x8)
cam_i2c_write(cam_iic, device_addr, 0x3804, 0x5)
cam_i2c_write(cam_iic, device_addr, 0x3805, 0x0)
cam_i2c_write(cam_iic, device_addr, 0x3806, 0x3)
cam_i2c_write(cam_iic, device_addr, 0x3807, 0xc0)
cam_i2c_write(cam_iic, device_addr, 0x3808, 0x3)
cam_i2c_write(cam_iic, device_addr, 0x3809, 0x20)
cam_i2c_write(cam_iic, device_addr, 0x380a, 0x2)
cam_i2c_write(cam_iic, device_addr, 0x380b, 0x58)
cam_i2c_write(cam_iic, device_addr, 0x380c, 0xc)
cam_i2c_write(cam_iic, device_addr, 0x380d, 0x80)
cam_i2c_write(cam_iic, device_addr, 0x380e, 0x3)
cam_i2c_write(cam_iic, device_addr, 0x380f, 0xe8)
cam_i2c_write(cam_iic, device_addr, 0x5001, 0x7f)
cam_i2c_write(cam_iic, device_addr, 0x5680, 0x0)
cam_i2c_write(cam_iic, device_addr, 0x5681, 0x0)
cam_i2c_write(cam_iic, device_addr, 0x5682, 0x5)
cam_i2c_write(cam_iic, device_addr, 0x5683, 0x0)
cam_i2c_write(cam_iic, device_addr, 0x5684, 0x0)
cam_i2c_write(cam_iic, device_addr, 0x5685, 0x0)
cam_i2c_write(cam_iic, device_addr, 0x5686, 0x3)
cam_i2c_write(cam_iic, device_addr, 0x5687, 0xc0)
cam_i2c_write(cam_iic, device_addr, 0x5687, 0xc0)
cam_i2c_write(cam_iic, device_addr, 0x3815, 0x02)
cam_i2c_write(cam_iic, device_addr, 0x3503, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x3818, 0x81) # No Mirror
cam_i2c_write(cam_iic, device_addr, 0x3621, 0xa7)
cam_i2c_write(cam_iic, device_addr, 0x4740, 0x21)
cam_i2c_write(cam_iic, device_addr, 0x501e, 0x2a)
cam_i2c_write(cam_iic, device_addr, 0x5002, 0x78)
cam_i2c_write(cam_iic, device_addr, 0x501f, 0x01)
cam_i2c_write(cam_iic, device_addr, 0x4300, 0x61)
# frame buffer alocate
height = 600
width = 800
buffer0 = allocate(shape=(height, width, 1), dtype=np.uint32, cacheable=1)
buffer1 = allocate(shape=(height, width, 1), dtype=np.uint32, cacheable=1)
buffer2 = allocate(shape=(height, width, 1), dtype=np.uint32, cacheable=1)
buffer3 = allocate(shape=(height, width, 3), dtype=np.uint8, cacheable=1)
# frame buffer resister set
vflip_dmaw.register_map.fb0_1 = buffer0.physical_address
vflip_dmaw.register_map.fb0_2 = 0
vflip_dmaw.register_map.fb1_1 = buffer1.physical_address
vflip_dmaw.register_map.fb1_2 = 0
vflip_dmaw.register_map.fb2_1 = buffer2.physical_address
vflip_dmaw.register_map.fb2_2 = 0
dma2axis30.register_map.fb0 = buffer0.physical_address
dma2axis30.register_map.fb1 = buffer1.physical_address
dma2axis30.register_map.fb2 = buffer2.physical_address
dma2axis30.register_map.mode = 0 # DMA_WRITE_MODE
dma2axis31.register_map.fb0 = buffer0.physical_address
dma2axis31.register_map.fb1 = buffer1.physical_address
dma2axis31.register_map.fb2 = buffer2.physical_address
dma2axis31.register_map.mode = 0 # DMA_WRITE_MODE
sobel0.register_map.row_size = height
sobel0.register_map.col_size = width
sobel0.register_map.function_r = 0 # ORG_IMGwAxiVdma
sobel1.register_map.row_size = height
sobel1.register_map.col_size = width
sobel1.register_map.function_r = 0 # ORG_IMGwAxiVdma
axis2dma.register_map.out_r = buffer3.physical_address
axis2dma.register_map.row_size = height
axis2dma.register_map.col_size = width
# vflip_dma_write start and auto repeat
vflip_dmaw.register_map.CTRL = 0x81
# Camera Initialization
cam_i2c_init(cam_iic)
cam_reg_set(cam_iic, 0x78)
# paracam_inf_axi start
paracam_inf.write(0x0, 0x0)
paracam_inf.write(0x4, 0x0)
# bitmap_disp_cont start
bmpd_cont.write(0x0, 0x0)
# sobel_axis_RGB24 start
sobel0.register_map.CTRL = 0x81
# dma2axis_3buf start and auto repeat
dma2axis30.register_map.CTRL = 0x81
# image capture
axis2dma.register_map.CTRL = 0x81
print(axis2dma.register_map.CTRL)
sobel1.register_map.CTRL = 0x81
print(sobel1.register_map.CTRL)
dma2axis31.register_map.CTRL = 0x81
print(dma2axis31.register_map.CTRL)
print(axis2dma.register_map.CTRL)
print(sobel1.register_map.CTRL)
print(dma2axis31.register_map.CTRL)
cam_image = Image.fromarray(buffer3)
print("Image size: {}x{} pixels.".format(width, height))
plt.figure(figsize=(12, 10));
_ = plt.imshow(cam_image)
#sobel filter on for camera image
sobel0.register_map.function_r = 1 # SOBELwAxiVdma
# sobel filter off for camera image
sobel0.register_map.function_r = 0 # ORG_IMGwAxiVdma
#sobel fliter on for image capture
sobel1.register_map.function_r = 1 # SOBELwAxiVdma
axis2dma.register_map.CTRL = 0x1
sobel1.register_map.CTRL = 0x1
dma2axis31.register_map.CTRL = 0x1
#sobel fliter off for image capture
sobel1.register_map.function_r = 0 # ORG_IMGwAxiVdma
axis2dma.register_map.CTRL = 0x1
sobel1.register_map.CTRL = 0x1
dma2axis31.register_map.CTRL = 0x1
# cam_disp.py
# 2022/08/05 by marsee
# 2022/08/14 : Added Sobel filter.
from PIL import Image
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
from pynq import allocate, Overlay
import time
# Download bitstream
cam_disp = Overlay("./cam_disp.bit")
# Generate an instance for each IP
vflip_dmaw = cam_disp.vflip_dma_write_0
dma2axis3 = cam_disp.DMA2axis_3buf_0
paracam_inf = cam_disp.paracam_inf_axis_0
bmpd_cont = cam_disp.btimap_disp_cont_axis_0
cam_iic = cam_disp.cam_iic_0
sobel = cam_disp.sobel_axis_RGB24_0
axis2dma = cam_disp.axis2DMA_0
def cam_i2c_init(cam_iic):
cam_iic.write(0x100, 0x2) # reset tx fifo ,address is 0x100, i2c_control_reg
cam_iic.write(0x100, 0x1) # enable i2c
def cam_i2x_write_sync():
time.sleep(0.001) # 1ms wait
def cam_i2c_write(cam_iic, device_addr, write_addr, write_data):
cam_iic.write(0x108, bin(0x100 | (device_addr & 0xfe))) # Slave IIC Write Address, address is 0x108, i2c_tx_fifo
cam_iic.write(0x108, bin((write_addr >> 8) & 0xff)) # address upper byte
cam_iic.write(0x108, bin(write_addr & 0xff)) # address lower byte
cam_iic.write(0x108, bin(0x200 | (write_data & 0xff))) # data
cam_i2x_write_sync()
def cam_reg_set(cam_iic, device_addr):
cam_i2c_write(cam_iic, device_addr, 0x3103, 0x93)
cam_i2c_write(cam_iic, device_addr, 0x3008, 0x82)
cam_i2c_write(cam_iic, device_addr, 0x3017, 0x7f)
cam_i2c_write(cam_iic, device_addr, 0x3018, 0xfc)
cam_i2c_write(cam_iic, device_addr, 0x3810, 0xc2)
cam_i2c_write(cam_iic, device_addr, 0x3615, 0xf0)
cam_i2c_write(cam_iic, device_addr, 0x3000, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x3001, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x3002, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x3003, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x3000, 0xf8)
cam_i2c_write(cam_iic, device_addr, 0x3001, 0x48)
cam_i2c_write(cam_iic, device_addr, 0x3002, 0x5c)
cam_i2c_write(cam_iic, device_addr, 0x3003, 0x02)
cam_i2c_write(cam_iic, device_addr, 0x3004, 0x07)
cam_i2c_write(cam_iic, device_addr, 0x3005, 0xb7)
cam_i2c_write(cam_iic, device_addr, 0x3006, 0x43)
cam_i2c_write(cam_iic, device_addr, 0x3007, 0x37)
cam_i2c_write(cam_iic, device_addr, 0x3011, 0x08) # 0x08 - 15fps, 0x10 - 30fps
cam_i2c_write(cam_iic, device_addr, 0x3010, 0x10)
cam_i2c_write(cam_iic, device_addr, 0x460c, 0x22)
cam_i2c_write(cam_iic, device_addr, 0x3815, 0x04)
cam_i2c_write(cam_iic, device_addr, 0x370d, 0x06)
cam_i2c_write(cam_iic, device_addr, 0x370c, 0xa0)
cam_i2c_write(cam_iic, device_addr, 0x3602, 0xfc)
cam_i2c_write(cam_iic, device_addr, 0x3612, 0xff)
cam_i2c_write(cam_iic, device_addr, 0x3634, 0xc0)
cam_i2c_write(cam_iic, device_addr, 0x3613, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x3605, 0x7c)
cam_i2c_write(cam_iic, device_addr, 0x3621, 0x09)
cam_i2c_write(cam_iic, device_addr, 0x3622, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x3604, 0x40)
cam_i2c_write(cam_iic, device_addr, 0x3603, 0xa7)
cam_i2c_write(cam_iic, device_addr, 0x3603, 0x27)
cam_i2c_write(cam_iic, device_addr, 0x4000, 0x21)
cam_i2c_write(cam_iic, device_addr, 0x401d, 0x02)
cam_i2c_write(cam_iic, device_addr, 0x3600, 0x54)
cam_i2c_write(cam_iic, device_addr, 0x3605, 0x04)
cam_i2c_write(cam_iic, device_addr, 0x3606, 0x3f)
cam_i2c_write(cam_iic, device_addr, 0x3c01, 0x80)
cam_i2c_write(cam_iic, device_addr, 0x5000, 0x4f)
cam_i2c_write(cam_iic, device_addr, 0x5020, 0x04)
cam_i2c_write(cam_iic, device_addr, 0x5181, 0x79)
cam_i2c_write(cam_iic, device_addr, 0x5182, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5185, 0x22)
cam_i2c_write(cam_iic, device_addr, 0x5197, 0x01)
cam_i2c_write(cam_iic, device_addr, 0x5001, 0xff)
cam_i2c_write(cam_iic, device_addr, 0x5500, 0x0a)
cam_i2c_write(cam_iic, device_addr, 0x5504, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5505, 0x7f)
cam_i2c_write(cam_iic, device_addr, 0x5080, 0x08)
cam_i2c_write(cam_iic, device_addr, 0x300e, 0x18)
cam_i2c_write(cam_iic, device_addr, 0x4610, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x471d, 0x05)
cam_i2c_write(cam_iic, device_addr, 0x4708, 0x06)
cam_i2c_write(cam_iic, device_addr, 0x3710, 0x10)
cam_i2c_write(cam_iic, device_addr, 0x3632, 0x41)
cam_i2c_write(cam_iic, device_addr, 0x3702, 0x40)
cam_i2c_write(cam_iic, device_addr, 0x3620, 0x37)
cam_i2c_write(cam_iic, device_addr, 0x3631, 0x01)
cam_i2c_write(cam_iic, device_addr, 0x3808, 0x02)
cam_i2c_write(cam_iic, device_addr, 0x3809, 0x80)
cam_i2c_write(cam_iic, device_addr, 0x380a, 0x01)
cam_i2c_write(cam_iic, device_addr, 0x380b, 0xe0)
cam_i2c_write(cam_iic, device_addr, 0x380e, 0x07)
cam_i2c_write(cam_iic, device_addr, 0x380f, 0xd0)
cam_i2c_write(cam_iic, device_addr, 0x501f, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5000, 0x4f)
cam_i2c_write(cam_iic, device_addr, 0x4300, 0x61) # RGB565
cam_i2c_write(cam_iic, device_addr, 0x3503, 0x07)
cam_i2c_write(cam_iic, device_addr, 0x3501, 0x73)
cam_i2c_write(cam_iic, device_addr, 0x3502, 0x80)
cam_i2c_write(cam_iic, device_addr, 0x350b, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x3503, 0x07)
cam_i2c_write(cam_iic, device_addr, 0x3824, 0x11)
cam_i2c_write(cam_iic, device_addr, 0x3501, 0x1e)
cam_i2c_write(cam_iic, device_addr, 0x3502, 0x80)
cam_i2c_write(cam_iic, device_addr, 0x350b, 0x7f)
cam_i2c_write(cam_iic, device_addr, 0x380c, 0x0c)
cam_i2c_write(cam_iic, device_addr, 0x380d, 0x80)
cam_i2c_write(cam_iic, device_addr, 0x380e, 0x03)
cam_i2c_write(cam_iic, device_addr, 0x380f, 0xe8)
cam_i2c_write(cam_iic, device_addr, 0x3a0d, 0x04)
cam_i2c_write(cam_iic, device_addr, 0x3a0e, 0x03)
cam_i2c_write(cam_iic, device_addr, 0x3818, 0xc1)
cam_i2c_write(cam_iic, device_addr, 0x3705, 0xdb)
cam_i2c_write(cam_iic, device_addr, 0x370a, 0x81)
cam_i2c_write(cam_iic, device_addr, 0x3801, 0x80)
cam_i2c_write(cam_iic, device_addr, 0x3621, 0xc7)
cam_i2c_write(cam_iic, device_addr, 0x3801, 0x50)
cam_i2c_write(cam_iic, device_addr, 0x3803, 0x08)
cam_i2c_write(cam_iic, device_addr, 0x3827, 0x08)
cam_i2c_write(cam_iic, device_addr, 0x3810, 0xc0)
cam_i2c_write(cam_iic, device_addr, 0x3804, 0x05)
cam_i2c_write(cam_iic, device_addr, 0x3805, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5682, 0x05)
cam_i2c_write(cam_iic, device_addr, 0x5683, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x3806, 0x03)
cam_i2c_write(cam_iic, device_addr, 0x3807, 0xc0)
cam_i2c_write(cam_iic, device_addr, 0x5686, 0x03)
cam_i2c_write(cam_iic, device_addr, 0x5687, 0xc0)
cam_i2c_write(cam_iic, device_addr, 0x3a00, 0x78)
cam_i2c_write(cam_iic, device_addr, 0x3a1a, 0x04)
cam_i2c_write(cam_iic, device_addr, 0x3a13, 0x30)
cam_i2c_write(cam_iic, device_addr, 0x3a18, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x3a19, 0x7c)
cam_i2c_write(cam_iic, device_addr, 0x3a08, 0x12)
cam_i2c_write(cam_iic, device_addr, 0x3a09, 0xc0)
cam_i2c_write(cam_iic, device_addr, 0x3a0a, 0x0f)
cam_i2c_write(cam_iic, device_addr, 0x3a0b, 0xa0)
cam_i2c_write(cam_iic, device_addr, 0x3004, 0xff)
cam_i2c_write(cam_iic, device_addr, 0x350c, 0x07)
cam_i2c_write(cam_iic, device_addr, 0x350d, 0xd0)
cam_i2c_write(cam_iic, device_addr, 0x3500, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x3501, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x3502, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x350a, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x350b, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x3503, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x528a, 0x02)
cam_i2c_write(cam_iic, device_addr, 0x528b, 0x04)
cam_i2c_write(cam_iic, device_addr, 0x528c, 0x08)
cam_i2c_write(cam_iic, device_addr, 0x528d, 0x08)
cam_i2c_write(cam_iic, device_addr, 0x528e, 0x08)
cam_i2c_write(cam_iic, device_addr, 0x528f, 0x10)
cam_i2c_write(cam_iic, device_addr, 0x5290, 0x10)
cam_i2c_write(cam_iic, device_addr, 0x5292, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5293, 0x02)
cam_i2c_write(cam_iic, device_addr, 0x5294, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5295, 0x02)
cam_i2c_write(cam_iic, device_addr, 0x5296, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5297, 0x02)
cam_i2c_write(cam_iic, device_addr, 0x5298, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5299, 0x02)
cam_i2c_write(cam_iic, device_addr, 0x529a, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x529b, 0x02)
cam_i2c_write(cam_iic, device_addr, 0x529c, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x529d, 0x02)
cam_i2c_write(cam_iic, device_addr, 0x529e, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x529f, 0x02)
cam_i2c_write(cam_iic, device_addr, 0x3a0f, 0x3c)
cam_i2c_write(cam_iic, device_addr, 0x3a10, 0x30)
cam_i2c_write(cam_iic, device_addr, 0x3a1b, 0x3c)
cam_i2c_write(cam_iic, device_addr, 0x3a1e, 0x30)
cam_i2c_write(cam_iic, device_addr, 0x3a11, 0x70)
cam_i2c_write(cam_iic, device_addr, 0x3a1f, 0x10)
cam_i2c_write(cam_iic, device_addr, 0x3030, 0x0b)
cam_i2c_write(cam_iic, device_addr, 0x3a02, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x3a03, 0x7d)
cam_i2c_write(cam_iic, device_addr, 0x3a04, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x3a14, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x3a15, 0x7d)
cam_i2c_write(cam_iic, device_addr, 0x3a16, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x3a00, 0x78)
cam_i2c_write(cam_iic, device_addr, 0x3a08, 0x09)
cam_i2c_write(cam_iic, device_addr, 0x3a09, 0x60)
cam_i2c_write(cam_iic, device_addr, 0x3a0a, 0x07)
cam_i2c_write(cam_iic, device_addr, 0x3a0b, 0xd0)
cam_i2c_write(cam_iic, device_addr, 0x3a0d, 0x08)
cam_i2c_write(cam_iic, device_addr, 0x3a0e, 0x06)
cam_i2c_write(cam_iic, device_addr, 0x5193, 0x70)
cam_i2c_write(cam_iic, device_addr, 0x3620, 0x57)
cam_i2c_write(cam_iic, device_addr, 0x3703, 0x98)
cam_i2c_write(cam_iic, device_addr, 0x3704, 0x1c)
cam_i2c_write(cam_iic, device_addr, 0x589b, 0x04)
cam_i2c_write(cam_iic, device_addr, 0x589a, 0xc5)
cam_i2c_write(cam_iic, device_addr, 0x528a, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x528b, 0x02)
cam_i2c_write(cam_iic, device_addr, 0x528c, 0x08)
cam_i2c_write(cam_iic, device_addr, 0x528d, 0x10)
cam_i2c_write(cam_iic, device_addr, 0x528e, 0x20)
cam_i2c_write(cam_iic, device_addr, 0x528f, 0x28)
cam_i2c_write(cam_iic, device_addr, 0x5290, 0x30)
cam_i2c_write(cam_iic, device_addr, 0x5292, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5293, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5294, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5295, 0x02)
cam_i2c_write(cam_iic, device_addr, 0x5296, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5297, 0x08)
cam_i2c_write(cam_iic, device_addr, 0x5298, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5299, 0x10)
cam_i2c_write(cam_iic, device_addr, 0x529a, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x529b, 0x20)
cam_i2c_write(cam_iic, device_addr, 0x529c, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x529d, 0x28)
cam_i2c_write(cam_iic, device_addr, 0x529e, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x529f, 0x30)
cam_i2c_write(cam_iic, device_addr, 0x5282, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5300, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5301, 0x20)
cam_i2c_write(cam_iic, device_addr, 0x5302, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5303, 0x7c)
cam_i2c_write(cam_iic, device_addr, 0x530c, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x530d, 0x0c)
cam_i2c_write(cam_iic, device_addr, 0x530e, 0x20)
cam_i2c_write(cam_iic, device_addr, 0x530f, 0x80)
cam_i2c_write(cam_iic, device_addr, 0x5310, 0x20)
cam_i2c_write(cam_iic, device_addr, 0x5311, 0x80)
cam_i2c_write(cam_iic, device_addr, 0x5308, 0x20)
cam_i2c_write(cam_iic, device_addr, 0x5309, 0x40)
cam_i2c_write(cam_iic, device_addr, 0x5304, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5305, 0x30)
cam_i2c_write(cam_iic, device_addr, 0x5306, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5307, 0x80)
cam_i2c_write(cam_iic, device_addr, 0x5314, 0x08)
cam_i2c_write(cam_iic, device_addr, 0x5315, 0x20)
cam_i2c_write(cam_iic, device_addr, 0x5319, 0x30)
cam_i2c_write(cam_iic, device_addr, 0x5316, 0x10)
cam_i2c_write(cam_iic, device_addr, 0x5317, 0x08)
cam_i2c_write(cam_iic, device_addr, 0x5318, 0x02)
cam_i2c_write(cam_iic, device_addr, 0x5380, 0x01)
cam_i2c_write(cam_iic, device_addr, 0x5381, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5382, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5383, 0x4e)
cam_i2c_write(cam_iic, device_addr, 0x5384, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5385, 0x0f)
cam_i2c_write(cam_iic, device_addr, 0x5386, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5387, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5388, 0x01)
cam_i2c_write(cam_iic, device_addr, 0x5389, 0x15)
cam_i2c_write(cam_iic, device_addr, 0x538a, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x538b, 0x31)
cam_i2c_write(cam_iic, device_addr, 0x538c, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x538d, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x538e, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x538f, 0x0f)
cam_i2c_write(cam_iic, device_addr, 0x5390, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5391, 0xab)
cam_i2c_write(cam_iic, device_addr, 0x5392, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5393, 0xa2)
cam_i2c_write(cam_iic, device_addr, 0x5394, 0x08)
cam_i2c_write(cam_iic, device_addr, 0x5480, 0x14)
cam_i2c_write(cam_iic, device_addr, 0x5481, 0x21)
cam_i2c_write(cam_iic, device_addr, 0x5482, 0x36)
cam_i2c_write(cam_iic, device_addr, 0x5483, 0x57)
cam_i2c_write(cam_iic, device_addr, 0x5484, 0x65)
cam_i2c_write(cam_iic, device_addr, 0x5485, 0x71)
cam_i2c_write(cam_iic, device_addr, 0x5486, 0x7d)
cam_i2c_write(cam_iic, device_addr, 0x5487, 0x87)
cam_i2c_write(cam_iic, device_addr, 0x5488, 0x91)
cam_i2c_write(cam_iic, device_addr, 0x5489, 0x9a)
cam_i2c_write(cam_iic, device_addr, 0x548a, 0xaa)
cam_i2c_write(cam_iic, device_addr, 0x548b, 0xb8)
cam_i2c_write(cam_iic, device_addr, 0x548c, 0xcd)
cam_i2c_write(cam_iic, device_addr, 0x548d, 0xdd)
cam_i2c_write(cam_iic, device_addr, 0x548e, 0xea)
cam_i2c_write(cam_iic, device_addr, 0x548f, 0x10)
cam_i2c_write(cam_iic, device_addr, 0x5490, 0x05)
cam_i2c_write(cam_iic, device_addr, 0x5491, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5492, 0x04)
cam_i2c_write(cam_iic, device_addr, 0x5493, 0x20)
cam_i2c_write(cam_iic, device_addr, 0x5494, 0x03)
cam_i2c_write(cam_iic, device_addr, 0x5495, 0x60)
cam_i2c_write(cam_iic, device_addr, 0x5496, 0x02)
cam_i2c_write(cam_iic, device_addr, 0x5497, 0xb8)
cam_i2c_write(cam_iic, device_addr, 0x5498, 0x02)
cam_i2c_write(cam_iic, device_addr, 0x5499, 0x86)
cam_i2c_write(cam_iic, device_addr, 0x549a, 0x02)
cam_i2c_write(cam_iic, device_addr, 0x549b, 0x5b)
cam_i2c_write(cam_iic, device_addr, 0x549c, 0x02)
cam_i2c_write(cam_iic, device_addr, 0x549d, 0x3b)
cam_i2c_write(cam_iic, device_addr, 0x549e, 0x02)
cam_i2c_write(cam_iic, device_addr, 0x549f, 0x1c)
cam_i2c_write(cam_iic, device_addr, 0x54a0, 0x02)
cam_i2c_write(cam_iic, device_addr, 0x54a1, 0x04)
cam_i2c_write(cam_iic, device_addr, 0x54a2, 0x01)
cam_i2c_write(cam_iic, device_addr, 0x54a3, 0xed)
cam_i2c_write(cam_iic, device_addr, 0x54a4, 0x01)
cam_i2c_write(cam_iic, device_addr, 0x54a5, 0xc5)
cam_i2c_write(cam_iic, device_addr, 0x54a6, 0x01)
cam_i2c_write(cam_iic, device_addr, 0x54a7, 0xa5)
cam_i2c_write(cam_iic, device_addr, 0x54a8, 0x01)
cam_i2c_write(cam_iic, device_addr, 0x54a9, 0x6c)
cam_i2c_write(cam_iic, device_addr, 0x54aa, 0x01)
cam_i2c_write(cam_iic, device_addr, 0x54ab, 0x41)
cam_i2c_write(cam_iic, device_addr, 0x54ac, 0x01)
cam_i2c_write(cam_iic, device_addr, 0x54ad, 0x20)
cam_i2c_write(cam_iic, device_addr, 0x54ae, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x54af, 0x16)
cam_i2c_write(cam_iic, device_addr, 0x3406, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5192, 0x04) # 0x04
cam_i2c_write(cam_iic, device_addr, 0x5191, 0xf8) # 0xf8
cam_i2c_write(cam_iic, device_addr, 0x5193, 0x70)
cam_i2c_write(cam_iic, device_addr, 0x5194, 0xf0)
cam_i2c_write(cam_iic, device_addr, 0x5195, 0xf0)
cam_i2c_write(cam_iic, device_addr, 0x518d, 0x3d)
cam_i2c_write(cam_iic, device_addr, 0x518f, 0x54)
cam_i2c_write(cam_iic, device_addr, 0x518e, 0x3d)
cam_i2c_write(cam_iic, device_addr, 0x5190, 0x54)
cam_i2c_write(cam_iic, device_addr, 0x518b, 0xc0)
cam_i2c_write(cam_iic, device_addr, 0x518c, 0xbd)
cam_i2c_write(cam_iic, device_addr, 0x5187, 0x18)
cam_i2c_write(cam_iic, device_addr, 0x5188, 0x18)
cam_i2c_write(cam_iic, device_addr, 0x5189, 0x6e)
cam_i2c_write(cam_iic, device_addr, 0x518a, 0x68)
cam_i2c_write(cam_iic, device_addr, 0x5186, 0x1c)
cam_i2c_write(cam_iic, device_addr, 0x5181, 0x50)
cam_i2c_write(cam_iic, device_addr, 0x5184, 0x25)
cam_i2c_write(cam_iic, device_addr, 0x5182, 0x11)
cam_i2c_write(cam_iic, device_addr, 0x5183, 0x14)
cam_i2c_write(cam_iic, device_addr, 0x5184, 0x25)
cam_i2c_write(cam_iic, device_addr, 0x5185, 0x24)
cam_i2c_write(cam_iic, device_addr, 0x5025, 0x82)
cam_i2c_write(cam_iic, device_addr, 0x5583, 0x40)
cam_i2c_write(cam_iic, device_addr, 0x5584, 0x40)
cam_i2c_write(cam_iic, device_addr, 0x5580, 0x02) # 0x02
cam_i2c_write(cam_iic, device_addr, 0x3633, 0x07)
cam_i2c_write(cam_iic, device_addr, 0x3702, 0x10)
cam_i2c_write(cam_iic, device_addr, 0x3703, 0xb2)
cam_i2c_write(cam_iic, device_addr, 0x3704, 0x18)
cam_i2c_write(cam_iic, device_addr, 0x370b, 0x40)
cam_i2c_write(cam_iic, device_addr, 0x370d, 0x02)
cam_i2c_write(cam_iic, device_addr, 0x3620, 0x52)
cam_i2c_write(cam_iic, device_addr, 0x3c00, 0x04)
cam_i2c_write(cam_iic, device_addr, 0x5001, 0xFF)
cam_i2c_write(cam_iic, device_addr, 0x5282, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5300, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5301, 0x20)
cam_i2c_write(cam_iic, device_addr, 0x5302, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5303, 0x7c)
cam_i2c_write(cam_iic, device_addr, 0x530c, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x530d, 0x10)
cam_i2c_write(cam_iic, device_addr, 0x530e, 0x20)
cam_i2c_write(cam_iic, device_addr, 0x530f, 0x80)
cam_i2c_write(cam_iic, device_addr, 0x5310, 0x20)
cam_i2c_write(cam_iic, device_addr, 0x5311, 0x80)
cam_i2c_write(cam_iic, device_addr, 0x5308, 0x20)
cam_i2c_write(cam_iic, device_addr, 0x5309, 0x40)
cam_i2c_write(cam_iic, device_addr, 0x5304, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5305, 0x30)
cam_i2c_write(cam_iic, device_addr, 0x5306, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5307, 0x80)
cam_i2c_write(cam_iic, device_addr, 0x5314, 0x08)
cam_i2c_write(cam_iic, device_addr, 0x5315, 0x20)
cam_i2c_write(cam_iic, device_addr, 0x5319, 0x30)
cam_i2c_write(cam_iic, device_addr, 0x5316, 0x10)
cam_i2c_write(cam_iic, device_addr, 0x5317, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5318, 0x02)
cam_i2c_write(cam_iic, device_addr, 0x5500, 0x10)
cam_i2c_write(cam_iic, device_addr, 0x5502, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5503, 0x06)
cam_i2c_write(cam_iic, device_addr, 0x5504, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5505, 0x7f)
cam_i2c_write(cam_iic, device_addr, 0x5025, 0x80)
cam_i2c_write(cam_iic, device_addr, 0x5300, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5301, 0x20)
cam_i2c_write(cam_iic, device_addr, 0x5302, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5303, 0x7c)
cam_i2c_write(cam_iic, device_addr, 0x530c, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x530d, 0x0c)
cam_i2c_write(cam_iic, device_addr, 0x530e, 0x20)
cam_i2c_write(cam_iic, device_addr, 0x530f, 0x80)
cam_i2c_write(cam_iic, device_addr, 0x5310, 0x20)
cam_i2c_write(cam_iic, device_addr, 0x5311, 0x80)
cam_i2c_write(cam_iic, device_addr, 0x5308, 0x20)
cam_i2c_write(cam_iic, device_addr, 0x5309, 0x40)
cam_i2c_write(cam_iic, device_addr, 0x5304, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5305, 0x30)
cam_i2c_write(cam_iic, device_addr, 0x5306, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5307, 0x80)
cam_i2c_write(cam_iic, device_addr, 0x5314, 0x08)
cam_i2c_write(cam_iic, device_addr, 0x5315, 0x20)
cam_i2c_write(cam_iic, device_addr, 0x5319, 0x30)
cam_i2c_write(cam_iic, device_addr, 0x5316, 0x10)
cam_i2c_write(cam_iic, device_addr, 0x5317, 0x08)
cam_i2c_write(cam_iic, device_addr, 0x5318, 0x02)
cam_i2c_write(cam_iic, device_addr, 0x5380, 0x01)
cam_i2c_write(cam_iic, device_addr, 0x5381, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5382, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5383, 0x1f)
cam_i2c_write(cam_iic, device_addr, 0x5384, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5385, 0x06)
cam_i2c_write(cam_iic, device_addr, 0x5386, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5387, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5388, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5389, 0xE1)
cam_i2c_write(cam_iic, device_addr, 0x538A, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x538B, 0x2B)
cam_i2c_write(cam_iic, device_addr, 0x538C, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x538D, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x538E, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x538F, 0x10)
cam_i2c_write(cam_iic, device_addr, 0x5390, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5391, 0xB3)
cam_i2c_write(cam_iic, device_addr, 0x5392, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5393, 0xA6)
cam_i2c_write(cam_iic, device_addr, 0x5394, 0x08)
cam_i2c_write(cam_iic, device_addr, 0x5480, 0xd)
cam_i2c_write(cam_iic, device_addr, 0x5481, 0x18)
cam_i2c_write(cam_iic, device_addr, 0x5482, 0x2a)
cam_i2c_write(cam_iic, device_addr, 0x5483, 0x49)
cam_i2c_write(cam_iic, device_addr, 0x5484, 0x56)
cam_i2c_write(cam_iic, device_addr, 0x5485, 0x62)
cam_i2c_write(cam_iic, device_addr, 0x5486, 0x6c)
cam_i2c_write(cam_iic, device_addr, 0x5487, 0x76)
cam_i2c_write(cam_iic, device_addr, 0x5488, 0x80)
cam_i2c_write(cam_iic, device_addr, 0x5489, 0x88)
cam_i2c_write(cam_iic, device_addr, 0x548a, 0x96)
cam_i2c_write(cam_iic, device_addr, 0x548b, 0xa2)
cam_i2c_write(cam_iic, device_addr, 0x548c, 0xb8)
cam_i2c_write(cam_iic, device_addr, 0x548d, 0xcc)
cam_i2c_write(cam_iic, device_addr, 0x548e, 0xe0)
cam_i2c_write(cam_iic, device_addr, 0x548f, 0x10)
cam_i2c_write(cam_iic, device_addr, 0x5490, 0x3)
cam_i2c_write(cam_iic, device_addr, 0x5491, 0x40)
cam_i2c_write(cam_iic, device_addr, 0x5492, 0x3)
cam_i2c_write(cam_iic, device_addr, 0x5493, 0x0)
cam_i2c_write(cam_iic, device_addr, 0x5494, 0x2)
cam_i2c_write(cam_iic, device_addr, 0x5495, 0xa0)
cam_i2c_write(cam_iic, device_addr, 0x5496, 0x2)
cam_i2c_write(cam_iic, device_addr, 0x5497, 0x48)
cam_i2c_write(cam_iic, device_addr, 0x5498, 0x2)
cam_i2c_write(cam_iic, device_addr, 0x5499, 0x26)
cam_i2c_write(cam_iic, device_addr, 0x549a, 0x2)
cam_i2c_write(cam_iic, device_addr, 0x549b, 0xb)
cam_i2c_write(cam_iic, device_addr, 0x549c, 0x1)
cam_i2c_write(cam_iic, device_addr, 0x549d, 0xee)
cam_i2c_write(cam_iic, device_addr, 0x549e, 0x1)
cam_i2c_write(cam_iic, device_addr, 0x549f, 0xd8)
cam_i2c_write(cam_iic, device_addr, 0x54a0, 0x1)
cam_i2c_write(cam_iic, device_addr, 0x54a1, 0xc7)
cam_i2c_write(cam_iic, device_addr, 0x54a2, 0x1)
cam_i2c_write(cam_iic, device_addr, 0x54a3, 0xb3)
cam_i2c_write(cam_iic, device_addr, 0x54a4, 0x1)
cam_i2c_write(cam_iic, device_addr, 0x54a5, 0x90)
cam_i2c_write(cam_iic, device_addr, 0x54a6, 0x1)
cam_i2c_write(cam_iic, device_addr, 0x54a7, 0x62)
cam_i2c_write(cam_iic, device_addr, 0x54a8, 0x1)
cam_i2c_write(cam_iic, device_addr, 0x54a9, 0x27)
cam_i2c_write(cam_iic, device_addr, 0x54aa, 0x01)
cam_i2c_write(cam_iic, device_addr, 0x54ab, 0x09)
cam_i2c_write(cam_iic, device_addr, 0x54ac, 0x01)
cam_i2c_write(cam_iic, device_addr, 0x54ad, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x54ae, 0x0)
cam_i2c_write(cam_iic, device_addr, 0x54af, 0x40)
cam_i2c_write(cam_iic, device_addr, 0x54b0, 0x1)
cam_i2c_write(cam_iic, device_addr, 0x54b1, 0x20)
cam_i2c_write(cam_iic, device_addr, 0x54b2, 0x1)
cam_i2c_write(cam_iic, device_addr, 0x54b3, 0x40)
cam_i2c_write(cam_iic, device_addr, 0x54b4, 0x0)
cam_i2c_write(cam_iic, device_addr, 0x54b5, 0xf0)
cam_i2c_write(cam_iic, device_addr, 0x54b6, 0x1)
cam_i2c_write(cam_iic, device_addr, 0x54b7, 0xdf)
cam_i2c_write(cam_iic, device_addr, 0x5583, 0x5d)
cam_i2c_write(cam_iic, device_addr, 0x5584, 0x5d)
cam_i2c_write(cam_iic, device_addr, 0x5580, 0x06)
cam_i2c_write(cam_iic, device_addr, 0x5587, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5588, 0x20)
cam_i2c_write(cam_iic, device_addr, 0x558a, 0x09)
cam_i2c_write(cam_iic, device_addr, 0x5589, 0x10)
cam_i2c_write(cam_iic, device_addr, 0x5000, 0xcf)
cam_i2c_write(cam_iic, device_addr, 0x5800, 0x48)
cam_i2c_write(cam_iic, device_addr, 0x5801, 0x31)
cam_i2c_write(cam_iic, device_addr, 0x5802, 0x21)
cam_i2c_write(cam_iic, device_addr, 0x5803, 0x1b)
cam_i2c_write(cam_iic, device_addr, 0x5804, 0x1a)
cam_i2c_write(cam_iic, device_addr, 0x5805, 0x1e)
cam_i2c_write(cam_iic, device_addr, 0x5806, 0x29)
cam_i2c_write(cam_iic, device_addr, 0x5807, 0x38)
cam_i2c_write(cam_iic, device_addr, 0x5808, 0x26)
cam_i2c_write(cam_iic, device_addr, 0x5809, 0x17)
cam_i2c_write(cam_iic, device_addr, 0x580a, 0x11)
cam_i2c_write(cam_iic, device_addr, 0x580b, 0xe)
cam_i2c_write(cam_iic, device_addr, 0x580c, 0xd)
cam_i2c_write(cam_iic, device_addr, 0x580d, 0xe)
cam_i2c_write(cam_iic, device_addr, 0x580e, 0x13)
cam_i2c_write(cam_iic, device_addr, 0x580f, 0x1a)
cam_i2c_write(cam_iic, device_addr, 0x5810, 0x15)
cam_i2c_write(cam_iic, device_addr, 0x5811, 0xd)
cam_i2c_write(cam_iic, device_addr, 0x5812, 0x8)
cam_i2c_write(cam_iic, device_addr, 0x5813, 0x5)
cam_i2c_write(cam_iic, device_addr, 0x5814, 0x4)
cam_i2c_write(cam_iic, device_addr, 0x5815, 0x5)
cam_i2c_write(cam_iic, device_addr, 0x5816, 0x9)
cam_i2c_write(cam_iic, device_addr, 0x5817, 0xd)
cam_i2c_write(cam_iic, device_addr, 0x5818, 0x11)
cam_i2c_write(cam_iic, device_addr, 0x5819, 0xa)
cam_i2c_write(cam_iic, device_addr, 0x581a, 0x4)
cam_i2c_write(cam_iic, device_addr, 0x581b, 0x0)
cam_i2c_write(cam_iic, device_addr, 0x581c, 0x0)
cam_i2c_write(cam_iic, device_addr, 0x581d, 0x1)
cam_i2c_write(cam_iic, device_addr, 0x581e, 0x6)
cam_i2c_write(cam_iic, device_addr, 0x581f, 0x9)
cam_i2c_write(cam_iic, device_addr, 0x5820, 0x12)
cam_i2c_write(cam_iic, device_addr, 0x5821, 0xb)
cam_i2c_write(cam_iic, device_addr, 0x5822, 0x4)
cam_i2c_write(cam_iic, device_addr, 0x5823, 0x0)
cam_i2c_write(cam_iic, device_addr, 0x5824, 0x0)
cam_i2c_write(cam_iic, device_addr, 0x5825, 0x1)
cam_i2c_write(cam_iic, device_addr, 0x5826, 0x6)
cam_i2c_write(cam_iic, device_addr, 0x5827, 0xa)
cam_i2c_write(cam_iic, device_addr, 0x5828, 0x17)
cam_i2c_write(cam_iic, device_addr, 0x5829, 0xf)
cam_i2c_write(cam_iic, device_addr, 0x582a, 0x9)
cam_i2c_write(cam_iic, device_addr, 0x582b, 0x6)
cam_i2c_write(cam_iic, device_addr, 0x582c, 0x5)
cam_i2c_write(cam_iic, device_addr, 0x582d, 0x6)
cam_i2c_write(cam_iic, device_addr, 0x582e, 0xa)
cam_i2c_write(cam_iic, device_addr, 0x582f, 0xe)
cam_i2c_write(cam_iic, device_addr, 0x5830, 0x28)
cam_i2c_write(cam_iic, device_addr, 0x5831, 0x1a)
cam_i2c_write(cam_iic, device_addr, 0x5832, 0x11)
cam_i2c_write(cam_iic, device_addr, 0x5833, 0xe)
cam_i2c_write(cam_iic, device_addr, 0x5834, 0xe)
cam_i2c_write(cam_iic, device_addr, 0x5835, 0xf)
cam_i2c_write(cam_iic, device_addr, 0x5836, 0x15)
cam_i2c_write(cam_iic, device_addr, 0x5837, 0x1d)
cam_i2c_write(cam_iic, device_addr, 0x5838, 0x6e)
cam_i2c_write(cam_iic, device_addr, 0x5839, 0x39)
cam_i2c_write(cam_iic, device_addr, 0x583a, 0x27)
cam_i2c_write(cam_iic, device_addr, 0x583b, 0x1f)
cam_i2c_write(cam_iic, device_addr, 0x583c, 0x1e)
cam_i2c_write(cam_iic, device_addr, 0x583d, 0x23)
cam_i2c_write(cam_iic, device_addr, 0x583e, 0x2f)
cam_i2c_write(cam_iic, device_addr, 0x583f, 0x41)
cam_i2c_write(cam_iic, device_addr, 0x5840, 0xe)
cam_i2c_write(cam_iic, device_addr, 0x5841, 0xc)
cam_i2c_write(cam_iic, device_addr, 0x5842, 0xd)
cam_i2c_write(cam_iic, device_addr, 0x5843, 0xc)
cam_i2c_write(cam_iic, device_addr, 0x5844, 0xc)
cam_i2c_write(cam_iic, device_addr, 0x5845, 0xc)
cam_i2c_write(cam_iic, device_addr, 0x5846, 0xc)
cam_i2c_write(cam_iic, device_addr, 0x5847, 0xc)
cam_i2c_write(cam_iic, device_addr, 0x5848, 0xd)
cam_i2c_write(cam_iic, device_addr, 0x5849, 0xe)
cam_i2c_write(cam_iic, device_addr, 0x584a, 0xe)
cam_i2c_write(cam_iic, device_addr, 0x584b, 0xa)
cam_i2c_write(cam_iic, device_addr, 0x584c, 0xe)
cam_i2c_write(cam_iic, device_addr, 0x584d, 0xe)
cam_i2c_write(cam_iic, device_addr, 0x584e, 0x10)
cam_i2c_write(cam_iic, device_addr, 0x584f, 0x10)
cam_i2c_write(cam_iic, device_addr, 0x5850, 0x11)
cam_i2c_write(cam_iic, device_addr, 0x5851, 0xa)
cam_i2c_write(cam_iic, device_addr, 0x5852, 0xf)
cam_i2c_write(cam_iic, device_addr, 0x5853, 0xe)
cam_i2c_write(cam_iic, device_addr, 0x5854, 0x10)
cam_i2c_write(cam_iic, device_addr, 0x5855, 0x10)
cam_i2c_write(cam_iic, device_addr, 0x5856, 0x10)
cam_i2c_write(cam_iic, device_addr, 0x5857, 0xa)
cam_i2c_write(cam_iic, device_addr, 0x5858, 0xe)
cam_i2c_write(cam_iic, device_addr, 0x5859, 0xe)
cam_i2c_write(cam_iic, device_addr, 0x585a, 0xf)
cam_i2c_write(cam_iic, device_addr, 0x585b, 0xf)
cam_i2c_write(cam_iic, device_addr, 0x585c, 0xf)
cam_i2c_write(cam_iic, device_addr, 0x585d, 0xa)
cam_i2c_write(cam_iic, device_addr, 0x585e, 0x9)
cam_i2c_write(cam_iic, device_addr, 0x585f, 0xd)
cam_i2c_write(cam_iic, device_addr, 0x5860, 0xc)
cam_i2c_write(cam_iic, device_addr, 0x5861, 0xb)
cam_i2c_write(cam_iic, device_addr, 0x5862, 0xd)
cam_i2c_write(cam_iic, device_addr, 0x5863, 0x7)
cam_i2c_write(cam_iic, device_addr, 0x5864, 0x17)
cam_i2c_write(cam_iic, device_addr, 0x5865, 0x14)
cam_i2c_write(cam_iic, device_addr, 0x5866, 0x18)
cam_i2c_write(cam_iic, device_addr, 0x5867, 0x18)
cam_i2c_write(cam_iic, device_addr, 0x5868, 0x16)
cam_i2c_write(cam_iic, device_addr, 0x5869, 0x12)
cam_i2c_write(cam_iic, device_addr, 0x586a, 0x1b)
cam_i2c_write(cam_iic, device_addr, 0x586b, 0x1a)
cam_i2c_write(cam_iic, device_addr, 0x586c, 0x16)
cam_i2c_write(cam_iic, device_addr, 0x586d, 0x16)
cam_i2c_write(cam_iic, device_addr, 0x586e, 0x18)
cam_i2c_write(cam_iic, device_addr, 0x586f, 0x1f)
cam_i2c_write(cam_iic, device_addr, 0x5870, 0x1c)
cam_i2c_write(cam_iic, device_addr, 0x5871, 0x16)
cam_i2c_write(cam_iic, device_addr, 0x5872, 0x10)
cam_i2c_write(cam_iic, device_addr, 0x5873, 0xf)
cam_i2c_write(cam_iic, device_addr, 0x5874, 0x13)
cam_i2c_write(cam_iic, device_addr, 0x5875, 0x1c)
cam_i2c_write(cam_iic, device_addr, 0x5876, 0x1e)
cam_i2c_write(cam_iic, device_addr, 0x5877, 0x17)
cam_i2c_write(cam_iic, device_addr, 0x5878, 0x11)
cam_i2c_write(cam_iic, device_addr, 0x5879, 0x11)
cam_i2c_write(cam_iic, device_addr, 0x587a, 0x14)
cam_i2c_write(cam_iic, device_addr, 0x587b, 0x1e)
cam_i2c_write(cam_iic, device_addr, 0x587c, 0x1c)
cam_i2c_write(cam_iic, device_addr, 0x587d, 0x1c)
cam_i2c_write(cam_iic, device_addr, 0x587e, 0x1a)
cam_i2c_write(cam_iic, device_addr, 0x587f, 0x1a)
cam_i2c_write(cam_iic, device_addr, 0x5880, 0x1b)
cam_i2c_write(cam_iic, device_addr, 0x5881, 0x1f)
cam_i2c_write(cam_iic, device_addr, 0x5882, 0x14)
cam_i2c_write(cam_iic, device_addr, 0x5883, 0x1a)
cam_i2c_write(cam_iic, device_addr, 0x5884, 0x1d)
cam_i2c_write(cam_iic, device_addr, 0x5885, 0x1e)
cam_i2c_write(cam_iic, device_addr, 0x5886, 0x1a)
cam_i2c_write(cam_iic, device_addr, 0x5887, 0x1a)
cam_i2c_write(cam_iic, device_addr, 0x528a, 0x02)
cam_i2c_write(cam_iic, device_addr, 0x528b, 0x06)
cam_i2c_write(cam_iic, device_addr, 0x528c, 0x20)
cam_i2c_write(cam_iic, device_addr, 0x528d, 0x30)
cam_i2c_write(cam_iic, device_addr, 0x528e, 0x40)
cam_i2c_write(cam_iic, device_addr, 0x528f, 0x50)
cam_i2c_write(cam_iic, device_addr, 0x5290, 0x60)
cam_i2c_write(cam_iic, device_addr, 0x5292, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5293, 0x02)
cam_i2c_write(cam_iic, device_addr, 0x5294, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5295, 0x04)
cam_i2c_write(cam_iic, device_addr, 0x5296, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5297, 0x08)
cam_i2c_write(cam_iic, device_addr, 0x5298, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5299, 0x10)
cam_i2c_write(cam_iic, device_addr, 0x529a, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x529b, 0x20)
cam_i2c_write(cam_iic, device_addr, 0x529c, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x529d, 0x28)
cam_i2c_write(cam_iic, device_addr, 0x529e, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x529f, 0x30)
cam_i2c_write(cam_iic, device_addr, 0x5282, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5680, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5681, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5682, 0x05)
cam_i2c_write(cam_iic, device_addr, 0x5683, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5684, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5685, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5686, 0x03)
cam_i2c_write(cam_iic, device_addr, 0x5687, 0xc0)
cam_i2c_write(cam_iic, device_addr, 0x5180, 0xff)
cam_i2c_write(cam_iic, device_addr, 0x5181, 0x52)
cam_i2c_write(cam_iic, device_addr, 0x5182, 0x11)
cam_i2c_write(cam_iic, device_addr, 0x5183, 0x14)
cam_i2c_write(cam_iic, device_addr, 0x5184, 0x25)
cam_i2c_write(cam_iic, device_addr, 0x5185, 0x24)
cam_i2c_write(cam_iic, device_addr, 0x5186, 0x14)
cam_i2c_write(cam_iic, device_addr, 0x5187, 0x14)
cam_i2c_write(cam_iic, device_addr, 0x5188, 0x14)
cam_i2c_write(cam_iic, device_addr, 0x5189, 0x80)
cam_i2c_write(cam_iic, device_addr, 0x518a, 0x60)
cam_i2c_write(cam_iic, device_addr, 0x518b, 0xa2)
cam_i2c_write(cam_iic, device_addr, 0x518c, 0x9c)
cam_i2c_write(cam_iic, device_addr, 0x518d, 0x36)
cam_i2c_write(cam_iic, device_addr, 0x518e, 0x34)
cam_i2c_write(cam_iic, device_addr, 0x518f, 0x54)
cam_i2c_write(cam_iic, device_addr, 0x5190, 0x4c)
cam_i2c_write(cam_iic, device_addr, 0x5191, 0xf8)
cam_i2c_write(cam_iic, device_addr, 0x5192, 0x04)
cam_i2c_write(cam_iic, device_addr, 0x5193, 0x70)
cam_i2c_write(cam_iic, device_addr, 0x5194, 0xf0)
cam_i2c_write(cam_iic, device_addr, 0x5195, 0xf0)
cam_i2c_write(cam_iic, device_addr, 0x5196, 0x03)
cam_i2c_write(cam_iic, device_addr, 0x5197, 0x01)
cam_i2c_write(cam_iic, device_addr, 0x5198, 0x05)
cam_i2c_write(cam_iic, device_addr, 0x5199, 0x2f)
cam_i2c_write(cam_iic, device_addr, 0x519a, 0x04)
cam_i2c_write(cam_iic, device_addr, 0x519b, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x519c, 0x06)
cam_i2c_write(cam_iic, device_addr, 0x519d, 0xa0)
cam_i2c_write(cam_iic, device_addr, 0x519e, 0xa0)
cam_i2c_write(cam_iic, device_addr, 0x3a0f, 0x3c)
cam_i2c_write(cam_iic, device_addr, 0x3a10, 0x30)
cam_i2c_write(cam_iic, device_addr, 0x3a1b, 0x3c)
cam_i2c_write(cam_iic, device_addr, 0x3a1e, 0x30)
cam_i2c_write(cam_iic, device_addr, 0x3a11, 0x70)
cam_i2c_write(cam_iic, device_addr, 0x3a1f, 0x10)
cam_i2c_write(cam_iic, device_addr, 0x3800, 0x1)
cam_i2c_write(cam_iic, device_addr, 0x3801, 0x50)
cam_i2c_write(cam_iic, device_addr, 0x3802, 0x0)
cam_i2c_write(cam_iic, device_addr, 0x3803, 0x8)
cam_i2c_write(cam_iic, device_addr, 0x3804, 0x5)
cam_i2c_write(cam_iic, device_addr, 0x3805, 0x0)
cam_i2c_write(cam_iic, device_addr, 0x3806, 0x3)
cam_i2c_write(cam_iic, device_addr, 0x3807, 0xc0)
cam_i2c_write(cam_iic, device_addr, 0x3808, 0x3)
cam_i2c_write(cam_iic, device_addr, 0x3809, 0x20)
cam_i2c_write(cam_iic, device_addr, 0x380a, 0x2)
cam_i2c_write(cam_iic, device_addr, 0x380b, 0x58)
cam_i2c_write(cam_iic, device_addr, 0x380c, 0xc)
cam_i2c_write(cam_iic, device_addr, 0x380d, 0x80)
cam_i2c_write(cam_iic, device_addr, 0x380e, 0x3)
cam_i2c_write(cam_iic, device_addr, 0x380f, 0xe8)
cam_i2c_write(cam_iic, device_addr, 0x5001, 0x7f)
cam_i2c_write(cam_iic, device_addr, 0x5680, 0x0)
cam_i2c_write(cam_iic, device_addr, 0x5681, 0x0)
cam_i2c_write(cam_iic, device_addr, 0x5682, 0x5)
cam_i2c_write(cam_iic, device_addr, 0x5683, 0x0)
cam_i2c_write(cam_iic, device_addr, 0x5684, 0x0)
cam_i2c_write(cam_iic, device_addr, 0x5685, 0x0)
cam_i2c_write(cam_iic, device_addr, 0x5686, 0x3)
cam_i2c_write(cam_iic, device_addr, 0x5687, 0xc0)
cam_i2c_write(cam_iic, device_addr, 0x5687, 0xc0)
cam_i2c_write(cam_iic, device_addr, 0x3815, 0x02)
cam_i2c_write(cam_iic, device_addr, 0x3503, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x3818, 0x81) # No Mirror
cam_i2c_write(cam_iic, device_addr, 0x3621, 0xa7)
cam_i2c_write(cam_iic, device_addr, 0x4740, 0x21)
cam_i2c_write(cam_iic, device_addr, 0x501e, 0x2a)
cam_i2c_write(cam_iic, device_addr, 0x5002, 0x78)
cam_i2c_write(cam_iic, device_addr, 0x501f, 0x01)
cam_i2c_write(cam_iic, device_addr, 0x4300, 0x61)
# frame buffer alocate
height = 600
width = 800
buffer0 = allocate(shape=(height, width, 1), dtype=np.uint32, cacheable=1)
buffer1 = allocate(shape=(height, width, 1), dtype=np.uint32, cacheable=1)
buffer2 = allocate(shape=(height, width, 1), dtype=np.uint32, cacheable=1)
buffer3 = allocate(shape=(height, width, 3), dtype=np.uint8, cacheable=1)
# frame buffer resister set
vflip_dmaw.register_map.fb0_1 = buffer0.physical_address
vflip_dmaw.register_map.fb0_2 = 0
vflip_dmaw.register_map.fb1_1 = buffer1.physical_address
vflip_dmaw.register_map.fb1_2 = 0
vflip_dmaw.register_map.fb2_1 = buffer2.physical_address
vflip_dmaw.register_map.fb2_2 = 0
dma2axis3.register_map.fb0 = buffer0.physical_address
dma2axis3.register_map.fb1 = buffer1.physical_address
dma2axis3.register_map.fb2 = buffer2.physical_address
dma2axis3.register_map.mode = 0 # DMA_WRITE_MODE
sobel.register_map.row_size = height
sobel.register_map.col_size = width
sobel.register_map.function_r = 0 # ORG_IMGwAxiVdma
axis2dma.register_map.out_r = buffer3.physical_address
axis2dma.register_map.row_size = height
axis2dma.register_map.col_size = width
# vflip_dma_write start and auto repeat
vflip_dmaw.register_map.CTRL = 0x81
# Camera Initialization
cam_i2c_init(cam_iic)
cam_reg_set(cam_iic, 0x78)
# paracam_inf_axi start
paracam_inf.write(0x0, 0x0)
paracam_inf.write(0x4, 0x0)
# bitmap_disp_cont start
bmpd_cont.write(0x0, 0x0)
# sobel_axis_RGB24 start
sobel.register_map.CTRL = 0x81
# dma2axis_3buf start and auto repeat
dma2axis3.register_map.CTRL = 0x81
axis2dma.register_map.CTRL = 0x1
print(axis2dma.register_map.CTRL)
cam_image = Image.fromarray(buffer3)
print("Image size: {}x{} pixels.".format(width, height))
plt.figure(figsize=(12, 10));
_ = plt.imshow(cam_image)
#sobel filter on
sobel.register_map.function_r = 1 # SOBELwAxiVdma
# sobel filter off
sobel.register_map.function_r = 0 # ORG_IMGwAxiVdma
xilinx@pynq:~/opencv/build$ cmake -S /home/xilinx/opencv/opencv-3.4.16 -B /home/xilinx/opencv/build -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_EXTRA_MODULES_PATH=~/opencv/opencv_contrib/modules -D BUILD_NEW_PYTHON_SUPPORT=ON -D WITH_V4L=OFF -D WITH_VTK=OFF -D INSTALL_C_EXAMPLES=ON -D PYTHON3_EXECUTABLE=/usr/bin/python3.8 -D PYTHON_INCLUDE_DIR=/usr/include/python3.8 -D INSTALL_PYTHON_EXAMPLES=ON -D BUILD_EXAMPLES=OFF -D ENABLE_FAST_MATH=1 -D WITH_CUDA=OFF -D WITH_FFMPEG=OFF
-- Detected processor: armv7l
-- Looking for ccache - found (/usr/bin/ccache)
-- Found ZLIB: /usr/lib/arm-linux-gnueabihf/libz.so (found suitable version "1.2.11", minimum required is "1.2.3")
-- Could NOT find Jasper (missing: JASPER_LIBRARIES) (found version "1.900.1")
-- Found ZLIB: /usr/lib/arm-linux-gnueabihf/libz.so (found version "1.2.11")
-- Found OpenEXR: /usr/lib/arm-linux-gnueabihf/libIlmImf.so
-- Checking for module 'gtk+-3.0'
-- No package 'gtk+-3.0' found
-- Checking for modules 'gstreamer-base-1.0;gstreamer-video-1.0;gstreamer-app-1.0;gstreamer-riff-1.0;gstreamer-pbutils-1.0'
-- No package 'gstreamer-base-1.0' found
-- No package 'gstreamer-video-1.0' found
-- No package 'gstreamer-app-1.0' found
-- No package 'gstreamer-riff-1.0' found
-- No package 'gstreamer-pbutils-1.0' found
-- Checking for modules 'gstreamer-base-0.10;gstreamer-video-0.10;gstreamer-app-0.10;gstreamer-riff-0.10;gstreamer-pbutils-0.10'
-- No package 'gstreamer-base-0.10' found
-- No package 'gstreamer-video-0.10' found
-- No package 'gstreamer-app-0.10' found
-- No package 'gstreamer-riff-0.10' found
-- No package 'gstreamer-pbutils-0.10' found
-- Could not find OpenBLAS include. Turning OpenBLAS_FOUND off
-- Could not find OpenBLAS lib. Turning OpenBLAS_FOUND off
-- Could NOT find Atlas (missing: Atlas_CLAPACK_INCLUDE_DIR)
-- A library with LAPACK API found.
-- Could NOT find JNI (missing: JAVA_AWT_LIBRARY JAVA_JVM_LIBRARY JAVA_INCLUDE_PATH JAVA_INCLUDE_PATH2 JAVA_AWT_INCLUDE_PATH)
-- Could NOT find Pylint (missing: PYLINT_EXECUTABLE)
-- Could NOT find Flake8 (missing: FLAKE8_EXECUTABLE)
-- Carotene: NEON is not available, disabling carotene...
-- OpenCV Python: during development append to PYTHONPATH: /home/xilinx/opencv/build/python_loader
-- freetype2: YES (ver 23.1.17)
-- harfbuzz: YES (ver 2.6.4)
-- Could NOT find HDF5 (missing: HDF5_LIBRARIES HDF5_INCLUDE_DIRS) (found version "")
-- Module opencv_ovis disabled because OGRE3D was not found
-- CERES support is disabled. Ceres Solver for reconstruction API is required.
-- Checking for module 'tesseract'
-- No package 'tesseract' found
-- Tesseract: NO
-- Allocator metrics storage type: 'int'
-- Excluding from source files list: <BUILD>/modules/core/test/test_intrin128.sse2.cpp
-- Excluding from source files list: <BUILD>/modules/core/test/test_intrin128.sse3.cpp
-- Excluding from source files list: <BUILD>/modules/core/test/test_intrin128.ssse3.cpp
-- Excluding from source files list: <BUILD>/modules/core/test/test_intrin128.sse4_1.cpp
-- Excluding from source files list: <BUILD>/modules/core/test/test_intrin128.sse4_2.cpp
-- Excluding from source files list: <BUILD>/modules/core/test/test_intrin128.avx.cpp
-- Excluding from source files list: <BUILD>/modules/core/test/test_intrin128.fp16.cpp
-- Excluding from source files list: <BUILD>/modules/core/test/test_intrin128.avx2.cpp
-- Excluding from source files list: <BUILD>/modules/core/test/test_intrin128.avx512_skx.cpp
-- Excluding from source files list: <BUILD>/modules/core/test/test_intrin256.avx2.cpp
-- Excluding from source files list: <BUILD>/modules/core/test/test_intrin256.avx512_skx.cpp
-- Excluding from source files list: <BUILD>/modules/core/test/test_intrin512.avx512_skx.cpp
-- Excluding from source files list: modules/imgproc/src/corner.avx.cpp
-- Excluding from source files list: modules/imgproc/src/imgwarp.avx2.cpp
-- Excluding from source files list: modules/imgproc/src/imgwarp.sse4_1.cpp
-- Excluding from source files list: modules/imgproc/src/resize.avx2.cpp
-- Excluding from source files list: modules/imgproc/src/resize.sse4_1.cpp
-- Excluding from source files list: <BUILD>/modules/dnn/layers/layers_common.avx.cpp
-- Excluding from source files list: <BUILD>/modules/dnn/layers/layers_common.avx2.cpp
-- Excluding from source files list: <BUILD>/modules/dnn/layers/layers_common.avx512_skx.cpp
-- Excluding from source files list: modules/features2d/src/fast.avx2.cpp
-- Excluding from source files list: modules/objdetect/src/haar.avx.cpp
-- CERES support is disabled. Ceres Solver for reconstruction API is required.
--
-- General configuration for OpenCV 3.4.16 =====================================
-- Version control: unknown
--
-- Extra modules:
-- Location (extra): /home/xilinx/opencv/opencv_contrib/modules
-- Version control (extra): unknown
--
-- Platform:
-- Timestamp: 2022-08-17T20:33:50Z
-- Host: Linux 5.4.0-xilinx-v2020.2 armv7l
-- CMake: 3.16.3
-- CMake generator: Unix Makefiles
-- CMake build tool: /usr/bin/make
-- Configuration: RELEASE
--
-- CPU/HW features:
-- Baseline:
-- requested: DETECT
--
-- C/C++:
-- Built as dynamic libs?: YES
-- C++11: YES
-- C++ Compiler: /usr/bin/g++ (ver 9.3.0)
-- C++ flags (Release): -fsigned-char -ffast-math -W -Wall -Werror=return-type -Werror=non-virtual-dtor -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wundef -Winit-self -Wpointer-arith -Wshadow -Wsign-promo -Wuninitialized -Wsuggest-override -Wno-delete-non-virtual-dtor -Wno-comment -Wimplicit-fallthrough=3 -Wno-strict-overflow -fdiagnostics-show-option -pthread -fomit-frame-pointer -ffunction-sections -fdata-sections -fvisibility=hidden -fvisibility-inlines-hidden -O3 -DNDEBUG -DNDEBUG
-- C++ flags (Debug): -fsigned-char -ffast-math -W -Wall -Werror=return-type -Werror=non-virtual-dtor -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wundef -Winit-self -Wpointer-arith -Wshadow -Wsign-promo -Wuninitialized -Wsuggest-override -Wno-delete-non-virtual-dtor -Wno-comment -Wimplicit-fallthrough=3 -Wno-strict-overflow -fdiagnostics-show-option -pthread -fomit-frame-pointer -ffunction-sections -fdata-sections -fvisibility=hidden -fvisibility-inlines-hidden -g -O0 -DDEBUG -D_DEBUG
-- C Compiler: /usr/bin/gcc
-- C flags (Release): -fsigned-char -ffast-math -W -Wall -Werror=return-type -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wundef -Winit-self -Wpointer-arith -Wshadow -Wuninitialized -Wno-comment -Wimplicit-fallthrough=3 -Wno-strict-overflow -fdiagnostics-show-option -pthread -fomit-frame-pointer -ffunction-sections -fdata-sections -fvisibility=hidden -O3 -DNDEBUG -DNDEBUG
-- C flags (Debug): -fsigned-char -ffast-math -W -Wall -Werror=return-type -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wundef -Winit-self -Wpointer-arith -Wshadow -Wuninitialized -Wno-comment -Wimplicit-fallthrough=3 -Wno-strict-overflow -fdiagnostics-show-option -pthread -fomit-frame-pointer -ffunction-sections -fdata-sections -fvisibility=hidden -g -O0 -DDEBUG -D_DEBUG
-- Linker flags (Release): -Wl,--gc-sections -Wl,--as-needed
-- Linker flags (Debug): -Wl,--gc-sections -Wl,--as-needed
-- ccache: YES
-- Precompiled headers: NO
-- Extra dependencies: dl m pthread rt
-- 3rdparty dependencies:
--
-- OpenCV modules:
-- To be built: aruco bgsegm bioinspired calib3d ccalib core datasets dnn dnn_objdetect dpm face features2d flann freetype fuzzy hfs highgui img_hash imgcodecs imgproc line_descriptor ml objdetect optflow phase_unwrapping photo plot python3 reg rgbd saliency sfm shape stereo stitching structured_light superres surface_matching text tracking ts video videoio videostab xfeatures2d ximgproc xobjdetect xphoto
-- Disabled: world
-- Disabled by dependency: -
-- Unavailable: cudaarithm cudabgsegm cudacodec cudafeatures2d cudafilters cudaimgproc cudalegacy cudaobjdetect cudaoptflow cudastereo cudawarping cudev cvv hdf java matlab ovis python2 viz
-- Applications: tests perf_tests apps
-- Documentation: NO
-- Non-free algorithms: NO
--
-- GUI:
-- GTK+: YES (ver 2.24.32)
-- GThread : YES (ver 2.64.2)
-- GtkGlExt: NO
--
-- Media I/O:
-- ZLib: /usr/lib/arm-linux-gnueabihf/libz.so (ver 1.2.11)
-- JPEG: /usr/lib/arm-linux-gnueabihf/libjpeg.so (ver 80)
-- WEBP: /usr/lib/arm-linux-gnueabihf/libwebp.so (ver encoder: 0x020e)
-- PNG: /usr/lib/arm-linux-gnueabihf/libpng.so (ver 1.6.37)
-- TIFF: /usr/lib/arm-linux-gnueabihf/libtiff.so (ver 42 / 4.1.0)
-- JPEG 2000: build (ver 1.900.1)
-- OpenEXR: /usr/lib/arm-linux-gnueabihf/libImath.so /usr/lib/arm-linux-gnueabihf/libIlmImf.so /usr/lib/arm-linux-gnueabihf/libIex.so /usr/lib/arm-linux-gnueabihf/libHalf.so /usr/lib/arm-linux-gnueabihf/libIlmThread.so (ver 2_3)
-- HDR: YES
-- SUNRASTER: YES
-- PXM: YES
--
-- Video I/O:
-- DC1394: YES (ver 2.2.5)
-- GStreamer: NO
--
-- Parallel framework: pthreads
--
-- Trace: YES (with Intel ITT)
--
-- Other third-party libraries:
-- Lapack: NO
-- Eigen: YES (ver 3.3.7)
-- Custom HAL: NO
-- Protobuf: build (3.5.1)
--
-- OpenCL: YES (no extra features)
-- Include path: /home/xilinx/opencv/opencv-3.4.16/3rdparty/include/opencl/1.2
-- Link libraries: Dynamic load
--
-- Python 3:
-- Interpreter: /usr/bin/python3.8 (ver 3.8.2)
-- Libraries: /usr/lib/arm-linux-gnueabihf/libpython3.8.so (ver 3.8.2)
-- numpy: /usr/lib/python3/dist-packages/numpy/core/include (ver 1.17.4)
-- install path: lib/python3.8/site-packages/cv2/python-3.8
--
-- Python (for build): /usr/bin/python2.7
--
-- Java:
-- ant: NO
-- JNI: NO
-- Java wrappers: NO
-- Java tests: NO
--
-- Install to: /usr/local
-- -----------------------------------------------------------------
--
-- Configuring done
-- Generating done
-- Build files have been written to: /home/xilinx/opencv/build
xilinx@pynq:~/opencv/build$ sudo make install
[sudo] password for xilinx:
[ 0%] Built target gen-pkgconfig
[ 0%] Built target ittnotify
[ 5%] Built target opencv_core
[ 9%] Built target opencv_imgproc
[ 12%] Built target libjasper
[ 13%] Built target opencv_imgcodecs
[ 14%] Built target opencv_videoio
[ 14%] Built target opencv_highgui
[ 14%] Built target opencv_ts
[ 17%] Built target opencv_perf_core
[ 19%] Built target opencv_test_core
[ 19%] Built target opencv_flann
[ 19%] Built target opencv_test_flann
[ 21%] Built target opencv_perf_imgproc
[ 25%] Built target opencv_test_imgproc
[ 26%] Built target opencv_ml
[ 27%] Built target opencv_test_ml
[ 27%] Built target opencv_phase_unwrapping
[ 27%] Built target opencv_test_phase_unwrapping
[ 28%] Built target opencv_photo
[ 28%] Built target opencv_perf_photo
[ 29%] Built target opencv_test_photo
[ 30%] Built target opencv_plot
[ 31%] Built target opencv_reg
[ 31%] Built target opencv_perf_reg
[ 31%] Built target opencv_test_reg
[ 32%] Built target opencv_surface_matching
[ 32%] Built target opencv_video
[ 33%] Built target opencv_perf_video
[ 34%] Built target opencv_test_video
[ 34%] Built target opencv_xphoto
[ 34%] Built target opencv_perf_xphoto
[ 35%] Built target opencv_test_xphoto
[ 40%] Built target libprotobuf
[ 45%] Built target opencv_dnn
[ 45%] Built target opencv_perf_dnn
[ 46%] Built target opencv_test_dnn
[ 48%] Built target opencv_features2d
[ 49%] Built target opencv_perf_features2d
[ 50%] Built target opencv_test_features2d
[ 50%] Built target opencv_freetype
[ 50%] Built target opencv_fuzzy
[ 51%] Built target opencv_test_fuzzy
[ 52%] Built target opencv_hfs
[ 53%] Built target opencv_img_hash
[ 53%] Built target opencv_test_img_hash
[ 53%] Built target opencv_perf_imgcodecs
[ 54%] Built target opencv_test_imgcodecs
[ 54%] Built target opencv_line_descriptor
[ 55%] Built target opencv_perf_line_descriptor
[ 55%] Built target opencv_test_line_descriptor
[ 56%] Built target opencv_saliency
[ 56%] Built target opencv_shape
[ 56%] Built target opencv_test_shape
[ 56%] Built target opencv_text
[ 56%] Built target opencv_test_text
[ 57%] Built target opencv_test_videoio
[ 57%] Built target opencv_perf_videoio
[ 59%] Built target opencv_calib3d
[ 59%] Built target opencv_perf_calib3d
[ 61%] Built target opencv_test_calib3d
[ 63%] Built target opencv_datasets
[ 63%] Built target opencv_test_highgui
[ 64%] Built target quirc
[ 65%] Built target opencv_objdetect
[ 65%] Built target opencv_perf_objdetect
[ 65%] Built target opencv_test_objdetect
[ 65%] Built target opencv_rgbd
[ 65%] Built target opencv_test_rgbd
[ 65%] Built target opencv_stereo
[ 65%] Built target opencv_perf_stereo
[ 66%] Built target opencv_test_stereo
[ 67%] Built target opencv_structured_light
[ 67%] Built target opencv_test_structured_light
[ 67%] Built target opencv_superres
[ 67%] Built target opencv_perf_superres
[ 68%] Built target opencv_test_superres
[ 71%] Built target opencv_tracking
[ 71%] Built target opencv_perf_tracking
[ 71%] Built target opencv_test_tracking
[ 72%] Built target opencv_videostab
[ 72%] Built target opencv_test_videostab
[ 74%] Built target opencv_xfeatures2d
[ 75%] Built target opencv_perf_xfeatures2d
[ 76%] Built target opencv_test_xfeatures2d
[ 78%] Built target opencv_ximgproc
[ 79%] Built target opencv_perf_ximgproc
[ 80%] Built target opencv_test_ximgproc
[ 81%] Built target opencv_xobjdetect
[ 81%] Built target opencv_waldboost_detector
[ 82%] Built target opencv_aruco
[ 82%] Built target opencv_test_aruco
[ 82%] Built target opencv_bgsegm
[ 82%] Built target opencv_test_bgsegm
[ 83%] Built target opencv_bioinspired
[ 83%] Built target opencv_perf_bioinspired
[ 84%] Built target opencv_test_bioinspired
[ 85%] Built target opencv_ccalib
[ 85%] Built target opencv_dnn_objdetect
[ 86%] Built target opencv_dpm
[ 87%] Built target opencv_face
[ 88%] Built target opencv_test_face
[ 89%] Built target opencv_optflow
[ 90%] Built target opencv_perf_optflow
[ 91%] Built target opencv_test_optflow
[ 91%] Built target numeric
[ 92%] Built target multiview
[ 92%] Built target correspondence
[ 93%] Built target opencv_sfm
[ 94%] Built target opencv_test_sfm
[ 95%] Built target opencv_stitching
[ 96%] Built target opencv_perf_stitching
[ 96%] Built target opencv_test_stitching
[ 96%] Built target gen_opencv_python_source
[ 96%] Built target opencv_python3
[ 97%] Built target opencv_traincascade
[ 98%] Built target opencv_createsamples
[ 98%] Built target opencv_annotation
[ 98%] Built target opencv_visualisation
[ 99%] Built target opencv_interactive-calibration
[100%] Built target opencv_version
Install the project...
-- Install configuration: "RELEASE"
-- Installing: /usr/local/share/licenses/opencv3/opencl-headers-LICENSE.txt
-- Installing: /usr/local/include/opencv2/cvconfig.h
-- Installing: /usr/local/include/opencv2/opencv_modules.hpp
-- Installing: /usr/local/lib/pkgconfig/opencv.pc
-- Installing: /usr/local/share/OpenCV/OpenCVModules.cmake
-- Installing: /usr/local/share/OpenCV/OpenCVModules-release.cmake
-- Installing: /usr/local/share/OpenCV/OpenCVConfig-version.cmake
-- Installing: /usr/local/share/OpenCV/OpenCVConfig.cmake
-- Installing: /usr/local/bin/setup_vars_opencv3.sh
-- Installing: /usr/local/share/OpenCV/valgrind.supp
-- Installing: /usr/local/share/OpenCV/valgrind_3rdparty.supp
-- Installing: /usr/local/share/licenses/opencv3/jasper-LICENSE
-- Installing: /usr/local/share/licenses/opencv3/jasper-README
-- Installing: /usr/local/share/licenses/opencv3/jasper-copyright
-- Installing: /usr/local/share/licenses/opencv3/protobuf-LICENSE
-- Installing: /usr/local/share/licenses/opencv3/protobuf-README.md
-- Installing: /usr/local/share/licenses/opencv3/quirc-LICENSE
-- Installing: /usr/local/share/licenses/opencv3/ittnotify-LICENSE.BSD
-- Installing: /usr/local/share/licenses/opencv3/ittnotify-LICENSE.GPL
-- Installing: /usr/local/include/opencv/cv.h
-- Installing: /usr/local/include/opencv/cv.hpp
-- Installing: /usr/local/include/opencv/cvaux.h
-- Installing: /usr/local/include/opencv/cvaux.hpp
-- Installing: /usr/local/include/opencv/cvwimage.h
-- Installing: /usr/local/include/opencv/cxcore.h
-- Installing: /usr/local/include/opencv/cxcore.hpp
-- Installing: /usr/local/include/opencv/cxeigen.hpp
-- Installing: /usr/local/include/opencv/cxmisc.h
-- Installing: /usr/local/include/opencv/highgui.h
-- Installing: /usr/local/include/opencv/ml.h
-- Installing: /usr/local/include/opencv2/opencv.hpp
-- Installing: /usr/local/lib/libopencv_core.so.3.4.16
-- Installing: /usr/local/lib/libopencv_core.so.3.4
-- Set runtime path of "/usr/local/lib/libopencv_core.so.3.4.16" to "/usr/local/lib"
-- Installing: /usr/local/lib/libopencv_core.so
-- Installing: /usr/local/include/opencv2/core.hpp
-- Installing: /usr/local/include/opencv2/core/affine.hpp
-- Installing: /usr/local/include/opencv2/core/async.hpp
-- Installing: /usr/local/include/opencv2/core/base.hpp
-- Installing: /usr/local/include/opencv2/core/bindings_utils.hpp
-- Installing: /usr/local/include/opencv2/core/bufferpool.hpp
-- Installing: /usr/local/include/opencv2/core/check.hpp
-- Installing: /usr/local/include/opencv2/core/core.hpp
-- Installing: /usr/local/include/opencv2/core/core_c.h
-- Installing: /usr/local/include/opencv2/core/cuda.hpp
-- Installing: /usr/local/include/opencv2/core/cuda.inl.hpp
-- Installing: /usr/local/include/opencv2/core/cuda/block.hpp
-- Installing: /usr/local/include/opencv2/core/cuda/border_interpolate.hpp
-- Installing: /usr/local/include/opencv2/core/cuda/color.hpp
-- Installing: /usr/local/include/opencv2/core/cuda/common.hpp
-- Installing: /usr/local/include/opencv2/core/cuda/datamov_utils.hpp
-- Installing: /usr/local/include/opencv2/core/cuda/detail/color_detail.hpp
-- Installing: /usr/local/include/opencv2/core/cuda/detail/reduce.hpp
-- Installing: /usr/local/include/opencv2/core/cuda/detail/reduce_key_val.hpp
-- Installing: /usr/local/include/opencv2/core/cuda/detail/transform_detail.hpp
-- Installing: /usr/local/include/opencv2/core/cuda/detail/type_traits_detail.hpp
-- Installing: /usr/local/include/opencv2/core/cuda/detail/vec_distance_detail.hpp
-- Installing: /usr/local/include/opencv2/core/cuda/dynamic_smem.hpp
-- Installing: /usr/local/include/opencv2/core/cuda/emulation.hpp
-- Installing: /usr/local/include/opencv2/core/cuda/filters.hpp
-- Installing: /usr/local/include/opencv2/core/cuda/funcattrib.hpp
-- Installing: /usr/local/include/opencv2/core/cuda/functional.hpp
-- Installing: /usr/local/include/opencv2/core/cuda/limits.hpp
-- Installing: /usr/local/include/opencv2/core/cuda/reduce.hpp
-- Installing: /usr/local/include/opencv2/core/cuda/saturate_cast.hpp
-- Installing: /usr/local/include/opencv2/core/cuda/scan.hpp
-- Installing: /usr/local/include/opencv2/core/cuda/simd_functions.hpp
-- Installing: /usr/local/include/opencv2/core/cuda/transform.hpp
-- Installing: /usr/local/include/opencv2/core/cuda/type_traits.hpp
-- Installing: /usr/local/include/opencv2/core/cuda/utility.hpp
-- Installing: /usr/local/include/opencv2/core/cuda/vec_distance.hpp
-- Installing: /usr/local/include/opencv2/core/cuda/vec_math.hpp
-- Installing: /usr/local/include/opencv2/core/cuda/vec_traits.hpp
-- Installing: /usr/local/include/opencv2/core/cuda/warp.hpp
-- Installing: /usr/local/include/opencv2/core/cuda/warp_reduce.hpp
-- Installing: /usr/local/include/opencv2/core/cuda/warp_shuffle.hpp
-- Installing: /usr/local/include/opencv2/core/cuda_stream_accessor.hpp
-- Installing: /usr/local/include/opencv2/core/cuda_types.hpp
-- Installing: /usr/local/include/opencv2/core/cv_cpu_dispatch.h
-- Installing: /usr/local/include/opencv2/core/cv_cpu_helper.h
-- Installing: /usr/local/include/opencv2/core/cvdef.h
-- Installing: /usr/local/include/opencv2/core/cvstd.hpp
-- Installing: /usr/local/include/opencv2/core/cvstd.inl.hpp
-- Installing: /usr/local/include/opencv2/core/detail/async_promise.hpp
-- Installing: /usr/local/include/opencv2/core/detail/exception_ptr.hpp
-- Installing: /usr/local/include/opencv2/core/directx.hpp
-- Installing: /usr/local/include/opencv2/core/eigen.hpp
-- Installing: /usr/local/include/opencv2/core/fast_math.hpp
-- Installing: /usr/local/include/opencv2/core/hal/hal.hpp
-- Installing: /usr/local/include/opencv2/core/hal/interface.h
-- Installing: /usr/local/include/opencv2/core/hal/intrin.hpp
-- Installing: /usr/local/include/opencv2/core/hal/intrin_avx.hpp
-- Installing: /usr/local/include/opencv2/core/hal/intrin_avx512.hpp
-- Installing: /usr/local/include/opencv2/core/hal/intrin_cpp.hpp
-- Installing: /usr/local/include/opencv2/core/hal/intrin_forward.hpp
-- Installing: /usr/local/include/opencv2/core/hal/intrin_msa.hpp
-- Installing: /usr/local/include/opencv2/core/hal/intrin_neon.hpp
-- Installing: /usr/local/include/opencv2/core/hal/intrin_sse.hpp
-- Installing: /usr/local/include/opencv2/core/hal/intrin_sse_em.hpp
-- Installing: /usr/local/include/opencv2/core/hal/intrin_vsx.hpp
-- Installing: /usr/local/include/opencv2/core/hal/intrin_wasm.hpp
-- Installing: /usr/local/include/opencv2/core/hal/msa_macros.h
-- Installing: /usr/local/include/opencv2/core/hal/simd_utils.impl.hpp
-- Installing: /usr/local/include/opencv2/core/ippasync.hpp
-- Installing: /usr/local/include/opencv2/core/mat.hpp
-- Installing: /usr/local/include/opencv2/core/mat.inl.hpp
-- Installing: /usr/local/include/opencv2/core/matx.hpp
-- Installing: /usr/local/include/opencv2/core/neon_utils.hpp
-- Installing: /usr/local/include/opencv2/core/ocl.hpp
-- Installing: /usr/local/include/opencv2/core/ocl_genbase.hpp
-- Installing: /usr/local/include/opencv2/core/opencl/ocl_defs.hpp
-- Installing: /usr/local/include/opencv2/core/opencl/opencl_info.hpp
-- Installing: /usr/local/include/opencv2/core/opencl/opencl_svm.hpp
-- Installing: /usr/local/include/opencv2/core/opencl/runtime/autogenerated/opencl_clamdblas.hpp
-- Installing: /usr/local/include/opencv2/core/opencl/runtime/autogenerated/opencl_clamdfft.hpp
-- Installing: /usr/local/include/opencv2/core/opencl/runtime/autogenerated/opencl_core.hpp
-- Installing: /usr/local/include/opencv2/core/opencl/runtime/autogenerated/opencl_core_wrappers.hpp
-- Installing: /usr/local/include/opencv2/core/opencl/runtime/autogenerated/opencl_gl.hpp
-- Installing: /usr/local/include/opencv2/core/opencl/runtime/autogenerated/opencl_gl_wrappers.hpp
-- Installing: /usr/local/include/opencv2/core/opencl/runtime/opencl_clamdblas.hpp
-- Installing: /usr/local/include/opencv2/core/opencl/runtime/opencl_clamdfft.hpp
-- Installing: /usr/local/include/opencv2/core/opencl/runtime/opencl_core.hpp
-- Installing: /usr/local/include/opencv2/core/opencl/runtime/opencl_core_wrappers.hpp
-- Installing: /usr/local/include/opencv2/core/opencl/runtime/opencl_gl.hpp
-- Installing: /usr/local/include/opencv2/core/opencl/runtime/opencl_gl_wrappers.hpp
-- Installing: /usr/local/include/opencv2/core/opencl/runtime/opencl_svm_20.hpp
-- Installing: /usr/local/include/opencv2/core/opencl/runtime/opencl_svm_definitions.hpp
-- Installing: /usr/local/include/opencv2/core/opencl/runtime/opencl_svm_hsa_extension.hpp
-- Installing: /usr/local/include/opencv2/core/opengl.hpp
-- Installing: /usr/local/include/opencv2/core/operations.hpp
-- Installing: /usr/local/include/opencv2/core/optim.hpp
-- Installing: /usr/local/include/opencv2/core/ovx.hpp
-- Installing: /usr/local/include/opencv2/core/persistence.hpp
-- Installing: /usr/local/include/opencv2/core/ptr.inl.hpp
-- Installing: /usr/local/include/opencv2/core/saturate.hpp
-- Installing: /usr/local/include/opencv2/core/simd_intrinsics.hpp
-- Installing: /usr/local/include/opencv2/core/softfloat.hpp
-- Installing: /usr/local/include/opencv2/core/sse_utils.hpp
-- Installing: /usr/local/include/opencv2/core/traits.hpp
-- Installing: /usr/local/include/opencv2/core/types.hpp
-- Installing: /usr/local/include/opencv2/core/types_c.h
-- Installing: /usr/local/include/opencv2/core/utility.hpp
-- Installing: /usr/local/include/opencv2/core/utils/allocator_stats.hpp
-- Installing: /usr/local/include/opencv2/core/utils/allocator_stats.impl.hpp
-- Installing: /usr/local/include/opencv2/core/utils/filesystem.hpp
-- Installing: /usr/local/include/opencv2/core/utils/instrumentation.hpp
-- Installing: /usr/local/include/opencv2/core/utils/logger.defines.hpp
-- Installing: /usr/local/include/opencv2/core/utils/logger.hpp
-- Installing: /usr/local/include/opencv2/core/utils/tls.hpp
-- Installing: /usr/local/include/opencv2/core/utils/trace.hpp
-- Installing: /usr/local/include/opencv2/core/va_intel.hpp
-- Installing: /usr/local/include/opencv2/core/version.hpp
-- Installing: /usr/local/include/opencv2/core/vsx_utils.hpp
-- Installing: /usr/local/include/opencv2/core/wimage.hpp
-- Installing: /usr/local/share/licenses/opencv3/SoftFloat-COPYING.txt
-- Installing: /usr/local/lib/libopencv_flann.so.3.4.16
-- Installing: /usr/local/lib/libopencv_flann.so.3.4
-- Set runtime path of "/usr/local/lib/libopencv_flann.so.3.4.16" to "/usr/local/lib"
-- Installing: /usr/local/lib/libopencv_flann.so
-- Installing: /usr/local/include/opencv2/flann.hpp
-- Installing: /usr/local/include/opencv2/flann/all_indices.h
-- Installing: /usr/local/include/opencv2/flann/allocator.h
-- Installing: /usr/local/include/opencv2/flann/any.h
-- Installing: /usr/local/include/opencv2/flann/autotuned_index.h
-- Installing: /usr/local/include/opencv2/flann/composite_index.h
-- Installing: /usr/local/include/opencv2/flann/config.h
-- Installing: /usr/local/include/opencv2/flann/defines.h
-- Installing: /usr/local/include/opencv2/flann/dist.h
-- Installing: /usr/local/include/opencv2/flann/dummy.h
-- Installing: /usr/local/include/opencv2/flann/dynamic_bitset.h
-- Installing: /usr/local/include/opencv2/flann/flann.hpp
-- Installing: /usr/local/include/opencv2/flann/flann_base.hpp
-- Installing: /usr/local/include/opencv2/flann/general.h
-- Installing: /usr/local/include/opencv2/flann/ground_truth.h
-- Installing: /usr/local/include/opencv2/flann/hdf5.h
-- Installing: /usr/local/include/opencv2/flann/heap.h
-- Installing: /usr/local/include/opencv2/flann/hierarchical_clustering_index.h
-- Installing: /usr/local/include/opencv2/flann/index_testing.h
-- Installing: /usr/local/include/opencv2/flann/kdtree_index.h
-- Installing: /usr/local/include/opencv2/flann/kdtree_single_index.h
-- Installing: /usr/local/include/opencv2/flann/kmeans_index.h
-- Installing: /usr/local/include/opencv2/flann/linear_index.h
-- Installing: /usr/local/include/opencv2/flann/logger.h
-- Installing: /usr/local/include/opencv2/flann/lsh_index.h
-- Installing: /usr/local/include/opencv2/flann/lsh_table.h
-- Installing: /usr/local/include/opencv2/flann/matrix.h
-- Installing: /usr/local/include/opencv2/flann/miniflann.hpp
-- Installing: /usr/local/include/opencv2/flann/nn_index.h
-- Installing: /usr/local/include/opencv2/flann/object_factory.h
-- Installing: /usr/local/include/opencv2/flann/params.h
-- Installing: /usr/local/include/opencv2/flann/random.h
-- Installing: /usr/local/include/opencv2/flann/result_set.h
-- Installing: /usr/local/include/opencv2/flann/sampling.h
-- Installing: /usr/local/include/opencv2/flann/saving.h
-- Installing: /usr/local/include/opencv2/flann/simplex_downhill.h
-- Installing: /usr/local/include/opencv2/flann/timer.h
-- Installing: /usr/local/lib/libopencv_imgproc.so.3.4.16
-- Installing: /usr/local/lib/libopencv_imgproc.so.3.4
-- Set runtime path of "/usr/local/lib/libopencv_imgproc.so.3.4.16" to "/usr/local/lib"
-- Installing: /usr/local/lib/libopencv_imgproc.so
-- Installing: /usr/local/include/opencv2/imgproc.hpp
-- Installing: /usr/local/include/opencv2/imgproc/detail/distortion_model.hpp
-- Installing: /usr/local/include/opencv2/imgproc/hal/hal.hpp
-- Installing: /usr/local/include/opencv2/imgproc/hal/interface.h
-- Installing: /usr/local/include/opencv2/imgproc/imgproc.hpp
-- Installing: /usr/local/include/opencv2/imgproc/imgproc_c.h
-- Installing: /usr/local/include/opencv2/imgproc/types_c.h
-- Installing: /usr/local/lib/libopencv_ml.so.3.4.16
-- Installing: /usr/local/lib/libopencv_ml.so.3.4
-- Set runtime path of "/usr/local/lib/libopencv_ml.so.3.4.16" to "/usr/local/lib"
-- Installing: /usr/local/lib/libopencv_ml.so
-- Installing: /usr/local/include/opencv2/ml.hpp
-- Installing: /usr/local/include/opencv2/ml/ml.hpp
-- Installing: /usr/local/include/opencv2/ml/ml.inl.hpp
-- Installing: /usr/local/lib/libopencv_phase_unwrapping.so.3.4.16
-- Installing: /usr/local/lib/libopencv_phase_unwrapping.so.3.4
-- Set runtime path of "/usr/local/lib/libopencv_phase_unwrapping.so.3.4.16" to "/usr/local/lib"
-- Installing: /usr/local/lib/libopencv_phase_unwrapping.so
-- Installing: /usr/local/include/opencv2/phase_unwrapping.hpp
-- Installing: /usr/local/include/opencv2/phase_unwrapping/histogramphaseunwrapping.hpp
-- Installing: /usr/local/include/opencv2/phase_unwrapping/phase_unwrapping.hpp
-- Installing: /usr/local/share/OpenCV/samples/phase_unwrapping/unwrap.cpp
-- Up-to-date: /usr/local/share/OpenCV/samples/phase_unwrapping
-- Installing: /usr/local/lib/libopencv_photo.so.3.4.16
-- Installing: /usr/local/lib/libopencv_photo.so.3.4
-- Set runtime path of "/usr/local/lib/libopencv_photo.so.3.4.16" to "/usr/local/lib"
-- Installing: /usr/local/lib/libopencv_photo.so
-- Installing: /usr/local/include/opencv2/photo.hpp
-- Installing: /usr/local/include/opencv2/photo/cuda.hpp
-- Installing: /usr/local/include/opencv2/photo/photo.hpp
-- Installing: /usr/local/include/opencv2/photo/photo_c.h
-- Installing: /usr/local/lib/libopencv_plot.so.3.4.16
-- Installing: /usr/local/lib/libopencv_plot.so.3.4
-- Set runtime path of "/usr/local/lib/libopencv_plot.so.3.4.16" to "/usr/local/lib"
-- Installing: /usr/local/lib/libopencv_plot.so
-- Installing: /usr/local/include/opencv2/plot.hpp
-- Installing: /usr/local/share/OpenCV/samples/plot/plot_demo.cpp
-- Up-to-date: /usr/local/share/OpenCV/samples/plot
-- Installing: /usr/local/lib/libopencv_reg.so.3.4.16
-- Installing: /usr/local/lib/libopencv_reg.so.3.4
-- Set runtime path of "/usr/local/lib/libopencv_reg.so.3.4.16" to "/usr/local/lib"
-- Installing: /usr/local/lib/libopencv_reg.so
-- Installing: /usr/local/include/opencv2/reg/map.hpp
-- Installing: /usr/local/include/opencv2/reg/mapaffine.hpp
-- Installing: /usr/local/include/opencv2/reg/mapper.hpp
-- Installing: /usr/local/include/opencv2/reg/mappergradaffine.hpp
-- Installing: /usr/local/include/opencv2/reg/mappergradeuclid.hpp
-- Installing: /usr/local/include/opencv2/reg/mappergradproj.hpp
-- Installing: /usr/local/include/opencv2/reg/mappergradshift.hpp
-- Installing: /usr/local/include/opencv2/reg/mappergradsimilar.hpp
-- Installing: /usr/local/include/opencv2/reg/mapperpyramid.hpp
-- Installing: /usr/local/include/opencv2/reg/mapprojec.hpp
-- Installing: /usr/local/include/opencv2/reg/mapshift.hpp
-- Installing: /usr/local/share/OpenCV/samples/reg/CMakeLists.txt
-- Installing: /usr/local/share/OpenCV/samples/reg/LR_05.png
-- Installing: /usr/local/share/OpenCV/samples/reg/LR_06.png
-- Installing: /usr/local/share/OpenCV/samples/reg/home.png
-- Installing: /usr/local/share/OpenCV/samples/reg/map_test.cpp
-- Installing: /usr/local/share/OpenCV/samples/reg/reg_shift.py
-- Up-to-date: /usr/local/share/OpenCV/samples/reg
-- Installing: /usr/local/lib/libopencv_surface_matching.so.3.4.16
-- Installing: /usr/local/lib/libopencv_surface_matching.so.3.4
-- Set runtime path of "/usr/local/lib/libopencv_surface_matching.so.3.4.16" to "/usr/local/lib"
-- Installing: /usr/local/lib/libopencv_surface_matching.so
-- Installing: /usr/local/include/opencv2/surface_matching.hpp
-- Installing: /usr/local/include/opencv2/surface_matching/icp.hpp
-- Installing: /usr/local/include/opencv2/surface_matching/pose_3d.hpp
-- Installing: /usr/local/include/opencv2/surface_matching/ppf_helpers.hpp
-- Installing: /usr/local/include/opencv2/surface_matching/ppf_match_3d.hpp
-- Installing: /usr/local/include/opencv2/surface_matching/t_hash_int.hpp
-- Installing: /usr/local/share/OpenCV/samples/surface_matching/ppf_icp.py
-- Installing: /usr/local/share/OpenCV/samples/surface_matching/ppf_load_match.cpp
-- Installing: /usr/local/share/OpenCV/samples/surface_matching/ppf_normal_computation.cpp
-- Installing: /usr/local/share/OpenCV/samples/surface_matching/data
-- Installing: /usr/local/share/OpenCV/samples/surface_matching/data/rs1_normals.ply
-- Installing: /usr/local/share/OpenCV/samples/surface_matching/data/rs22_proc2.ply
-- Installing: /usr/local/share/OpenCV/samples/surface_matching/data/parasaurolophus_low_normals2.ply
-- Installing: /usr/local/share/OpenCV/samples/surface_matching/data/parasaurolophus_6700.ply
-- Installing: /usr/local/lib/libopencv_video.so.3.4.16
-- Installing: /usr/local/lib/libopencv_video.so.3.4
-- Set runtime path of "/usr/local/lib/libopencv_video.so.3.4.16" to "/usr/local/lib"
-- Installing: /usr/local/lib/libopencv_video.so
-- Installing: /usr/local/include/opencv2/video.hpp
-- Installing: /usr/local/include/opencv2/video/background_segm.hpp
-- Installing: /usr/local/include/opencv2/video/tracking.hpp
-- Installing: /usr/local/include/opencv2/video/tracking_c.h
-- Installing: /usr/local/include/opencv2/video/video.hpp
-- Installing: /usr/local/lib/libopencv_xphoto.so.3.4.16
-- Installing: /usr/local/lib/libopencv_xphoto.so.3.4
-- Set runtime path of "/usr/local/lib/libopencv_xphoto.so.3.4.16" to "/usr/local/lib"
-- Installing: /usr/local/lib/libopencv_xphoto.so
-- Installing: /usr/local/include/opencv2/xphoto.hpp
-- Installing: /usr/local/include/opencv2/xphoto/bm3d_image_denoising.hpp
-- Installing: /usr/local/include/opencv2/xphoto/dct_image_denoising.hpp
-- Installing: /usr/local/include/opencv2/xphoto/inpainting.hpp
-- Installing: /usr/local/include/opencv2/xphoto/tonemap.hpp
-- Installing: /usr/local/include/opencv2/xphoto/white_balance.hpp
-- Installing: /usr/local/share/OpenCV/samples/xphoto/bm3d_image_denoising.cpp
-- Installing: /usr/local/share/OpenCV/samples/xphoto/color_balance.cpp
-- Installing: /usr/local/share/OpenCV/samples/xphoto/color_balance_benchmark.py
-- Installing: /usr/local/share/OpenCV/samples/xphoto/dct_image_denoising.cpp
-- Installing: /usr/local/share/OpenCV/samples/xphoto/inpainting.cpp
-- Installing: /usr/local/share/OpenCV/samples/xphoto/learn_color_balance.py
-- Up-to-date: /usr/local/share/OpenCV/samples/xphoto
-- Installing: /usr/local/lib/libopencv_dnn.so.3.4.16
-- Installing: /usr/local/lib/libopencv_dnn.so.3.4
-- Set runtime path of "/usr/local/lib/libopencv_dnn.so.3.4.16" to "/usr/local/lib"
-- Installing: /usr/local/lib/libopencv_dnn.so
-- Installing: /usr/local/include/opencv2/dnn.hpp
-- Installing: /usr/local/include/opencv2/dnn/all_layers.hpp
-- Installing: /usr/local/include/opencv2/dnn/dict.hpp
-- Installing: /usr/local/include/opencv2/dnn/dnn.hpp
-- Installing: /usr/local/include/opencv2/dnn/dnn.inl.hpp
-- Installing: /usr/local/include/opencv2/dnn/layer.details.hpp
-- Installing: /usr/local/include/opencv2/dnn/layer.hpp
-- Installing: /usr/local/include/opencv2/dnn/shape_utils.hpp
-- Installing: /usr/local/include/opencv2/dnn/utils/inference_engine.hpp
-- Installing: /usr/local/lib/libopencv_features2d.so.3.4.16
-- Installing: /usr/local/lib/libopencv_features2d.so.3.4
-- Set runtime path of "/usr/local/lib/libopencv_features2d.so.3.4.16" to "/usr/local/lib"
-- Installing: /usr/local/lib/libopencv_features2d.so
-- Installing: /usr/local/include/opencv2/features2d.hpp
-- Installing: /usr/local/include/opencv2/features2d/features2d.hpp
-- Installing: /usr/local/include/opencv2/features2d/hal/interface.h
-- Installing: /usr/local/lib/libopencv_freetype.so.3.4.16
-- Installing: /usr/local/lib/libopencv_freetype.so.3.4
-- Set runtime path of "/usr/local/lib/libopencv_freetype.so.3.4.16" to "/usr/local/lib"
-- Installing: /usr/local/lib/libopencv_freetype.so
-- Installing: /usr/local/include/opencv2/freetype.hpp
-- Installing: /usr/local/lib/libopencv_fuzzy.so.3.4.16
-- Installing: /usr/local/lib/libopencv_fuzzy.so.3.4
-- Set runtime path of "/usr/local/lib/libopencv_fuzzy.so.3.4.16" to "/usr/local/lib"
-- Installing: /usr/local/lib/libopencv_fuzzy.so
-- Installing: /usr/local/include/opencv2/fuzzy.hpp
-- Installing: /usr/local/include/opencv2/fuzzy/fuzzy_F0_math.hpp
-- Installing: /usr/local/include/opencv2/fuzzy/fuzzy_F1_math.hpp
-- Installing: /usr/local/include/opencv2/fuzzy/fuzzy_image.hpp
-- Installing: /usr/local/include/opencv2/fuzzy/types.hpp
-- Installing: /usr/local/share/OpenCV/samples/fuzzy/fuzzy_filtering.cpp
-- Installing: /usr/local/share/OpenCV/samples/fuzzy/fuzzy_inpainting.cpp
-- Installing: /usr/local/share/OpenCV/samples/fuzzy/input.png
-- Installing: /usr/local/share/OpenCV/samples/fuzzy/mask1.png
-- Installing: /usr/local/share/OpenCV/samples/fuzzy/mask2.png
-- Installing: /usr/local/share/OpenCV/samples/fuzzy/mask3.png
-- Up-to-date: /usr/local/share/OpenCV/samples/fuzzy
-- Installing: /usr/local/lib/libopencv_hfs.so.3.4.16
-- Installing: /usr/local/lib/libopencv_hfs.so.3.4
-- Set runtime path of "/usr/local/lib/libopencv_hfs.so.3.4.16" to "/usr/local/lib"
-- Installing: /usr/local/lib/libopencv_hfs.so
-- Installing: /usr/local/include/opencv2/hfs.hpp
-- Installing: /usr/local/share/OpenCV/samples/hfs/CMakeLists.txt
-- Installing: /usr/local/share/OpenCV/samples/hfs/example.cpp
-- Installing: /usr/local/share/OpenCV/samples/hfs/data
-- Installing: /usr/local/share/OpenCV/samples/hfs/data/002.jpg
-- Installing: /usr/local/share/OpenCV/samples/hfs/data/000.jpg
-- Installing: /usr/local/share/OpenCV/samples/hfs/data/001.jpg
-- Installing: /usr/local/lib/libopencv_img_hash.so.3.4.16
-- Installing: /usr/local/lib/libopencv_img_hash.so.3.4
-- Set runtime path of "/usr/local/lib/libopencv_img_hash.so.3.4.16" to "/usr/local/lib"
-- Installing: /usr/local/lib/libopencv_img_hash.so
-- Installing: /usr/local/include/opencv2/img_hash.hpp
-- Installing: /usr/local/include/opencv2/img_hash/average_hash.hpp
-- Installing: /usr/local/include/opencv2/img_hash/block_mean_hash.hpp
-- Installing: /usr/local/include/opencv2/img_hash/color_moment_hash.hpp
-- Installing: /usr/local/include/opencv2/img_hash/img_hash_base.hpp
-- Installing: /usr/local/include/opencv2/img_hash/marr_hildreth_hash.hpp
-- Installing: /usr/local/include/opencv2/img_hash/phash.hpp
-- Installing: /usr/local/include/opencv2/img_hash/radial_variance_hash.hpp
-- Installing: /usr/local/share/OpenCV/samples/img_hash/hash_samples.cpp
-- Up-to-date: /usr/local/share/OpenCV/samples/img_hash
-- Installing: /usr/local/lib/libopencv_imgcodecs.so.3.4.16
-- Installing: /usr/local/lib/libopencv_imgcodecs.so.3.4
-- Set runtime path of "/usr/local/lib/libopencv_imgcodecs.so.3.4.16" to "/usr/local/lib"
-- Installing: /usr/local/lib/libopencv_imgcodecs.so
-- Installing: /usr/local/include/opencv2/imgcodecs.hpp
-- Installing: /usr/local/include/opencv2/imgcodecs/imgcodecs.hpp
-- Installing: /usr/local/include/opencv2/imgcodecs/imgcodecs_c.h
-- Installing: /usr/local/include/opencv2/imgcodecs/ios.h
-- Installing: /usr/local/lib/libopencv_line_descriptor.so.3.4.16
-- Installing: /usr/local/lib/libopencv_line_descriptor.so.3.4
-- Set runtime path of "/usr/local/lib/libopencv_line_descriptor.so.3.4.16" to "/usr/local/lib"
-- Installing: /usr/local/lib/libopencv_line_descriptor.so
-- Installing: /usr/local/include/opencv2/line_descriptor.hpp
-- Installing: /usr/local/include/opencv2/line_descriptor/descriptor.hpp
-- Installing: /usr/local/share/OpenCV/samples/line_descriptor/compute_descriptors.cpp
-- Installing: /usr/local/share/OpenCV/samples/line_descriptor/knn_matching.cpp
-- Installing: /usr/local/share/OpenCV/samples/line_descriptor/lines_extraction.cpp
-- Installing: /usr/local/share/OpenCV/samples/line_descriptor/lsd_lines_extraction.cpp
-- Installing: /usr/local/share/OpenCV/samples/line_descriptor/matching.cpp
-- Installing: /usr/local/share/OpenCV/samples/line_descriptor/radius_matching.cpp
-- Up-to-date: /usr/local/share/OpenCV/samples/line_descriptor
-- Installing: /usr/local/lib/libopencv_saliency.so.3.4.16
-- Installing: /usr/local/lib/libopencv_saliency.so.3.4
-- Set runtime path of "/usr/local/lib/libopencv_saliency.so.3.4.16" to "/usr/local/lib"
-- Installing: /usr/local/lib/libopencv_saliency.so
-- Installing: /usr/local/include/opencv2/saliency.hpp
-- Installing: /usr/local/include/opencv2/saliency/saliencyBaseClasses.hpp
-- Installing: /usr/local/include/opencv2/saliency/saliencySpecializedClasses.hpp
-- Installing: /usr/local/share/OpenCV/samples/saliency/computeSaliency.cpp
-- Installing: /usr/local/share/OpenCV/samples/saliency/ObjectnessTrainedModel
-- Installing: /usr/local/share/OpenCV/samples/saliency/ObjectnessTrainedModel/ObjNessB2W8HSV.wS2.yml.gz
-- Installing: /usr/local/share/OpenCV/samples/saliency/ObjectnessTrainedModel/ObjNessB2W8MAXBGR.wS1.yml.gz
-- Installing: /usr/local/share/OpenCV/samples/saliency/ObjectnessTrainedModel/ObjNessB2W8I.wS1.yml.gz
-- Installing: /usr/local/share/OpenCV/samples/saliency/ObjectnessTrainedModel/ObjNessB2W8HSV.wS1.yml.gz
-- Installing: /usr/local/share/OpenCV/samples/saliency/ObjectnessTrainedModel/ObjNessB2W8I.wS2.yml.gz
-- Installing: /usr/local/share/OpenCV/samples/saliency/ObjectnessTrainedModel/ObjNessB2W8MAXBGR.idx.yml.gz
-- Installing: /usr/local/share/OpenCV/samples/saliency/ObjectnessTrainedModel/ObjNessB2W8I.idx.yml.gz
-- Installing: /usr/local/share/OpenCV/samples/saliency/ObjectnessTrainedModel/ObjNessB2W8HSV.idx.yml.gz
-- Installing: /usr/local/share/OpenCV/samples/saliency/ObjectnessTrainedModel/ObjNessB2W8MAXBGR.wS2.yml.gz
-- Installing: /usr/local/lib/libopencv_shape.so.3.4.16
-- Installing: /usr/local/lib/libopencv_shape.so.3.4
-- Set runtime path of "/usr/local/lib/libopencv_shape.so.3.4.16" to "/usr/local/lib"
-- Installing: /usr/local/lib/libopencv_shape.so
-- Installing: /usr/local/include/opencv2/shape.hpp
-- Installing: /usr/local/include/opencv2/shape/emdL1.hpp
-- Installing: /usr/local/include/opencv2/shape/hist_cost.hpp
-- Installing: /usr/local/include/opencv2/shape/shape.hpp
-- Installing: /usr/local/include/opencv2/shape/shape_distance.hpp
-- Installing: /usr/local/include/opencv2/shape/shape_transformer.hpp
-- Installing: /usr/local/lib/libopencv_text.so.3.4.16
-- Installing: /usr/local/lib/libopencv_text.so.3.4
-- Set runtime path of "/usr/local/lib/libopencv_text.so.3.4.16" to "/usr/local/lib"
-- Installing: /usr/local/lib/libopencv_text.so
-- Installing: /usr/local/include/opencv2/text.hpp
-- Installing: /usr/local/include/opencv2/text/erfilter.hpp
-- Installing: /usr/local/include/opencv2/text/ocr.hpp
-- Installing: /usr/local/include/opencv2/text/textDetector.hpp
-- Installing: /usr/local/share/OpenCV/samples/text/OCRBeamSearch_CNN_model_data.xml.gz
-- Installing: /usr/local/share/OpenCV/samples/text/OCRHMM_knn_model_data.xml.gz
-- Installing: /usr/local/share/OpenCV/samples/text/OCRHMM_transitions_table.xml
-- Installing: /usr/local/share/OpenCV/samples/text/character_recognition.cpp
-- Installing: /usr/local/share/OpenCV/samples/text/cropped_word_recognition.cpp
-- Installing: /usr/local/share/OpenCV/samples/text/deeptextdetection.py
-- Installing: /usr/local/share/OpenCV/samples/text/detect_er_chars.py
-- Installing: /usr/local/share/OpenCV/samples/text/dictnet_demo.cpp
-- Installing: /usr/local/share/OpenCV/samples/text/end_to_end_recognition.cpp
-- Installing: /usr/local/share/OpenCV/samples/text/scenetext01.jpg
-- Installing: /usr/local/share/OpenCV/samples/text/scenetext02.jpg
-- Installing: /usr/local/share/OpenCV/samples/text/scenetext03.jpg
-- Installing: /usr/local/share/OpenCV/samples/text/scenetext04.jpg
-- Installing: /usr/local/share/OpenCV/samples/text/scenetext05.jpg
-- Installing: /usr/local/share/OpenCV/samples/text/scenetext06.jpg
-- Installing: /usr/local/share/OpenCV/samples/text/scenetext_char01.jpg
-- Installing: /usr/local/share/OpenCV/samples/text/scenetext_char02.jpg
-- Installing: /usr/local/share/OpenCV/samples/text/scenetext_char03.jpg
-- Installing: /usr/local/share/OpenCV/samples/text/scenetext_segmented_word01.jpg
-- Installing: /usr/local/share/OpenCV/samples/text/scenetext_segmented_word01_mask.png
-- Installing: /usr/local/share/OpenCV/samples/text/scenetext_segmented_word02.jpg
-- Installing: /usr/local/share/OpenCV/samples/text/scenetext_segmented_word02_mask.png
-- Installing: /usr/local/share/OpenCV/samples/text/scenetext_segmented_word03.jpg
-- Installing: /usr/local/share/OpenCV/samples/text/scenetext_segmented_word03_mask.png
-- Installing: /usr/local/share/OpenCV/samples/text/scenetext_segmented_word04.jpg
-- Installing: /usr/local/share/OpenCV/samples/text/scenetext_segmented_word04_mask.png
-- Installing: /usr/local/share/OpenCV/samples/text/scenetext_segmented_word05.jpg
-- Installing: /usr/local/share/OpenCV/samples/text/scenetext_segmented_word05_mask.png
-- Installing: /usr/local/share/OpenCV/samples/text/scenetext_word01.jpg
-- Installing: /usr/local/share/OpenCV/samples/text/scenetext_word02.jpg
-- Installing: /usr/local/share/OpenCV/samples/text/scenetext_word03.jpg
-- Installing: /usr/local/share/OpenCV/samples/text/scenetext_word04.jpg
-- Installing: /usr/local/share/OpenCV/samples/text/segmented_word_recognition.cpp
-- Installing: /usr/local/share/OpenCV/samples/text/text_recognition_cnn.cpp
-- Installing: /usr/local/share/OpenCV/samples/text/textbox.prototxt
-- Installing: /usr/local/share/OpenCV/samples/text/textbox_demo.cpp
-- Installing: /usr/local/share/OpenCV/samples/text/textdetection.cpp
-- Installing: /usr/local/share/OpenCV/samples/text/textdetection.py
-- Installing: /usr/local/share/OpenCV/samples/text/trained_classifierNM1.xml
-- Installing: /usr/local/share/OpenCV/samples/text/trained_classifierNM2.xml
-- Installing: /usr/local/share/OpenCV/samples/text/trained_classifier_erGrouping.xml
-- Installing: /usr/local/share/OpenCV/samples/text/webcam_demo.cpp
-- Up-to-date: /usr/local/share/OpenCV/samples/text
-- Installing: /usr/local/lib/libopencv_videoio.so.3.4.16
-- Installing: /usr/local/lib/libopencv_videoio.so.3.4
-- Set runtime path of "/usr/local/lib/libopencv_videoio.so.3.4.16" to "/usr/local/lib"
-- Installing: /usr/local/lib/libopencv_videoio.so
-- Installing: /usr/local/include/opencv2/videoio.hpp
-- Installing: /usr/local/include/opencv2/videoio/cap_ios.h
-- Installing: /usr/local/include/opencv2/videoio/registry.hpp
-- Installing: /usr/local/include/opencv2/videoio/videoio.hpp
-- Installing: /usr/local/include/opencv2/videoio/videoio_c.h
-- Installing: /usr/local/lib/libopencv_calib3d.so.3.4.16
-- Installing: /usr/local/lib/libopencv_calib3d.so.3.4
-- Set runtime path of "/usr/local/lib/libopencv_calib3d.so.3.4.16" to "/usr/local/lib"
-- Installing: /usr/local/lib/libopencv_calib3d.so
-- Installing: /usr/local/include/opencv2/calib3d.hpp
-- Installing: /usr/local/include/opencv2/calib3d/calib3d.hpp
-- Installing: /usr/local/include/opencv2/calib3d/calib3d_c.h
-- Installing: /usr/local/lib/libopencv_datasets.so.3.4.16
-- Installing: /usr/local/lib/libopencv_datasets.so.3.4
-- Set runtime path of "/usr/local/lib/libopencv_datasets.so.3.4.16" to "/usr/local/lib"
-- Installing: /usr/local/lib/libopencv_datasets.so
-- Installing: /usr/local/include/opencv2/datasets/ar_hmdb.hpp
-- Installing: /usr/local/include/opencv2/datasets/ar_sports.hpp
-- Installing: /usr/local/include/opencv2/datasets/dataset.hpp
-- Installing: /usr/local/include/opencv2/datasets/fr_adience.hpp
-- Installing: /usr/local/include/opencv2/datasets/fr_lfw.hpp
-- Installing: /usr/local/include/opencv2/datasets/gr_chalearn.hpp
-- Installing: /usr/local/include/opencv2/datasets/gr_skig.hpp
-- Installing: /usr/local/include/opencv2/datasets/hpe_humaneva.hpp
-- Installing: /usr/local/include/opencv2/datasets/hpe_parse.hpp
-- Installing: /usr/local/include/opencv2/datasets/ir_affine.hpp
-- Installing: /usr/local/include/opencv2/datasets/ir_robot.hpp
-- Installing: /usr/local/include/opencv2/datasets/is_bsds.hpp
-- Installing: /usr/local/include/opencv2/datasets/is_weizmann.hpp
-- Installing: /usr/local/include/opencv2/datasets/msm_epfl.hpp
-- Installing: /usr/local/include/opencv2/datasets/msm_middlebury.hpp
-- Installing: /usr/local/include/opencv2/datasets/or_imagenet.hpp
-- Installing: /usr/local/include/opencv2/datasets/or_mnist.hpp
-- Installing: /usr/local/include/opencv2/datasets/or_pascal.hpp
-- Installing: /usr/local/include/opencv2/datasets/or_sun.hpp
-- Installing: /usr/local/include/opencv2/datasets/pd_caltech.hpp
-- Installing: /usr/local/include/opencv2/datasets/pd_inria.hpp
-- Installing: /usr/local/include/opencv2/datasets/slam_kitti.hpp
-- Installing: /usr/local/include/opencv2/datasets/slam_tumindoor.hpp
-- Installing: /usr/local/include/opencv2/datasets/tr_chars.hpp
-- Installing: /usr/local/include/opencv2/datasets/tr_icdar.hpp
-- Installing: /usr/local/include/opencv2/datasets/tr_svt.hpp
-- Installing: /usr/local/include/opencv2/datasets/track_alov.hpp
-- Installing: /usr/local/include/opencv2/datasets/track_vot.hpp
-- Installing: /usr/local/include/opencv2/datasets/util.hpp
-- Installing: /usr/local/share/OpenCV/samples/datasets/ar_hmdb.cpp
-- Installing: /usr/local/share/OpenCV/samples/datasets/ar_hmdb_benchmark.cpp
-- Installing: /usr/local/share/OpenCV/samples/datasets/ar_sports.cpp
-- Installing: /usr/local/share/OpenCV/samples/datasets/fr_adience.cpp
-- Installing: /usr/local/share/OpenCV/samples/datasets/fr_lfw.cpp
-- Installing: /usr/local/share/OpenCV/samples/datasets/fr_lfw_benchmark.cpp
-- Installing: /usr/local/share/OpenCV/samples/datasets/gr_chalearn.cpp
-- Installing: /usr/local/share/OpenCV/samples/datasets/gr_skig.cpp
-- Installing: /usr/local/share/OpenCV/samples/datasets/hpe_humaneva.cpp
-- Installing: /usr/local/share/OpenCV/samples/datasets/hpe_parse.cpp
-- Installing: /usr/local/share/OpenCV/samples/datasets/ir_affine.cpp
-- Installing: /usr/local/share/OpenCV/samples/datasets/ir_robot.cpp
-- Installing: /usr/local/share/OpenCV/samples/datasets/is_bsds.cpp
-- Installing: /usr/local/share/OpenCV/samples/datasets/is_weizmann.cpp
-- Installing: /usr/local/share/OpenCV/samples/datasets/msm_epfl.cpp
-- Installing: /usr/local/share/OpenCV/samples/datasets/msm_middlebury.cpp
-- Installing: /usr/local/share/OpenCV/samples/datasets/or_imagenet.cpp
-- Installing: /usr/local/share/OpenCV/samples/datasets/or_mnist.cpp
-- Installing: /usr/local/share/OpenCV/samples/datasets/or_pascal.cpp
-- Installing: /usr/local/share/OpenCV/samples/datasets/or_sun.cpp
-- Installing: /usr/local/share/OpenCV/samples/datasets/pd_caltech.cpp
-- Installing: /usr/local/share/OpenCV/samples/datasets/pd_inria.cpp
-- Installing: /usr/local/share/OpenCV/samples/datasets/slam_kitti.cpp
-- Installing: /usr/local/share/OpenCV/samples/datasets/slam_tumindoor.cpp
-- Installing: /usr/local/share/OpenCV/samples/datasets/tr_chars.cpp
-- Installing: /usr/local/share/OpenCV/samples/datasets/tr_chars_benchmark.cpp
-- Installing: /usr/local/share/OpenCV/samples/datasets/tr_icdar.cpp
-- Installing: /usr/local/share/OpenCV/samples/datasets/tr_icdar_benchmark.cpp
-- Installing: /usr/local/share/OpenCV/samples/datasets/tr_svt.cpp
-- Installing: /usr/local/share/OpenCV/samples/datasets/tr_svt_benchmark.cpp
-- Installing: /usr/local/share/OpenCV/samples/datasets/track_vot.cpp
-- Up-to-date: /usr/local/share/OpenCV/samples/datasets
-- Installing: /usr/local/lib/libopencv_highgui.so.3.4.16
-- Installing: /usr/local/lib/libopencv_highgui.so.3.4
-- Set runtime path of "/usr/local/lib/libopencv_highgui.so.3.4.16" to "/usr/local/lib"
-- Installing: /usr/local/lib/libopencv_highgui.so
-- Installing: /usr/local/include/opencv2/highgui.hpp
-- Installing: /usr/local/include/opencv2/highgui/highgui.hpp
-- Installing: /usr/local/include/opencv2/highgui/highgui_c.h
-- Installing: /usr/local/lib/libopencv_objdetect.so.3.4.16
-- Installing: /usr/local/lib/libopencv_objdetect.so.3.4
-- Set runtime path of "/usr/local/lib/libopencv_objdetect.so.3.4.16" to "/usr/local/lib"
-- Installing: /usr/local/lib/libopencv_objdetect.so
-- Installing: /usr/local/include/opencv2/objdetect.hpp
-- Installing: /usr/local/include/opencv2/objdetect/detection_based_tracker.hpp
-- Installing: /usr/local/include/opencv2/objdetect/objdetect.hpp
-- Installing: /usr/local/include/opencv2/objdetect/objdetect_c.h
-- Installing: /usr/local/lib/libopencv_rgbd.so.3.4.16
-- Installing: /usr/local/lib/libopencv_rgbd.so.3.4
-- Set runtime path of "/usr/local/lib/libopencv_rgbd.so.3.4.16" to "/usr/local/lib"
-- Installing: /usr/local/lib/libopencv_rgbd.so
-- Installing: /usr/local/include/opencv2/rgbd.hpp
-- Installing: /usr/local/include/opencv2/rgbd/linemod.hpp
-- Installing: /usr/local/share/OpenCV/samples/rgbd/CMakeLists.txt
-- Installing: /usr/local/share/OpenCV/samples/rgbd/linemod.cpp
-- Installing: /usr/local/share/OpenCV/samples/rgbd/odometry_evaluation.cpp
-- Up-to-date: /usr/local/share/OpenCV/samples/rgbd
-- Installing: /usr/local/lib/libopencv_stereo.so.3.4.16
-- Installing: /usr/local/lib/libopencv_stereo.so.3.4
-- Set runtime path of "/usr/local/lib/libopencv_stereo.so.3.4.16" to "/usr/local/lib"
-- Installing: /usr/local/lib/libopencv_stereo.so
-- Installing: /usr/local/include/opencv2/stereo.hpp
-- Installing: /usr/local/include/opencv2/stereo/descriptor.hpp
-- Installing: /usr/local/include/opencv2/stereo/stereo.hpp
-- Installing: /usr/local/share/OpenCV/samples/stereo/sample.cpp
-- Up-to-date: /usr/local/share/OpenCV/samples/stereo
-- Installing: /usr/local/lib/libopencv_structured_light.so.3.4.16
-- Installing: /usr/local/lib/libopencv_structured_light.so.3.4
-- Set runtime path of "/usr/local/lib/libopencv_structured_light.so.3.4.16" to "/usr/local/lib"
-- Installing: /usr/local/lib/libopencv_structured_light.so
-- Installing: /usr/local/include/opencv2/structured_light.hpp
-- Installing: /usr/local/include/opencv2/structured_light/graycodepattern.hpp
-- Installing: /usr/local/include/opencv2/structured_light/sinusoidalpattern.hpp
-- Installing: /usr/local/include/opencv2/structured_light/structured_light.hpp
-- Installing: /usr/local/share/OpenCV/samples/structured_light/cap_pattern.cpp
-- Installing: /usr/local/share/OpenCV/samples/structured_light/capsinpattern.cpp
-- Installing: /usr/local/share/OpenCV/samples/structured_light/pointcloud.cpp
-- Installing: /usr/local/share/OpenCV/samples/structured_light/projectorcalibration.cpp
-- Up-to-date: /usr/local/share/OpenCV/samples/structured_light
-- Installing: /usr/local/lib/libopencv_superres.so.3.4.16
-- Installing: /usr/local/lib/libopencv_superres.so.3.4
-- Set runtime path of "/usr/local/lib/libopencv_superres.so.3.4.16" to "/usr/local/lib"
-- Installing: /usr/local/lib/libopencv_superres.so
-- Installing: /usr/local/include/opencv2/superres.hpp
-- Installing: /usr/local/include/opencv2/superres/optical_flow.hpp
-- Installing: /usr/local/lib/libopencv_tracking.so.3.4.16
-- Installing: /usr/local/lib/libopencv_tracking.so.3.4
-- Set runtime path of "/usr/local/lib/libopencv_tracking.so.3.4.16" to "/usr/local/lib"
-- Installing: /usr/local/lib/libopencv_tracking.so
-- Installing: /usr/local/include/opencv2/tracking.hpp
-- Installing: /usr/local/include/opencv2/tracking/feature.hpp
-- Installing: /usr/local/include/opencv2/tracking/kalman_filters.hpp
-- Installing: /usr/local/include/opencv2/tracking/onlineBoosting.hpp
-- Installing: /usr/local/include/opencv2/tracking/onlineMIL.hpp
-- Installing: /usr/local/include/opencv2/tracking/tldDataset.hpp
-- Installing: /usr/local/include/opencv2/tracking/tracker.hpp
-- Installing: /usr/local/include/opencv2/tracking/tracking.hpp
-- Installing: /usr/local/share/OpenCV/samples/tracking/benchmark.cpp
-- Installing: /usr/local/share/OpenCV/samples/tracking/csrt.cpp
-- Installing: /usr/local/share/OpenCV/samples/tracking/goturnTracker.cpp
-- Installing: /usr/local/share/OpenCV/samples/tracking/kcf.cpp
-- Installing: /usr/local/share/OpenCV/samples/tracking/multiTracker_dataset.cpp
-- Installing: /usr/local/share/OpenCV/samples/tracking/multitracker.cpp
-- Installing: /usr/local/share/OpenCV/samples/tracking/multitracker.py
-- Installing: /usr/local/share/OpenCV/samples/tracking/samples_utility.hpp
-- Installing: /usr/local/share/OpenCV/samples/tracking/tracker.cpp
-- Installing: /usr/local/share/OpenCV/samples/tracking/tracker.py
-- Installing: /usr/local/share/OpenCV/samples/tracking/tracker_dataset.cpp
-- Installing: /usr/local/share/OpenCV/samples/tracking/tutorial_customizing_cn_tracker.cpp
-- Installing: /usr/local/share/OpenCV/samples/tracking/tutorial_introduction_to_tracker.cpp
-- Installing: /usr/local/share/OpenCV/samples/tracking/tutorial_multitracker.cpp
-- Up-to-date: /usr/local/share/OpenCV/samples/tracking
-- Installing: /usr/local/lib/libopencv_videostab.so.3.4.16
-- Installing: /usr/local/lib/libopencv_videostab.so.3.4
-- Set runtime path of "/usr/local/lib/libopencv_videostab.so.3.4.16" to "/usr/local/lib"
-- Installing: /usr/local/lib/libopencv_videostab.so
-- Installing: /usr/local/include/opencv2/videostab.hpp
-- Installing: /usr/local/include/opencv2/videostab/deblurring.hpp
-- Installing: /usr/local/include/opencv2/videostab/fast_marching.hpp
-- Installing: /usr/local/include/opencv2/videostab/fast_marching_inl.hpp
-- Installing: /usr/local/include/opencv2/videostab/frame_source.hpp
-- Installing: /usr/local/include/opencv2/videostab/global_motion.hpp
-- Installing: /usr/local/include/opencv2/videostab/inpainting.hpp
-- Installing: /usr/local/include/opencv2/videostab/log.hpp
-- Installing: /usr/local/include/opencv2/videostab/motion_core.hpp
-- Installing: /usr/local/include/opencv2/videostab/motion_stabilizing.hpp
-- Installing: /usr/local/include/opencv2/videostab/optical_flow.hpp
-- Installing: /usr/local/include/opencv2/videostab/outlier_rejection.hpp
-- Installing: /usr/local/include/opencv2/videostab/ring_buffer.hpp
-- Installing: /usr/local/include/opencv2/videostab/stabilizer.hpp
-- Installing: /usr/local/include/opencv2/videostab/wobble_suppression.hpp
-- Installing: /usr/local/lib/libopencv_xfeatures2d.so.3.4.16
-- Installing: /usr/local/lib/libopencv_xfeatures2d.so.3.4
-- Set runtime path of "/usr/local/lib/libopencv_xfeatures2d.so.3.4.16" to "/usr/local/lib"
-- Installing: /usr/local/lib/libopencv_xfeatures2d.so
-- Installing: /usr/local/include/opencv2/xfeatures2d.hpp
-- Installing: /usr/local/include/opencv2/xfeatures2d/cuda.hpp
-- Installing: /usr/local/include/opencv2/xfeatures2d/nonfree.hpp
-- Installing: /usr/local/share/OpenCV/samples/xfeatures2d/bagofwords_classification.cpp
-- Installing: /usr/local/share/OpenCV/samples/xfeatures2d/export-boostdesc.py
-- Installing: /usr/local/share/OpenCV/samples/xfeatures2d/gms_matcher.cpp
-- Installing: /usr/local/share/OpenCV/samples/xfeatures2d/pct_signatures.cpp
-- Installing: /usr/local/share/OpenCV/samples/xfeatures2d/pct_webcam.cpp
-- Installing: /usr/local/share/OpenCV/samples/xfeatures2d/shape_transformation.cpp
-- Installing: /usr/local/share/OpenCV/samples/xfeatures2d/surf_matcher.cpp
-- Installing: /usr/local/share/OpenCV/samples/xfeatures2d/video_homography.cpp
-- Up-to-date: /usr/local/share/OpenCV/samples/xfeatures2d
-- Installing: /usr/local/lib/libopencv_ximgproc.so.3.4.16
-- Installing: /usr/local/lib/libopencv_ximgproc.so.3.4
-- Set runtime path of "/usr/local/lib/libopencv_ximgproc.so.3.4.16" to "/usr/local/lib"
-- Installing: /usr/local/lib/libopencv_ximgproc.so
-- Installing: /usr/local/include/opencv2/ximgproc.hpp
-- Installing: /usr/local/include/opencv2/ximgproc/brightedges.hpp
-- Installing: /usr/local/include/opencv2/ximgproc/deriche_filter.hpp
-- Installing: /usr/local/include/opencv2/ximgproc/disparity_filter.hpp
-- Installing: /usr/local/include/opencv2/ximgproc/edge_drawing.hpp
-- Installing: /usr/local/include/opencv2/ximgproc/edge_filter.hpp
-- Installing: /usr/local/include/opencv2/ximgproc/edgeboxes.hpp
-- Installing: /usr/local/include/opencv2/ximgproc/estimated_covariance.hpp
-- Installing: /usr/local/include/opencv2/ximgproc/fast_hough_transform.hpp
-- Installing: /usr/local/include/opencv2/ximgproc/fast_line_detector.hpp
-- Installing: /usr/local/include/opencv2/ximgproc/fourier_descriptors.hpp
-- Installing: /usr/local/include/opencv2/ximgproc/lsc.hpp
-- Installing: /usr/local/include/opencv2/ximgproc/paillou_filter.hpp
-- Installing: /usr/local/include/opencv2/ximgproc/peilin.hpp
-- Installing: /usr/local/include/opencv2/ximgproc/ridgefilter.hpp
-- Installing: /usr/local/include/opencv2/ximgproc/seeds.hpp
-- Installing: /usr/local/include/opencv2/ximgproc/segmentation.hpp
-- Installing: /usr/local/include/opencv2/ximgproc/slic.hpp
-- Installing: /usr/local/include/opencv2/ximgproc/sparse_match_interpolator.hpp
-- Installing: /usr/local/include/opencv2/ximgproc/structured_edge_detection.hpp
-- Installing: /usr/local/include/opencv2/ximgproc/weighted_median_filter.hpp
-- Installing: /usr/local/share/OpenCV/samples/ximgproc/CMakeLists.txt
-- Installing: /usr/local/share/OpenCV/samples/ximgproc/brightedgesexample.cpp
-- Installing: /usr/local/share/OpenCV/samples/ximgproc/colorize.cpp
-- Installing: /usr/local/share/OpenCV/samples/ximgproc/dericheSample.py
-- Installing: /usr/local/share/OpenCV/samples/ximgproc/deriche_demo.cpp
-- Installing: /usr/local/share/OpenCV/samples/ximgproc/disparity_filtering.cpp
-- Installing: /usr/local/share/OpenCV/samples/ximgproc/edge_drawing.py
-- Installing: /usr/local/share/OpenCV/samples/ximgproc/edgeboxes_demo.cpp
-- Installing: /usr/local/share/OpenCV/samples/ximgproc/edgeboxes_demo.py
-- Installing: /usr/local/share/OpenCV/samples/ximgproc/fast_hough_transform.cpp
-- Installing: /usr/local/share/OpenCV/samples/ximgproc/filterdemo.cpp
-- Installing: /usr/local/share/OpenCV/samples/ximgproc/findredlinedpolygonfromgooglemaps.py
-- Installing: /usr/local/share/OpenCV/samples/ximgproc/fld_lines.cpp
-- Installing: /usr/local/share/OpenCV/samples/ximgproc/fourier_descriptors_demo.cpp
-- Installing: /usr/local/share/OpenCV/samples/ximgproc/graphsegmentation_demo.cpp
-- Installing: /usr/local/share/OpenCV/samples/ximgproc/live_demo.cpp
-- Installing: /usr/local/share/OpenCV/samples/ximgproc/niblack_thresholding.cpp
-- Installing: /usr/local/share/OpenCV/samples/ximgproc/paillou_demo.cpp
-- Installing: /usr/local/share/OpenCV/samples/ximgproc/peilin.cpp
-- Installing: /usr/local/share/OpenCV/samples/ximgproc/peilin_plane.png
-- Installing: /usr/local/share/OpenCV/samples/ximgproc/peilin_shape.png
-- Installing: /usr/local/share/OpenCV/samples/ximgproc/polygonstanfordoutput.png
-- Installing: /usr/local/share/OpenCV/samples/ximgproc/seeds.cpp
-- Installing: /usr/local/share/OpenCV/samples/ximgproc/selectivesearchsegmentation_demo.cpp
-- Installing: /usr/local/share/OpenCV/samples/ximgproc/selectivesearchsegmentation_demo.py
-- Installing: /usr/local/share/OpenCV/samples/ximgproc/slic.cpp
-- Installing: /usr/local/share/OpenCV/samples/ximgproc/stanford.png
-- Installing: /usr/local/share/OpenCV/samples/ximgproc/structured_edge_detection.cpp
-- Installing: /usr/local/share/OpenCV/samples/ximgproc/thinning.cpp
-- Up-to-date: /usr/local/share/OpenCV/samples/ximgproc
-- Installing: /usr/local/lib/libopencv_xobjdetect.so.3.4.16
-- Installing: /usr/local/lib/libopencv_xobjdetect.so.3.4
-- Set runtime path of "/usr/local/lib/libopencv_xobjdetect.so.3.4.16" to "/usr/local/lib"
-- Installing: /usr/local/lib/libopencv_xobjdetect.so
-- Installing: /usr/local/include/opencv2/xobjdetect.hpp
-- Installing: /usr/local/bin/opencv_waldboost_detector
-- Set runtime path of "/usr/local/bin/opencv_waldboost_detector" to "/usr/local/lib"
-- Installing: /usr/local/lib/libopencv_aruco.so.3.4.16
-- Installing: /usr/local/lib/libopencv_aruco.so.3.4
-- Set runtime path of "/usr/local/lib/libopencv_aruco.so.3.4.16" to "/usr/local/lib"
-- Installing: /usr/local/lib/libopencv_aruco.so
-- Installing: /usr/local/include/opencv2/aruco.hpp
-- Installing: /usr/local/include/opencv2/aruco/charuco.hpp
-- Installing: /usr/local/include/opencv2/aruco/dictionary.hpp
-- Installing: /usr/local/share/OpenCV/samples/aruco/calibrate_camera.cpp
-- Installing: /usr/local/share/OpenCV/samples/aruco/calibrate_camera_charuco.cpp
-- Installing: /usr/local/share/OpenCV/samples/aruco/create_board.cpp
-- Installing: /usr/local/share/OpenCV/samples/aruco/create_board_charuco.cpp
-- Installing: /usr/local/share/OpenCV/samples/aruco/create_diamond.cpp
-- Installing: /usr/local/share/OpenCV/samples/aruco/create_marker.cpp
-- Installing: /usr/local/share/OpenCV/samples/aruco/detect_board.cpp
-- Installing: /usr/local/share/OpenCV/samples/aruco/detect_board_charuco.cpp
-- Installing: /usr/local/share/OpenCV/samples/aruco/detect_diamonds.cpp
-- Installing: /usr/local/share/OpenCV/samples/aruco/detect_markers.cpp
-- Installing: /usr/local/share/OpenCV/samples/aruco/detector_params.yml
-- Installing: /usr/local/share/OpenCV/samples/aruco/tutorial_charuco_create_detect.cpp
-- Up-to-date: /usr/local/share/OpenCV/samples/aruco
-- Installing: /usr/local/lib/libopencv_bgsegm.so.3.4.16
-- Installing: /usr/local/lib/libopencv_bgsegm.so.3.4
-- Set runtime path of "/usr/local/lib/libopencv_bgsegm.so.3.4.16" to "/usr/local/lib"
-- Installing: /usr/local/lib/libopencv_bgsegm.so
-- Installing: /usr/local/include/opencv2/bgsegm.hpp
-- Installing: /usr/local/share/OpenCV/samples/bgsegm/bgfg.cpp
-- Installing: /usr/local/share/OpenCV/samples/bgsegm/evaluation.py
-- Installing: /usr/local/share/OpenCV/samples/bgsegm/viz.py
-- Installing: /usr/local/share/OpenCV/samples/bgsegm/viz_synthetic_seq.py
-- Up-to-date: /usr/local/share/OpenCV/samples/bgsegm
-- Installing: /usr/local/lib/libopencv_bioinspired.so.3.4.16
-- Installing: /usr/local/lib/libopencv_bioinspired.so.3.4
-- Set runtime path of "/usr/local/lib/libopencv_bioinspired.so.3.4.16" to "/usr/local/lib"
-- Installing: /usr/local/lib/libopencv_bioinspired.so
-- Installing: /usr/local/include/opencv2/bioinspired.hpp
-- Installing: /usr/local/include/opencv2/bioinspired/bioinspired.hpp
-- Installing: /usr/local/include/opencv2/bioinspired/retina.hpp
-- Installing: /usr/local/include/opencv2/bioinspired/retinafasttonemapping.hpp
-- Installing: /usr/local/include/opencv2/bioinspired/transientareassegmentationmodule.hpp
-- Installing: /usr/local/share/OpenCV/samples/bioinspired/OpenEXRimages_HDR_Retina_toneMapping.cpp
-- Installing: /usr/local/share/OpenCV/samples/bioinspired/retinaDemo.cpp
-- Installing: /usr/local/share/OpenCV/samples/bioinspired/cpp
-- Installing: /usr/local/share/OpenCV/samples/bioinspired/cpp/OpenEXRimages_HDR_Retina_toneMapping_video.cpp
-- Installing: /usr/local/share/OpenCV/samples/bioinspired/cpp/retinaDemo.cpp
-- Installing: /usr/local/share/OpenCV/samples/bioinspired/cpp/tutorial_code
-- Installing: /usr/local/share/OpenCV/samples/bioinspired/cpp/tutorial_code/bioinspired
-- Installing: /usr/local/share/OpenCV/samples/bioinspired/cpp/tutorial_code/bioinspired/retina_tutorial.cpp
-- Installing: /usr/local/share/OpenCV/samples/bioinspired/cpp/OpenEXRimages_HDR_Retina_toneMapping.cpp
-- Installing: /usr/local/share/OpenCV/samples/bioinspired/ocl
-- Installing: /usr/local/share/OpenCV/samples/bioinspired/ocl/retina_ocl.cpp
-- Installing: /usr/local/lib/libopencv_ccalib.so.3.4.16
-- Installing: /usr/local/lib/libopencv_ccalib.so.3.4
-- Set runtime path of "/usr/local/lib/libopencv_ccalib.so.3.4.16" to "/usr/local/lib"
-- Installing: /usr/local/lib/libopencv_ccalib.so
-- Installing: /usr/local/include/opencv2/ccalib.hpp
-- Installing: /usr/local/include/opencv2/ccalib/multicalib.hpp
-- Installing: /usr/local/include/opencv2/ccalib/omnidir.hpp
-- Installing: /usr/local/include/opencv2/ccalib/randpattern.hpp
-- Installing: /usr/local/share/OpenCV/samples/ccalib/multi_cameras_calibration.cpp
-- Installing: /usr/local/share/OpenCV/samples/ccalib/omni_calibration.cpp
-- Installing: /usr/local/share/OpenCV/samples/ccalib/omni_stereo_calibration.cpp
-- Installing: /usr/local/share/OpenCV/samples/ccalib/random_pattern_calibration.cpp
-- Installing: /usr/local/share/OpenCV/samples/ccalib/random_pattern_generator.cpp
-- Up-to-date: /usr/local/share/OpenCV/samples/ccalib
-- Installing: /usr/local/lib/libopencv_dnn_objdetect.so.3.4.16
-- Installing: /usr/local/lib/libopencv_dnn_objdetect.so.3.4
-- Set runtime path of "/usr/local/lib/libopencv_dnn_objdetect.so.3.4.16" to "/usr/local/lib"
-- Installing: /usr/local/lib/libopencv_dnn_objdetect.so
-- Installing: /usr/local/include/opencv2/core_detect.hpp
-- Installing: /usr/local/share/OpenCV/samples/dnn_objdetect/image_classification.cpp
-- Installing: /usr/local/share/OpenCV/samples/dnn_objdetect/obj_detect.cpp
-- Installing: /usr/local/share/OpenCV/samples/dnn_objdetect/data
-- Installing: /usr/local/share/OpenCV/samples/dnn_objdetect/data/SqueezeNet_solver.prototxt
-- Installing: /usr/local/share/OpenCV/samples/dnn_objdetect/data/README.md
-- Installing: /usr/local/share/OpenCV/samples/dnn_objdetect/data/SqueezeDet_solver.prototxt
-- Installing: /usr/local/share/OpenCV/samples/dnn_objdetect/data/SqueezeNet_train_test.prototxt
-- Installing: /usr/local/share/OpenCV/samples/dnn_objdetect/data/SqueezeNet_deploy.prototxt
-- Installing: /usr/local/share/OpenCV/samples/dnn_objdetect/data/SqueezeDet_deploy.prototxt
-- Installing: /usr/local/share/OpenCV/samples/dnn_objdetect/data/SqueezeDet_train_test.prototxt
-- Installing: /usr/local/lib/libopencv_dpm.so.3.4.16
-- Installing: /usr/local/lib/libopencv_dpm.so.3.4
-- Set runtime path of "/usr/local/lib/libopencv_dpm.so.3.4.16" to "/usr/local/lib"
-- Installing: /usr/local/lib/libopencv_dpm.so
-- Installing: /usr/local/include/opencv2/dpm.hpp
-- Installing: /usr/local/share/OpenCV/samples/dpm/cascade_detect_camera.cpp
-- Installing: /usr/local/share/OpenCV/samples/dpm/cascade_detect_sequence.cpp
-- Installing: /usr/local/share/OpenCV/samples/dpm/data
-- Installing: /usr/local/share/OpenCV/samples/dpm/data/inriaperson.xml
-- Installing: /usr/local/lib/libopencv_face.so.3.4.16
-- Installing: /usr/local/lib/libopencv_face.so.3.4
-- Set runtime path of "/usr/local/lib/libopencv_face.so.3.4.16" to "/usr/local/lib"
-- Installing: /usr/local/lib/libopencv_face.so
-- Installing: /usr/local/include/opencv2/face.hpp
-- Installing: /usr/local/include/opencv2/face/bif.hpp
-- Installing: /usr/local/include/opencv2/face/face_alignment.hpp
-- Installing: /usr/local/include/opencv2/face/facemark.hpp
-- Installing: /usr/local/include/opencv2/face/facemarkAAM.hpp
-- Installing: /usr/local/include/opencv2/face/facemarkLBF.hpp
-- Installing: /usr/local/include/opencv2/face/facemark_train.hpp
-- Installing: /usr/local/include/opencv2/face/facerec.hpp
-- Installing: /usr/local/include/opencv2/face/mace.hpp
-- Installing: /usr/local/include/opencv2/face/predict_collector.hpp
-- Installing: /usr/local/share/OpenCV/samples/face/CMakeLists.txt
-- Installing: /usr/local/share/OpenCV/samples/face/Facemark.java
-- Installing: /usr/local/share/OpenCV/samples/face/facemark_demo_aam.cpp
-- Installing: /usr/local/share/OpenCV/samples/face/facemark_demo_lbf.cpp
-- Installing: /usr/local/share/OpenCV/samples/face/facemark_lbf_fitting.cpp
-- Installing: /usr/local/share/OpenCV/samples/face/facerec_demo.cpp
-- Installing: /usr/local/share/OpenCV/samples/face/facerec_eigenfaces.cpp
-- Installing: /usr/local/share/OpenCV/samples/face/facerec_fisherfaces.cpp
-- Installing: /usr/local/share/OpenCV/samples/face/facerec_lbph.cpp
-- Installing: /usr/local/share/OpenCV/samples/face/facerec_save_load.cpp
-- Installing: /usr/local/share/OpenCV/samples/face/facerec_video.cpp
-- Installing: /usr/local/share/OpenCV/samples/face/landmarks_demo.py
-- Installing: /usr/local/share/OpenCV/samples/face/mace_webcam.cpp
-- Installing: /usr/local/share/OpenCV/samples/face/sampleDetectLandmarks.cpp
-- Installing: /usr/local/share/OpenCV/samples/face/sampleDetectLandmarksvideo.cpp
-- Installing: /usr/local/share/OpenCV/samples/face/sample_config_file.xml
-- Installing: /usr/local/share/OpenCV/samples/face/sample_face_swapping.cpp
-- Installing: /usr/local/share/OpenCV/samples/face/sample_train_landmark_detector.cpp
-- Installing: /usr/local/share/OpenCV/samples/face/sample_train_landmark_detector2.cpp
-- Installing: /usr/local/share/OpenCV/samples/face/samplewriteconfigfile.cpp
-- Installing: /usr/local/share/OpenCV/samples/face/etc
-- Installing: /usr/local/share/OpenCV/samples/face/etc/crop_face.py
-- Installing: /usr/local/share/OpenCV/samples/face/etc/at.txt
-- Installing: /usr/local/share/OpenCV/samples/face/etc/create_csv.py
-- Installing: /usr/local/lib/libopencv_optflow.so.3.4.16
-- Installing: /usr/local/lib/libopencv_optflow.so.3.4
-- Set runtime path of "/usr/local/lib/libopencv_optflow.so.3.4.16" to "/usr/local/lib"
-- Installing: /usr/local/lib/libopencv_optflow.so
-- Installing: /usr/local/include/opencv2/optflow.hpp
-- Installing: /usr/local/include/opencv2/optflow/motempl.hpp
-- Installing: /usr/local/include/opencv2/optflow/pcaflow.hpp
-- Installing: /usr/local/include/opencv2/optflow/sparse_matching_gpc.hpp
-- Installing: /usr/local/share/OpenCV/samples/optflow/dis_opticalflow.cpp
-- Installing: /usr/local/share/OpenCV/samples/optflow/gpc_evaluate.cpp
-- Installing: /usr/local/share/OpenCV/samples/optflow/gpc_train.cpp
-- Installing: /usr/local/share/OpenCV/samples/optflow/gpc_train_middlebury.py
-- Installing: /usr/local/share/OpenCV/samples/optflow/gpc_train_sintel.py
-- Installing: /usr/local/share/OpenCV/samples/optflow/motempl.cpp
-- Installing: /usr/local/share/OpenCV/samples/optflow/motempl.py
-- Installing: /usr/local/share/OpenCV/samples/optflow/optical_flow_benchmark.py
-- Installing: /usr/local/share/OpenCV/samples/optflow/optical_flow_evaluation.cpp
-- Installing: /usr/local/share/OpenCV/samples/optflow/pcaflow_demo.cpp
-- Installing: /usr/local/share/OpenCV/samples/optflow/simpleflow_demo.cpp
-- Up-to-date: /usr/local/share/OpenCV/samples/optflow
-- Installing: /usr/local/lib/libopencv_sfm.so.3.4.16
-- Installing: /usr/local/lib/libopencv_sfm.so.3.4
-- Set runtime path of "/usr/local/lib/libopencv_sfm.so.3.4.16" to "/usr/local/lib"
-- Installing: /usr/local/lib/libopencv_sfm.so
-- Installing: /usr/local/include/opencv2/sfm.hpp
-- Installing: /usr/local/include/opencv2/sfm/conditioning.hpp
-- Installing: /usr/local/include/opencv2/sfm/fundamental.hpp
-- Installing: /usr/local/include/opencv2/sfm/io.hpp
-- Installing: /usr/local/include/opencv2/sfm/numeric.hpp
-- Installing: /usr/local/include/opencv2/sfm/projection.hpp
-- Installing: /usr/local/include/opencv2/sfm/reconstruct.hpp
-- Installing: /usr/local/include/opencv2/sfm/robust.hpp
-- Installing: /usr/local/include/opencv2/sfm/simple_pipeline.hpp
-- Installing: /usr/local/include/opencv2/sfm/triangulation.hpp
-- Installing: /usr/local/share/OpenCV/3rdparty/lib/libcorrespondence.a
-- Installing: /usr/local/share/OpenCV/3rdparty/lib/libmultiview.a
-- Installing: /usr/local/share/OpenCV/3rdparty/lib/libnumeric.a
-- Installing: /usr/local/lib/libopencv_stitching.so.3.4.16
-- Installing: /usr/local/lib/libopencv_stitching.so.3.4
-- Set runtime path of "/usr/local/lib/libopencv_stitching.so.3.4.16" to "/usr/local/lib"
-- Installing: /usr/local/lib/libopencv_stitching.so
-- Installing: /usr/local/include/opencv2/stitching.hpp
-- Installing: /usr/local/include/opencv2/stitching/detail/autocalib.hpp
-- Installing: /usr/local/include/opencv2/stitching/detail/blenders.hpp
-- Installing: /usr/local/include/opencv2/stitching/detail/camera.hpp
-- Installing: /usr/local/include/opencv2/stitching/detail/exposure_compensate.hpp
-- Installing: /usr/local/include/opencv2/stitching/detail/matchers.hpp
-- Installing: /usr/local/include/opencv2/stitching/detail/motion_estimators.hpp
-- Installing: /usr/local/include/opencv2/stitching/detail/seam_finders.hpp
-- Installing: /usr/local/include/opencv2/stitching/detail/timelapsers.hpp
-- Installing: /usr/local/include/opencv2/stitching/detail/util.hpp
-- Installing: /usr/local/include/opencv2/stitching/detail/util_inl.hpp
-- Installing: /usr/local/include/opencv2/stitching/detail/warpers.hpp
-- Installing: /usr/local/include/opencv2/stitching/detail/warpers_inl.hpp
-- Installing: /usr/local/include/opencv2/stitching/warpers.hpp
-- Installing: /usr/local/lib/python3.8/site-packages/cv2/__init__.py
-- Installing: /usr/local/lib/python3.8/site-packages/cv2/load_config_py2.py
-- Installing: /usr/local/lib/python3.8/site-packages/cv2/load_config_py3.py
-- Installing: /usr/local/lib/python3.8/site-packages/cv2/config.py
-- Installing: /usr/local/lib/python3.8/site-packages/cv2/python-3.8/cv2.cpython-38-arm-linux-gnueabihf.so
-- Set runtime path of "/usr/local/lib/python3.8/site-packages/cv2/python-3.8/cv2.cpython-38-arm-linux-gnueabihf.so" to "/usr/local/lib"
-- Installing: /usr/local/lib/python3.8/site-packages/cv2/config-3.8.py
-- Installing: /usr/local/share/OpenCV/haarcascades/haarcascade_eye.xml
-- Installing: /usr/local/share/OpenCV/haarcascades/haarcascade_eye_tree_eyeglasses.xml
-- Installing: /usr/local/share/OpenCV/haarcascades/haarcascade_frontalcatface.xml
-- Installing: /usr/local/share/OpenCV/haarcascades/haarcascade_frontalcatface_extended.xml
-- Installing: /usr/local/share/OpenCV/haarcascades/haarcascade_frontalface_alt.xml
-- Installing: /usr/local/share/OpenCV/haarcascades/haarcascade_frontalface_alt2.xml
-- Installing: /usr/local/share/OpenCV/haarcascades/haarcascade_frontalface_alt_tree.xml
-- Installing: /usr/local/share/OpenCV/haarcascades/haarcascade_frontalface_default.xml
-- Installing: /usr/local/share/OpenCV/haarcascades/haarcascade_fullbody.xml
-- Installing: /usr/local/share/OpenCV/haarcascades/haarcascade_lefteye_2splits.xml
-- Installing: /usr/local/share/OpenCV/haarcascades/haarcascade_licence_plate_rus_16stages.xml
-- Installing: /usr/local/share/OpenCV/haarcascades/haarcascade_lowerbody.xml
-- Installing: /usr/local/share/OpenCV/haarcascades/haarcascade_profileface.xml
-- Installing: /usr/local/share/OpenCV/haarcascades/haarcascade_righteye_2splits.xml
-- Installing: /usr/local/share/OpenCV/haarcascades/haarcascade_russian_plate_number.xml
-- Installing: /usr/local/share/OpenCV/haarcascades/haarcascade_smile.xml
-- Installing: /usr/local/share/OpenCV/haarcascades/haarcascade_upperbody.xml
-- Installing: /usr/local/share/OpenCV/lbpcascades/lbpcascade_frontalcatface.xml
-- Installing: /usr/local/share/OpenCV/lbpcascades/lbpcascade_frontalface.xml
-- Installing: /usr/local/share/OpenCV/lbpcascades/lbpcascade_frontalface_improved.xml
-- Installing: /usr/local/share/OpenCV/lbpcascades/lbpcascade_profileface.xml
-- Installing: /usr/local/share/OpenCV/lbpcascades/lbpcascade_silverware.xml
-- Installing: /usr/local/bin/opencv_traincascade
-- Set runtime path of "/usr/local/bin/opencv_traincascade" to "/usr/local/lib"
-- Installing: /usr/local/bin/opencv_createsamples
-- Set runtime path of "/usr/local/bin/opencv_createsamples" to "/usr/local/lib"
-- Installing: /usr/local/bin/opencv_annotation
-- Set runtime path of "/usr/local/bin/opencv_annotation" to "/usr/local/lib"
-- Installing: /usr/local/bin/opencv_visualisation
-- Set runtime path of "/usr/local/bin/opencv_visualisation" to "/usr/local/lib"
-- Installing: /usr/local/bin/opencv_interactive-calibration
-- Set runtime path of "/usr/local/bin/opencv_interactive-calibration" to "/usr/local/lib"
-- Installing: /usr/local/bin/opencv_version
-- Set runtime path of "/usr/local/bin/opencv_version" to "/usr/local/lib"
-- Installing: /usr/local/share/OpenCV/samples/./CMakeLists.txt
-- Installing: /usr/local/share/OpenCV/samples/./samples_utils.cmake
-- Installing: /usr/local/share/OpenCV/samples/data
-- Installing: /usr/local/share/OpenCV/samples/data/right07.jpg
-- Installing: /usr/local/share/OpenCV/samples/data/WindowsLogo.jpg
-- Installing: /usr/local/share/OpenCV/samples/data/right02.jpg
-- Installing: /usr/local/share/OpenCV/samples/data/orange.jpg
-- Installing: /usr/local/share/OpenCV/samples/data/pca_test1.jpg
-- Installing: /usr/local/share/OpenCV/samples/data/text_defocus.jpg
-- Installing: /usr/local/share/OpenCV/samples/data/rubberwhale2.png
-- Installing: /usr/local/share/OpenCV/samples/data/letter-recognition.data
-- Installing: /usr/local/share/OpenCV/samples/data/blox.jpg
-- Installing: /usr/local/share/OpenCV/samples/data/data01.xml
-- Installing: /usr/local/share/OpenCV/samples/data/opencv-logo-white.png
-- Installing: /usr/local/share/OpenCV/samples/data/left06.jpg
-- Installing: /usr/local/share/OpenCV/samples/data/stereo_calib.xml
-- Installing: /usr/local/share/OpenCV/samples/data/pic2.png
-- Installing: /usr/local/share/OpenCV/samples/data/Blender_Suzanne1.jpg
-- Installing: /usr/local/share/OpenCV/samples/data/graf3.png
-- Installing: /usr/local/share/OpenCV/samples/data/apple.jpg
-- Installing: /usr/local/share/OpenCV/samples/data/pic5.png
-- Installing: /usr/local/share/OpenCV/samples/data/messi5.jpg
-- Installing: /usr/local/share/OpenCV/samples/data/left01.jpg
-- Installing: /usr/local/share/OpenCV/samples/data/calibration.yml
-- Installing: /usr/local/share/OpenCV/samples/data/right13.jpg
-- Installing: /usr/local/share/OpenCV/samples/data/ml.png
-- Installing: /usr/local/share/OpenCV/samples/data/aloeL.jpg
-- Installing: /usr/local/share/OpenCV/samples/data/tree.avi
-- Installing: /usr/local/share/OpenCV/samples/data/right06.jpg
-- Installing: /usr/local/share/OpenCV/samples/data/licenseplate_motion.jpg
-- Installing: /usr/local/share/OpenCV/samples/data/right05.jpg
-- Installing: /usr/local/share/OpenCV/samples/data/right11.jpg
-- Installing: /usr/local/share/OpenCV/samples/data/intrinsics.yml
-- Installing: /usr/local/share/OpenCV/samples/data/right09.jpg
-- Installing: /usr/local/share/OpenCV/samples/data/starry_night.jpg
-- Installing: /usr/local/share/OpenCV/samples/data/right04.jpg
-- Installing: /usr/local/share/OpenCV/samples/data/box.png
-- Installing: /usr/local/share/OpenCV/samples/data/Blender_Suzanne2.jpg
-- Installing: /usr/local/share/OpenCV/samples/data/LinuxLogo.jpg
-- Installing: /usr/local/share/OpenCV/samples/data/right08.jpg
-- Installing: /usr/local/share/OpenCV/samples/data/left09.jpg
-- Installing: /usr/local/share/OpenCV/samples/data/aloeR.jpg
-- Installing: /usr/local/share/OpenCV/samples/data/pic1.png
-- Installing: /usr/local/share/OpenCV/samples/data/ellipses.jpg
-- Installing: /usr/local/share/OpenCV/samples/data/left14.jpg
-- Installing: /usr/local/share/OpenCV/samples/data/building.jpg
-- Installing: /usr/local/share/OpenCV/samples/data/shape_sample
-- Installing: /usr/local/share/OpenCV/samples/data/shape_sample/5.png
-- Installing: /usr/local/share/OpenCV/samples/data/shape_sample/17.png
-- Installing: /usr/local/share/OpenCV/samples/data/shape_sample/6.png
-- Installing: /usr/local/share/OpenCV/samples/data/shape_sample/14.png
-- Installing: /usr/local/share/OpenCV/samples/data/shape_sample/8.png
-- Installing: /usr/local/share/OpenCV/samples/data/shape_sample/3.png
-- Installing: /usr/local/share/OpenCV/samples/data/shape_sample/7.png
-- Installing: /usr/local/share/OpenCV/samples/data/shape_sample/10.png
-- Installing: /usr/local/share/OpenCV/samples/data/shape_sample/1.png
-- Installing: /usr/local/share/OpenCV/samples/data/shape_sample/13.png
-- Installing: /usr/local/share/OpenCV/samples/data/shape_sample/20.png
-- Installing: /usr/local/share/OpenCV/samples/data/shape_sample/11.png
-- Installing: /usr/local/share/OpenCV/samples/data/shape_sample/18.png
-- Installing: /usr/local/share/OpenCV/samples/data/shape_sample/16.png
-- Installing: /usr/local/share/OpenCV/samples/data/shape_sample/15.png
-- Installing: /usr/local/share/OpenCV/samples/data/shape_sample/9.png
-- Installing: /usr/local/share/OpenCV/samples/data/shape_sample/2.png
-- Installing: /usr/local/share/OpenCV/samples/data/shape_sample/19.png
-- Installing: /usr/local/share/OpenCV/samples/data/shape_sample/4.png
-- Installing: /usr/local/share/OpenCV/samples/data/shape_sample/12.png
-- Installing: /usr/local/share/OpenCV/samples/data/home.jpg
-- Installing: /usr/local/share/OpenCV/samples/data/gradient.png
-- Installing: /usr/local/share/OpenCV/samples/data/box_in_scene.png
-- Installing: /usr/local/share/OpenCV/samples/data/left12.jpg
-- Installing: /usr/local/share/OpenCV/samples/data/mask.png
-- Installing: /usr/local/share/OpenCV/samples/data/rubberwhale1.png
-- Installing: /usr/local/share/OpenCV/samples/data/left11.jpg
-- Installing: /usr/local/share/OpenCV/samples/data/opencv-logo.png
-- Installing: /usr/local/share/OpenCV/samples/data/Megamind_bugy.avi
-- Installing: /usr/local/share/OpenCV/samples/data/left02.jpg
-- Installing: /usr/local/share/OpenCV/samples/data/basketball2.png
-- Installing: /usr/local/share/OpenCV/samples/data/pic3.png
-- Installing: /usr/local/share/OpenCV/samples/data/digits.png
-- Installing: /usr/local/share/OpenCV/samples/data/board.jpg
-- Installing: /usr/local/share/OpenCV/samples/data/pic4.png
-- Installing: /usr/local/share/OpenCV/samples/data/vtest.avi
-- Installing: /usr/local/share/OpenCV/samples/data/butterfly.jpg
-- Installing: /usr/local/share/OpenCV/samples/data/imageTextN.png
-- Installing: /usr/local/share/OpenCV/samples/data/aero1.jpg
-- Installing: /usr/local/share/OpenCV/samples/data/notes.png
-- Installing: /usr/local/share/OpenCV/samples/data/dnn
-- Installing: /usr/local/share/OpenCV/samples/data/dnn/classification_classes_ILSVRC2012.txt
-- Installing: /usr/local/share/OpenCV/samples/data/dnn/object_detection_classes_yolov3.txt
-- Installing: /usr/local/share/OpenCV/samples/data/dnn/object_detection_classes_pascal_voc.txt
-- Installing: /usr/local/share/OpenCV/samples/data/dnn/enet-classes.txt
-- Installing: /usr/local/share/OpenCV/samples/data/dnn/action_recongnition_kinetics.txt
-- Installing: /usr/local/share/OpenCV/samples/data/dnn/object_detection_classes_coco.txt
-- Installing: /usr/local/share/OpenCV/samples/data/right03.jpg
-- Installing: /usr/local/share/OpenCV/samples/data/stuff.jpg
-- Installing: /usr/local/share/OpenCV/samples/data/right01.jpg
-- Installing: /usr/local/share/OpenCV/samples/data/imageTextR.png
-- Installing: /usr/local/share/OpenCV/samples/data/HappyFish.jpg
-- Installing: /usr/local/share/OpenCV/samples/data/left05.jpg
-- Installing: /usr/local/share/OpenCV/samples/data/aloeGT.png
-- Installing: /usr/local/share/OpenCV/samples/data/baboon.jpg
-- Installing: /usr/local/share/OpenCV/samples/data/detect_blob.png
-- Installing: /usr/local/share/OpenCV/samples/data/left08.jpg
-- Installing: /usr/local/share/OpenCV/samples/data/chessboard.png
-- Installing: /usr/local/share/OpenCV/samples/data/Megamind.avi
-- Installing: /usr/local/share/OpenCV/samples/data/lena_tmpl.jpg
-- Installing: /usr/local/share/OpenCV/samples/data/right12.jpg
-- Installing: /usr/local/share/OpenCV/samples/data/left07.jpg
-- Installing: /usr/local/share/OpenCV/samples/data/aero3.jpg
-- Installing: /usr/local/share/OpenCV/samples/data/right.jpg
-- Installing: /usr/local/share/OpenCV/samples/data/left04.jpg
-- Installing: /usr/local/share/OpenCV/samples/data/basketball1.png
-- Installing: /usr/local/share/OpenCV/samples/data/pic6.png
-- Installing: /usr/local/share/OpenCV/samples/data/cards.png
-- Installing: /usr/local/share/OpenCV/samples/data/tmpl.png
-- Installing: /usr/local/share/OpenCV/samples/data/left_intrinsics.yml
-- Installing: /usr/local/share/OpenCV/samples/data/left13.jpg
-- Installing: /usr/local/share/OpenCV/samples/data/fruits.jpg
-- Installing: /usr/local/share/OpenCV/samples/data/graf1.png
-- Installing: /usr/local/share/OpenCV/samples/data/lena.jpg
-- Installing: /usr/local/share/OpenCV/samples/data/text_motion.jpg
-- Installing: /usr/local/share/OpenCV/samples/data/left03.jpg
-- Installing: /usr/local/share/OpenCV/samples/data/H1to3p.xml
-- Installing: /usr/local/share/OpenCV/samples/data/left.jpg
-- Installing: /usr/local/share/OpenCV/samples/data/templ.png
-- Installing: /usr/local/share/OpenCV/samples/data/right14.jpg
-- Installing: /usr/local/share/OpenCV/samples/data/sudoku.png
-- Installing: /usr/local/share/OpenCV/samples/data/smarties.png
-- Installing: /usr/local/share/OpenCV/samples/data/chicky_512.png
-- Installing: /usr/local/share/OpenCV/samples/cpp/3calibration.cpp
-- Installing: /usr/local/share/OpenCV/samples/cpp/CMakeLists.txt
-- Installing: /usr/local/share/OpenCV/samples/cpp/application_trace.cpp
-- Installing: /usr/local/share/OpenCV/samples/cpp/asift.cpp
-- Installing: /usr/local/share/OpenCV/samples/cpp/bgfg_segm.cpp
-- Installing: /usr/local/share/OpenCV/samples/cpp/calibration.cpp
-- Installing: /usr/local/share/OpenCV/samples/cpp/camshiftdemo.cpp
-- Installing: /usr/local/share/OpenCV/samples/cpp/cloning_demo.cpp
-- Installing: /usr/local/share/OpenCV/samples/cpp/cloning_gui.cpp
-- Installing: /usr/local/share/OpenCV/samples/cpp/connected_components.cpp
-- Installing: /usr/local/share/OpenCV/samples/cpp/contours2.cpp
-- Installing: /usr/local/share/OpenCV/samples/cpp/convexhull.cpp
-- Installing: /usr/local/share/OpenCV/samples/cpp/cout_mat.cpp
-- Installing: /usr/local/share/OpenCV/samples/cpp/create_mask.cpp
-- Installing: /usr/local/share/OpenCV/samples/cpp/dbt_face_detection.cpp
-- Installing: /usr/local/share/OpenCV/samples/cpp/delaunay2.cpp
-- Installing: /usr/local/share/OpenCV/samples/cpp/demhist.cpp
-- Installing: /usr/local/share/OpenCV/samples/cpp/detect_blob.cpp
-- Installing: /usr/local/share/OpenCV/samples/cpp/detect_mser.cpp
-- Installing: /usr/local/share/OpenCV/samples/cpp/dft.cpp
-- Installing: /usr/local/share/OpenCV/samples/cpp/digits.cpp
-- Installing: /usr/local/share/OpenCV/samples/cpp/distrans.cpp
-- Installing: /usr/local/share/OpenCV/samples/cpp/drawing.cpp
-- Installing: /usr/local/share/OpenCV/samples/cpp/edge.cpp
-- Installing: /usr/local/share/OpenCV/samples/cpp/em.cpp
-- Installing: /usr/local/share/OpenCV/samples/cpp/facedetect.cpp
-- Installing: /usr/local/share/OpenCV/samples/cpp/facial_features.cpp
-- Installing: /usr/local/share/OpenCV/samples/cpp/falsecolor.cpp
-- Installing: /usr/local/share/OpenCV/samples/cpp/fback.cpp
-- Installing: /usr/local/share/OpenCV/samples/cpp/ffilldemo.cpp
-- Installing: /usr/local/share/OpenCV/samples/cpp/filestorage.cpp
-- Installing: /usr/local/share/OpenCV/samples/cpp/fitellipse.cpp
-- Installing: /usr/local/share/OpenCV/samples/cpp/flann_search_dataset.cpp
-- Installing: /usr/local/share/OpenCV/samples/cpp/grabcut.cpp
-- Installing: /usr/local/share/OpenCV/samples/cpp/image.cpp
-- Installing: /usr/local/share/OpenCV/samples/cpp/image_alignment.cpp
-- Installing: /usr/local/share/OpenCV/samples/cpp/imagelist_creator.cpp
-- Installing: /usr/local/share/OpenCV/samples/cpp/imagelist_reader.cpp
-- Installing: /usr/local/share/OpenCV/samples/cpp/inpaint.cpp
-- Installing: /usr/local/share/OpenCV/samples/cpp/intelligent_scissors.cpp
-- Installing: /usr/local/share/OpenCV/samples/cpp/intersectExample.cpp
-- Installing: /usr/local/share/OpenCV/samples/cpp/kalman.cpp
-- Installing: /usr/local/share/OpenCV/samples/cpp/kmeans.cpp
-- Installing: /usr/local/share/OpenCV/samples/cpp/laplace.cpp
-- Installing: /usr/local/share/OpenCV/samples/cpp/letter_recog.cpp
-- Installing: /usr/local/share/OpenCV/samples/cpp/lkdemo.cpp
-- Installing: /usr/local/share/OpenCV/samples/cpp/logistic_regression.cpp
-- Installing: /usr/local/share/OpenCV/samples/cpp/lsd_lines.cpp
-- Installing: /usr/local/share/OpenCV/samples/cpp/mask_tmpl.cpp
-- Installing: /usr/local/share/OpenCV/samples/cpp/matchmethod_orb_akaze_brisk.cpp
-- Installing: /usr/local/share/OpenCV/samples/cpp/minarea.cpp
-- Installing: /usr/local/share/OpenCV/samples/cpp/morphology2.cpp
-- Installing: /usr/local/share/OpenCV/samples/cpp/neural_network.cpp
-- Installing: /usr/local/share/OpenCV/samples/cpp/npr_demo.cpp
-- Installing: /usr/local/share/OpenCV/samples/cpp/opencv_version.cpp
-- Installing: /usr/local/share/OpenCV/samples/cpp/pca.cpp
-- Installing: /usr/local/share/OpenCV/samples/cpp/peopledetect.cpp
-- Installing: /usr/local/share/OpenCV/samples/cpp/phase_corr.cpp
-- Installing: /usr/local/share/OpenCV/samples/cpp/points_classifier.cpp
-- Installing: /usr/local/share/OpenCV/samples/cpp/polar_transforms.cpp
-- Installing: /usr/local/share/OpenCV/samples/cpp/qrcode.cpp
-- Installing: /usr/local/share/OpenCV/samples/cpp/segment_objects.cpp
-- Installing: /usr/local/share/OpenCV/samples/cpp/select3dobj.cpp
-- Installing: /usr/local/share/OpenCV/samples/cpp/shape_example.cpp
-- Installing: /usr/local/share/OpenCV/samples/cpp/simd_basic.cpp
-- Installing: /usr/local/share/OpenCV/samples/cpp/smiledetect.cpp
-- Installing: /usr/local/share/OpenCV/samples/cpp/squares.cpp
-- Installing: /usr/local/share/OpenCV/samples/cpp/stereo_calib.cpp
-- Installing: /usr/local/share/OpenCV/samples/cpp/stereo_match.cpp
-- Installing: /usr/local/share/OpenCV/samples/cpp/stitching.cpp
-- Installing: /usr/local/share/OpenCV/samples/cpp/stitching_detailed.cpp
-- Installing: /usr/local/share/OpenCV/samples/cpp/text_skewness_correction.cpp
-- Installing: /usr/local/share/OpenCV/samples/cpp/train_HOG.cpp
-- Installing: /usr/local/share/OpenCV/samples/cpp/train_svmsgd.cpp
-- Installing: /usr/local/share/OpenCV/samples/cpp/travelsalesman.cpp
-- Installing: /usr/local/share/OpenCV/samples/cpp/tree_engine.cpp
-- Installing: /usr/local/share/OpenCV/samples/cpp/tvl1_optical_flow.cpp
-- Installing: /usr/local/share/OpenCV/samples/cpp/videocapture_basic.cpp
-- Installing: /usr/local/share/OpenCV/samples/cpp/videocapture_camera.cpp
-- Installing: /usr/local/share/OpenCV/samples/cpp/videocapture_gphoto2_autofocus.cpp
-- Installing: /usr/local/share/OpenCV/samples/cpp/videocapture_gstreamer_pipeline.cpp
-- Installing: /usr/local/share/OpenCV/samples/cpp/videocapture_image_sequence.cpp
-- Installing: /usr/local/share/OpenCV/samples/cpp/videocapture_intelperc.cpp
-- Installing: /usr/local/share/OpenCV/samples/cpp/videocapture_openni.cpp
-- Installing: /usr/local/share/OpenCV/samples/cpp/videocapture_starter.cpp
-- Installing: /usr/local/share/OpenCV/samples/cpp/videostab.cpp
-- Installing: /usr/local/share/OpenCV/samples/cpp/videowriter_basic.cpp
-- Installing: /usr/local/share/OpenCV/samples/cpp/warpPerspective_demo.cpp
-- Installing: /usr/local/share/OpenCV/samples/cpp/watershed.cpp
-- Installing: /usr/local/share/OpenCV/samples/dnn/CMakeLists.txt
-- Installing: /usr/local/share/OpenCV/samples/dnn/classification.cpp
-- Installing: /usr/local/share/OpenCV/samples/dnn/colorization.cpp
-- Installing: /usr/local/share/OpenCV/samples/dnn/common.hpp
-- Installing: /usr/local/share/OpenCV/samples/dnn/custom_layers.hpp
-- Installing: /usr/local/share/OpenCV/samples/dnn/human_parsing.cpp
-- Installing: /usr/local/share/OpenCV/samples/dnn/object_detection.cpp
-- Installing: /usr/local/share/OpenCV/samples/dnn/openpose.cpp
-- Installing: /usr/local/share/OpenCV/samples/dnn/segmentation.cpp
-- Installing: /usr/local/share/OpenCV/samples/dnn/text_detection.cpp
-- Installing: /usr/local/share/OpenCV/samples/gpu/CMakeLists.txt
-- Installing: /usr/local/share/OpenCV/samples/gpu/alpha_comp.cpp
-- Installing: /usr/local/share/OpenCV/samples/gpu/bgfg_segm.cpp
-- Installing: /usr/local/share/OpenCV/samples/gpu/cascadeclassifier.cpp
-- Installing: /usr/local/share/OpenCV/samples/gpu/farneback_optical_flow.cpp
-- Installing: /usr/local/share/OpenCV/samples/gpu/generalized_hough.cpp
-- Installing: /usr/local/share/OpenCV/samples/gpu/hog.cpp
-- Installing: /usr/local/share/OpenCV/samples/gpu/houghlines.cpp
-- Installing: /usr/local/share/OpenCV/samples/gpu/morphology.cpp
-- Installing: /usr/local/share/OpenCV/samples/gpu/multi.cpp
-- Installing: /usr/local/share/OpenCV/samples/gpu/optical_flow.cpp
-- Installing: /usr/local/share/OpenCV/samples/gpu/pyrlk_optical_flow.cpp
-- Installing: /usr/local/share/OpenCV/samples/gpu/stereo_match.cpp
-- Installing: /usr/local/share/OpenCV/samples/gpu/stereo_multi.cpp
-- Installing: /usr/local/share/OpenCV/samples/gpu/super_resolution.cpp
-- Installing: /usr/local/share/OpenCV/samples/gpu/surf_keypoint_matcher.cpp
-- Installing: /usr/local/share/OpenCV/samples/gpu/video_reader.cpp
-- Installing: /usr/local/share/OpenCV/samples/gpu/video_writer.cpp
-- Installing: /usr/local/share/OpenCV/samples/tapi/CMakeLists.txt
-- Installing: /usr/local/share/OpenCV/samples/tapi/bgfg_segm.cpp
-- Installing: /usr/local/share/OpenCV/samples/tapi/camshift.cpp
-- Installing: /usr/local/share/OpenCV/samples/tapi/clahe.cpp
-- Installing: /usr/local/share/OpenCV/samples/tapi/dense_optical_flow.cpp
-- Installing: /usr/local/share/OpenCV/samples/tapi/hog.cpp
-- Installing: /usr/local/share/OpenCV/samples/tapi/opencl_custom_kernel.cpp
-- Installing: /usr/local/share/OpenCV/samples/tapi/pyrlk_optical_flow.cpp
-- Installing: /usr/local/share/OpenCV/samples/tapi/squares.cpp
-- Installing: /usr/local/share/OpenCV/samples/tapi/ufacedetect.cpp
-- Installing: /usr/local/share/OpenCV/samples/opencl/CMakeLists.txt
-- Installing: /usr/local/share/OpenCV/samples/opencl/opencl-opencv-interop.cpp
-- Installing: /usr/local/share/OpenCV/samples/python/_coverage.py
-- Installing: /usr/local/share/OpenCV/samples/python/_doc.py
-- Installing: /usr/local/share/OpenCV/samples/python/asift.py
-- Installing: /usr/local/share/OpenCV/samples/python/browse.py
-- Installing: /usr/local/share/OpenCV/samples/python/calibrate.py
-- Installing: /usr/local/share/OpenCV/samples/python/camera_calibration_show_extrinsics.py
-- Installing: /usr/local/share/OpenCV/samples/python/camshift.py
-- Installing: /usr/local/share/OpenCV/samples/python/coherence.py
-- Installing: /usr/local/share/OpenCV/samples/python/color_histogram.py
-- Installing: /usr/local/share/OpenCV/samples/python/common.py
-- Installing: /usr/local/share/OpenCV/samples/python/contours.py
-- Installing: /usr/local/share/OpenCV/samples/python/deconvolution.py
-- Installing: /usr/local/share/OpenCV/samples/python/demo.py
-- Installing: /usr/local/share/OpenCV/samples/python/dft.py
-- Installing: /usr/local/share/OpenCV/samples/python/digits.py
-- Installing: /usr/local/share/OpenCV/samples/python/digits_adjust.py
-- Installing: /usr/local/share/OpenCV/samples/python/digits_video.py
-- Installing: /usr/local/share/OpenCV/samples/python/distrans.py
-- Installing: /usr/local/share/OpenCV/samples/python/drawing.py
-- Installing: /usr/local/share/OpenCV/samples/python/edge.py
-- Installing: /usr/local/share/OpenCV/samples/python/facedetect.py
-- Installing: /usr/local/share/OpenCV/samples/python/feature_homography.py
-- Installing: /usr/local/share/OpenCV/samples/python/find_obj.py
-- Installing: /usr/local/share/OpenCV/samples/python/fitline.py
-- Installing: /usr/local/share/OpenCV/samples/python/floodfill.py
-- Installing: /usr/local/share/OpenCV/samples/python/gabor_threads.py
-- Installing: /usr/local/share/OpenCV/samples/python/gaussian_mix.py
-- Installing: /usr/local/share/OpenCV/samples/python/grabcut.py
-- Installing: /usr/local/share/OpenCV/samples/python/hist.py
-- Installing: /usr/local/share/OpenCV/samples/python/houghcircles.py
-- Installing: /usr/local/share/OpenCV/samples/python/houghlines.py
-- Installing: /usr/local/share/OpenCV/samples/python/inpaint.py
-- Installing: /usr/local/share/OpenCV/samples/python/kalman.py
-- Installing: /usr/local/share/OpenCV/samples/python/kmeans.py
-- Installing: /usr/local/share/OpenCV/samples/python/laplace.py
-- Installing: /usr/local/share/OpenCV/samples/python/lappyr.py
-- Installing: /usr/local/share/OpenCV/samples/python/letter_recog.py
-- Installing: /usr/local/share/OpenCV/samples/python/lk_homography.py
-- Installing: /usr/local/share/OpenCV/samples/python/lk_track.py
-- Installing: /usr/local/share/OpenCV/samples/python/logpolar.py
-- Installing: /usr/local/share/OpenCV/samples/python/morphology.py
-- Installing: /usr/local/share/OpenCV/samples/python/mosse.py
-- Installing: /usr/local/share/OpenCV/samples/python/mouse_and_match.py
-- Installing: /usr/local/share/OpenCV/samples/python/mser.py
-- Installing: /usr/local/share/OpenCV/samples/python/opencv_version.py
-- Installing: /usr/local/share/OpenCV/samples/python/opt_flow.py
-- Installing: /usr/local/share/OpenCV/samples/python/peopledetect.py
-- Installing: /usr/local/share/OpenCV/samples/python/plane_ar.py
-- Installing: /usr/local/share/OpenCV/samples/python/plane_tracker.py
-- Installing: /usr/local/share/OpenCV/samples/python/qrcode.py
-- Installing: /usr/local/share/OpenCV/samples/python/squares.py
-- Installing: /usr/local/share/OpenCV/samples/python/stereo_match.py
-- Installing: /usr/local/share/OpenCV/samples/python/text_skewness_correction.py
-- Installing: /usr/local/share/OpenCV/samples/python/texture_flow.py
-- Installing: /usr/local/share/OpenCV/samples/python/tst_scene_render.py
-- Installing: /usr/local/share/OpenCV/samples/python/turing.py
-- Installing: /usr/local/share/OpenCV/samples/python/video.py
-- Installing: /usr/local/share/OpenCV/samples/python/video_threaded.py
-- Installing: /usr/local/share/OpenCV/samples/python/video_v4l2.py
-- Installing: /usr/local/share/OpenCV/samples/python/watershed.py
xilinx@pynq:~/opencv/build$ cmake -S /home/xilinx/opencv/opencv-3.4.16 -B /home/xilinx/opencv/build -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_EXTRA_MODULES_PATH=~/opencv/opencv_contrib/modules -D BUILD_NEW_PYTHON_SUPPORT=ON -D WITH_V4L=ON -D WITH_VTK=ON -D INSTALL_C_EXAMPLES=ON -D PYTHON3_EXECUTABLE=/usr/bin/python3.8 -D PYTHON_INCLUDE_DIR=/usr/include/python3.8 -D INSTALL_PYTHON_EXAMPLES=ON -D BUILD_EXAMPLES=ON -D ENABLE_FAST_MATH=1 -D WITH_CUDA=OFF
-- The CXX compiler identification is GNU 9.3.0
-- The C compiler identification is GNU 9.3.0
-- Check for working CXX compiler: /usr/bin/g++
-- Check for working CXX compiler: /usr/bin/g++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Check for working C compiler: /usr/bin/gcc
-- Check for working C compiler: /usr/bin/gcc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Detected processor: armv7l
-- Performing Test HAVE_CXX11 (check file: cmake/checks/cxx11.cpp)
-- Performing Test HAVE_CXX11 - Success
-- Found PythonInterp: /usr/bin/python2.7 (found suitable version "2.7.18", minimum required is "2.7")
-- Could NOT find PythonLibs: Found unsuitable version "3.8.2", but required is exact version "2.7.18" (found /usr/lib/arm-linux-gnueabihf/libpython2.7.so)
Traceback (most recent call last):
File "<string>", line 1, in <module>
ImportError: No module named numpy.distutils
-- Found PythonInterp: /usr/bin/python3.8 (found suitable version "3.8.2", minimum required is "3.2")
-- Found PythonLibs: /usr/lib/arm-linux-gnueabihf/libpython3.8.so (found suitable exact version "3.8.2")
-- Looking for ccache - found (/usr/bin/ccache)
-- Performing Test HAVE_CXX_FSIGNED_CHAR
-- Performing Test HAVE_CXX_FSIGNED_CHAR - Success
-- Performing Test HAVE_C_FSIGNED_CHAR
-- Performing Test HAVE_C_FSIGNED_CHAR - Success
-- Performing Test HAVE_CXX_FFAST_MATH
-- Performing Test HAVE_CXX_FFAST_MATH - Success
-- Performing Test HAVE_C_FFAST_MATH
-- Performing Test HAVE_C_FFAST_MATH - Success
-- Performing Test HAVE_CXX_W
-- Performing Test HAVE_CXX_W - Success
-- Performing Test HAVE_C_W
-- Performing Test HAVE_C_W - Success
-- Performing Test HAVE_CXX_WALL
-- Performing Test HAVE_CXX_WALL - Success
-- Performing Test HAVE_C_WALL
-- Performing Test HAVE_C_WALL - Success
-- Performing Test HAVE_CXX_WERROR_RETURN_TYPE
-- Performing Test HAVE_CXX_WERROR_RETURN_TYPE - Success
-- Performing Test HAVE_C_WERROR_RETURN_TYPE
-- Performing Test HAVE_C_WERROR_RETURN_TYPE - Success
-- Performing Test HAVE_CXX_WERROR_NON_VIRTUAL_DTOR
-- Performing Test HAVE_CXX_WERROR_NON_VIRTUAL_DTOR - Success
-- Performing Test HAVE_C_WERROR_NON_VIRTUAL_DTOR
-- Performing Test HAVE_C_WERROR_NON_VIRTUAL_DTOR - Failed
-- Performing Test HAVE_CXX_WERROR_ADDRESS
-- Performing Test HAVE_CXX_WERROR_ADDRESS - Success
-- Performing Test HAVE_C_WERROR_ADDRESS
-- Performing Test HAVE_C_WERROR_ADDRESS - Success
-- Performing Test HAVE_CXX_WERROR_SEQUENCE_POINT
-- Performing Test HAVE_CXX_WERROR_SEQUENCE_POINT - Success
-- Performing Test HAVE_C_WERROR_SEQUENCE_POINT
-- Performing Test HAVE_C_WERROR_SEQUENCE_POINT - Success
-- Performing Test HAVE_CXX_WFORMAT
-- Performing Test HAVE_CXX_WFORMAT - Success
-- Performing Test HAVE_C_WFORMAT
-- Performing Test HAVE_C_WFORMAT - Success
-- Performing Test HAVE_CXX_WERROR_FORMAT_SECURITY
-- Performing Test HAVE_CXX_WERROR_FORMAT_SECURITY - Success
-- Performing Test HAVE_C_WERROR_FORMAT_SECURITY
-- Performing Test HAVE_C_WERROR_FORMAT_SECURITY - Success
-- Performing Test HAVE_CXX_WMISSING_DECLARATIONS
-- Performing Test HAVE_CXX_WMISSING_DECLARATIONS - Success
-- Performing Test HAVE_C_WMISSING_DECLARATIONS
-- Performing Test HAVE_C_WMISSING_DECLARATIONS - Success
-- Performing Test HAVE_CXX_WMISSING_PROTOTYPES
-- Performing Test HAVE_CXX_WMISSING_PROTOTYPES - Failed
-- Performing Test HAVE_C_WMISSING_PROTOTYPES
-- Performing Test HAVE_C_WMISSING_PROTOTYPES - Success
-- Performing Test HAVE_CXX_WSTRICT_PROTOTYPES
-- Performing Test HAVE_CXX_WSTRICT_PROTOTYPES - Failed
-- Performing Test HAVE_C_WSTRICT_PROTOTYPES
-- Performing Test HAVE_C_WSTRICT_PROTOTYPES - Success
-- Performing Test HAVE_CXX_WUNDEF
-- Performing Test HAVE_CXX_WUNDEF - Success
-- Performing Test HAVE_C_WUNDEF
-- Performing Test HAVE_C_WUNDEF - Success
-- Performing Test HAVE_CXX_WINIT_SELF
-- Performing Test HAVE_CXX_WINIT_SELF - Success
-- Performing Test HAVE_C_WINIT_SELF
-- Performing Test HAVE_C_WINIT_SELF - Success
-- Performing Test HAVE_CXX_WPOINTER_ARITH
-- Performing Test HAVE_CXX_WPOINTER_ARITH - Success
-- Performing Test HAVE_C_WPOINTER_ARITH
-- Performing Test HAVE_C_WPOINTER_ARITH - Success
-- Performing Test HAVE_CXX_WSHADOW
-- Performing Test HAVE_CXX_WSHADOW - Success
-- Performing Test HAVE_C_WSHADOW
-- Performing Test HAVE_C_WSHADOW - Success
-- Performing Test HAVE_CXX_WSIGN_PROMO
-- Performing Test HAVE_CXX_WSIGN_PROMO - Success
-- Performing Test HAVE_C_WSIGN_PROMO
-- Performing Test HAVE_C_WSIGN_PROMO - Failed
-- Performing Test HAVE_CXX_WUNINITIALIZED
-- Performing Test HAVE_CXX_WUNINITIALIZED - Success
-- Performing Test HAVE_C_WUNINITIALIZED
-- Performing Test HAVE_C_WUNINITIALIZED - Success
-- Performing Test HAVE_CXX_WSUGGEST_OVERRIDE
-- Performing Test HAVE_CXX_WSUGGEST_OVERRIDE - Success
-- Performing Test HAVE_C_WSUGGEST_OVERRIDE
-- Performing Test HAVE_C_WSUGGEST_OVERRIDE - Failed
-- Performing Test HAVE_CXX_WNO_DELETE_NON_VIRTUAL_DTOR
-- Performing Test HAVE_CXX_WNO_DELETE_NON_VIRTUAL_DTOR - Success
-- Performing Test HAVE_C_WNO_DELETE_NON_VIRTUAL_DTOR
-- Performing Test HAVE_C_WNO_DELETE_NON_VIRTUAL_DTOR - Failed
-- Performing Test HAVE_CXX_WNO_UNNAMED_TYPE_TEMPLATE_ARGS
-- Performing Test HAVE_CXX_WNO_UNNAMED_TYPE_TEMPLATE_ARGS - Failed
-- Performing Test HAVE_C_WNO_UNNAMED_TYPE_TEMPLATE_ARGS
-- Performing Test HAVE_C_WNO_UNNAMED_TYPE_TEMPLATE_ARGS - Failed
-- Performing Test HAVE_CXX_WNO_COMMENT
-- Performing Test HAVE_CXX_WNO_COMMENT - Success
-- Performing Test HAVE_C_WNO_COMMENT
-- Performing Test HAVE_C_WNO_COMMENT - Success
-- Performing Test HAVE_CXX_WIMPLICIT_FALLTHROUGH_3
-- Performing Test HAVE_CXX_WIMPLICIT_FALLTHROUGH_3 - Success
-- Performing Test HAVE_C_WIMPLICIT_FALLTHROUGH_3
-- Performing Test HAVE_C_WIMPLICIT_FALLTHROUGH_3 - Success
-- Performing Test HAVE_CXX_WNO_STRICT_OVERFLOW
-- Performing Test HAVE_CXX_WNO_STRICT_OVERFLOW - Success
-- Performing Test HAVE_C_WNO_STRICT_OVERFLOW
-- Performing Test HAVE_C_WNO_STRICT_OVERFLOW - Success
-- Performing Test HAVE_CXX_FDIAGNOSTICS_SHOW_OPTION
-- Performing Test HAVE_CXX_FDIAGNOSTICS_SHOW_OPTION - Success
-- Performing Test HAVE_C_FDIAGNOSTICS_SHOW_OPTION
-- Performing Test HAVE_C_FDIAGNOSTICS_SHOW_OPTION - Success
-- Performing Test HAVE_CXX_PTHREAD
-- Performing Test HAVE_CXX_PTHREAD - Success
-- Performing Test HAVE_C_PTHREAD
-- Performing Test HAVE_C_PTHREAD - Success
-- Performing Test HAVE_CXX_FOMIT_FRAME_POINTER
-- Performing Test HAVE_CXX_FOMIT_FRAME_POINTER - Success
-- Performing Test HAVE_C_FOMIT_FRAME_POINTER
-- Performing Test HAVE_C_FOMIT_FRAME_POINTER - Success
-- Performing Test HAVE_CXX_FFUNCTION_SECTIONS
-- Performing Test HAVE_CXX_FFUNCTION_SECTIONS - Success
-- Performing Test HAVE_C_FFUNCTION_SECTIONS
-- Performing Test HAVE_C_FFUNCTION_SECTIONS - Success
-- Performing Test HAVE_CXX_FDATA_SECTIONS
-- Performing Test HAVE_CXX_FDATA_SECTIONS - Success
-- Performing Test HAVE_C_FDATA_SECTIONS
-- Performing Test HAVE_C_FDATA_SECTIONS - Success
-- Performing Test HAVE_CXX_MFPU_VFPV3
-- Performing Test HAVE_CXX_MFPU_VFPV3 - Success
-- Performing Test HAVE_CPU_NEON_SUPPORT (check file: cmake/checks/cpu_neon.cpp)
-- Performing Test HAVE_CPU_NEON_SUPPORT - Failed
-- Performing Test HAVE_CXX_MFPU_NEON (check file: cmake/checks/cpu_neon.cpp)
-- Performing Test HAVE_CXX_MFPU_NEON - Success
-- Performing Test HAVE_CPU_FP16_SUPPORT (check file: cmake/checks/cpu_fp16.cpp)
-- Performing Test HAVE_CPU_FP16_SUPPORT - Failed
-- Performing Test HAVE_CXX_MFPU_NEON_FP16_MFP16_FORMAT_IEEE (check file: cmake/checks/cpu_fp16.cpp)
-- Performing Test HAVE_CXX_MFPU_NEON_FP16_MFP16_FORMAT_IEEE - Success
-- Performing Test HAVE_CPU_BASELINE_FLAGS
-- Performing Test HAVE_CPU_BASELINE_FLAGS - Success
-- Performing Test HAVE_CXX_FVISIBILITY_HIDDEN
-- Performing Test HAVE_CXX_FVISIBILITY_HIDDEN - Success
-- Performing Test HAVE_C_FVISIBILITY_HIDDEN
-- Performing Test HAVE_C_FVISIBILITY_HIDDEN - Success
-- Performing Test HAVE_CXX_FVISIBILITY_INLINES_HIDDEN
-- Performing Test HAVE_CXX_FVISIBILITY_INLINES_HIDDEN - Success
-- Performing Test HAVE_C_FVISIBILITY_INLINES_HIDDEN
-- Performing Test HAVE_C_FVISIBILITY_INLINES_HIDDEN - Failed
-- Performing Test HAVE_LINK_AS_NEEDED
-- Performing Test HAVE_LINK_AS_NEEDED - Success
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Looking for posix_memalign
-- Looking for posix_memalign - found
-- Looking for malloc.h
-- Looking for malloc.h - found
-- Looking for memalign
-- Looking for memalign - found
-- Check if the system is big endian
-- Searching 16 bit integer
-- Looking for sys/types.h
-- Looking for sys/types.h - found
-- Looking for stdint.h
-- Looking for stdint.h - found
-- Looking for stddef.h
-- Looking for stddef.h - found
-- Check size of unsigned short
-- Check size of unsigned short - done
-- Using unsigned short
-- Check if the system is big endian - little endian
-- Found ZLIB: /usr/lib/arm-linux-gnueabihf/libz.so (found suitable version "1.2.11", minimum required is "1.2.3")
-- Found JPEG: /usr/lib/arm-linux-gnueabihf/libjpeg.so (found version "80")
-- Found TIFF: /usr/lib/arm-linux-gnueabihf/libtiff.so (found version "4.1.0")
-- Found WebP: /usr/lib/arm-linux-gnueabihf/libwebp.so
-- Could NOT find Jasper (missing: JASPER_LIBRARIES JASPER_INCLUDE_DIR)
-- Performing Test HAVE_C_WNO_IMPLICIT_FUNCTION_DECLARATION
-- Performing Test HAVE_C_WNO_IMPLICIT_FUNCTION_DECLARATION - Success
-- Performing Test HAVE_C_WNO_UNINITIALIZED
-- Performing Test HAVE_C_WNO_UNINITIALIZED - Success
-- Performing Test HAVE_C_WNO_MISSING_PROTOTYPES
-- Performing Test HAVE_C_WNO_MISSING_PROTOTYPES - Success
-- Performing Test HAVE_C_WNO_UNUSED_BUT_SET_PARAMETER
-- Performing Test HAVE_C_WNO_UNUSED_BUT_SET_PARAMETER - Success
-- Performing Test HAVE_C_WNO_MISSING_DECLARATIONS
-- Performing Test HAVE_C_WNO_MISSING_DECLARATIONS - Success
-- Performing Test HAVE_C_WNO_UNUSED
-- Performing Test HAVE_C_WNO_UNUSED - Success
-- Performing Test HAVE_C_WNO_SHADOW
-- Performing Test HAVE_C_WNO_SHADOW - Success
-- Performing Test HAVE_C_WNO_SIGN_COMPARE
-- Performing Test HAVE_C_WNO_SIGN_COMPARE - Success
-- Performing Test HAVE_C_WNO_POINTER_COMPARE
-- Performing Test HAVE_C_WNO_POINTER_COMPARE - Success
-- Performing Test HAVE_C_WNO_ABSOLUTE_VALUE
-- Performing Test HAVE_C_WNO_ABSOLUTE_VALUE - Success
-- Performing Test HAVE_C_WNO_IMPLICIT_FALLTHROUGH
-- Performing Test HAVE_C_WNO_IMPLICIT_FALLTHROUGH - Success
-- Performing Test HAVE_C_WNO_UNUSED_PARAMETER
-- Performing Test HAVE_C_WNO_UNUSED_PARAMETER - Success
-- Performing Test HAVE_C_WNO_STRICT_PROTOTYPES
-- Performing Test HAVE_C_WNO_STRICT_PROTOTYPES - Success
-- Found ZLIB: /usr/lib/arm-linux-gnueabihf/libz.so (found version "1.2.11")
-- Found PNG: /usr/lib/arm-linux-gnueabihf/libpng.so (found version "1.6.37")
-- Looking for /usr/include/libpng/png.h
-- Looking for /usr/include/libpng/png.h - found
-- Found OpenEXR: /usr/lib/arm-linux-gnueabihf/libIlmImf.so
-- Checking for module 'gtk+-3.0'
-- No package 'gtk+-3.0' found
-- Checking for module 'gtk+-2.0'
-- Found gtk+-2.0, version 2.24.32
-- Checking for module 'gthread-2.0'
-- Found gthread-2.0, version 2.64.2
-- Checking for modules 'gstreamer-base-1.0;gstreamer-video-1.0;gstreamer-app-1.0;gstreamer-riff-1.0;gstreamer-pbutils-1.0'
-- No package 'gstreamer-base-1.0' found
-- No package 'gstreamer-video-1.0' found
-- No package 'gstreamer-app-1.0' found
-- No package 'gstreamer-riff-1.0' found
-- No package 'gstreamer-pbutils-1.0' found
-- Checking for modules 'gstreamer-base-0.10;gstreamer-video-0.10;gstreamer-app-0.10;gstreamer-riff-0.10;gstreamer-pbutils-0.10'
-- No package 'gstreamer-base-0.10' found
-- No package 'gstreamer-video-0.10' found
-- No package 'gstreamer-app-0.10' found
-- No package 'gstreamer-riff-0.10' found
-- No package 'gstreamer-pbutils-0.10' found
-- Checking for module 'libdc1394-2'
-- Found libdc1394-2, version 2.2.5
-- Looking for linux/videodev.h
-- Looking for linux/videodev.h - not found
-- Looking for linux/videodev2.h
-- Looking for linux/videodev2.h - found
-- Looking for sys/videoio.h
-- Looking for sys/videoio.h - not found
-- Checking for modules 'libavcodec;libavformat;libavutil;libswscale'
-- Found libavcodec, version 58.54.100
-- Found libavformat, version 58.29.100
-- Found libavutil, version 56.31.100
-- Found libswscale, version 5.5.100
-- Checking for module 'libavresample'
-- Found libavresample, version 4.0.0
-- Could not find OpenBLAS include. Turning OpenBLAS_FOUND off
-- Could not find OpenBLAS lib. Turning OpenBLAS_FOUND off
-- Could NOT find Atlas (missing: Atlas_CLAPACK_INCLUDE_DIR)
-- Looking for sgemm_
-- Looking for sgemm_ - not found
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
-- Found Threads: TRUE
-- Looking for dgemm_
-- Looking for dgemm_ - found
-- Found BLAS: /usr/lib/arm-linux-gnueabihf/libf77blas.so;/usr/lib/arm-linux-gnueabihf/libatlas.so
-- Looking for cheev_
-- Looking for cheev_ - not found
-- Looking for cheev_
-- Looking for cheev_ - found
-- A library with LAPACK API found.
-- Performing Test HAVE_CXX_WNO_DEPRECATED
-- Performing Test HAVE_CXX_WNO_DEPRECATED - Success
-- Performing Test HAVE_CXX_WNO_MISSING_PROTOTYPES
-- Performing Test HAVE_CXX_WNO_MISSING_PROTOTYPES - Failed
-- Performing Test HAVE_CXX_WNO_MISSING_DECLARATIONS
-- Performing Test HAVE_CXX_WNO_MISSING_DECLARATIONS - Success
-- Performing Test HAVE_CXX_WNO_SHADOW
-- Performing Test HAVE_CXX_WNO_SHADOW - Success
-- Performing Test HAVE_CXX_WNO_UNUSED_PARAMETER
-- Performing Test HAVE_CXX_WNO_UNUSED_PARAMETER - Success
-- Performing Test HAVE_CXX_WNO_UNUSED_LOCAL_TYPEDEFS
-- Performing Test HAVE_CXX_WNO_UNUSED_LOCAL_TYPEDEFS - Success
-- Performing Test HAVE_CXX_WNO_SIGN_COMPARE
-- Performing Test HAVE_CXX_WNO_SIGN_COMPARE - Success
-- Performing Test HAVE_CXX_WNO_SIGN_PROMO
-- Performing Test HAVE_CXX_WNO_SIGN_PROMO - Success
-- Performing Test HAVE_CXX_WNO_UNDEF
-- Performing Test HAVE_CXX_WNO_UNDEF - Success
-- Performing Test HAVE_CXX_WNO_TAUTOLOGICAL_UNDEFINED_COMPARE
-- Performing Test HAVE_CXX_WNO_TAUTOLOGICAL_UNDEFINED_COMPARE - Failed
-- Performing Test HAVE_CXX_WNO_IGNORED_QUALIFIERS
-- Performing Test HAVE_CXX_WNO_IGNORED_QUALIFIERS - Success
-- Performing Test HAVE_CXX_WNO_EXTRA
-- Performing Test HAVE_CXX_WNO_EXTRA - Success
-- Performing Test HAVE_CXX_WNO_UNUSED_FUNCTION
-- Performing Test HAVE_CXX_WNO_UNUSED_FUNCTION - Success
-- Performing Test HAVE_CXX_WNO_UNUSED_CONST_VARIABLE
-- Performing Test HAVE_CXX_WNO_UNUSED_CONST_VARIABLE - Success
-- Performing Test HAVE_CXX_WNO_SHORTEN_64_TO_32
-- Performing Test HAVE_CXX_WNO_SHORTEN_64_TO_32 - Failed
-- Performing Test HAVE_CXX_WNO_INVALID_OFFSETOF
-- Performing Test HAVE_CXX_WNO_INVALID_OFFSETOF - Success
-- Performing Test HAVE_CXX_WNO_ENUM_COMPARE_SWITCH
-- Performing Test HAVE_CXX_WNO_ENUM_COMPARE_SWITCH - Failed
-- Performing Test HAVE_CXX_WNO_SUGGEST_OVERRIDE
-- Performing Test HAVE_CXX_WNO_SUGGEST_OVERRIDE - Success
-- Performing Test HAVE_CXX_WNO_INCONSISTENT_MISSING_OVERRIDE
-- Performing Test HAVE_CXX_WNO_INCONSISTENT_MISSING_OVERRIDE - Failed
-- Performing Test HAVE_CXX_WNO_IMPLICIT_FALLTHROUGH
-- Performing Test HAVE_CXX_WNO_IMPLICIT_FALLTHROUGH - Success
-- Performing Test HAVE_CXX_WNO_ARRAY_BOUNDS
-- Performing Test HAVE_CXX_WNO_ARRAY_BOUNDS - Success
-- Performing Test HAVE_CXX_WNO_CLASS_MEMACCESS
-- Performing Test HAVE_CXX_WNO_CLASS_MEMACCESS - Success
-- Could NOT find JNI (missing: JAVA_AWT_LIBRARY JAVA_JVM_LIBRARY JAVA_INCLUDE_PATH JAVA_INCLUDE_PATH2 JAVA_AWT_INCLUDE_PATH)
-- Could NOT find Pylint (missing: PYLINT_EXECUTABLE)
-- Could NOT find Flake8 (missing: FLAKE8_EXECUTABLE)
-- VTK is not found. Please set -DVTK_DIR in CMake to VTK build directory, or to VTK install subdirectory with VTKConfig.cmake file
-- Performing Test HAVE_C_WNO_UNUSED_VARIABLE
-- Performing Test HAVE_C_WNO_UNUSED_VARIABLE - Success
-- Carotene: NEON is not available, disabling carotene...
-- Looking for dlerror in dl
-- Looking for dlerror in dl - found
-- Performing Test HAVE_C_WNO_UNDEF
-- Performing Test HAVE_C_WNO_UNDEF - Success
-- OpenCV Python: during development append to PYTHONPATH: /home/xilinx/opencv/build/python_loader
-- Checking for module 'freetype2'
-- Found freetype2, version 23.1.17
-- Checking for module 'harfbuzz'
-- Found harfbuzz, version 2.6.4
-- freetype2: YES (ver 23.1.17)
-- harfbuzz: YES (ver 2.6.4)
-- Could NOT find HDF5 (missing: HDF5_LIBRARIES HDF5_INCLUDE_DIRS) (found version "")
-- Module opencv_ovis disabled because OGRE3D was not found
-- Checking SFM glog/gflags deps... TRUE
-- CERES support is disabled. Ceres Solver for reconstruction API is required.
-- Checking for module 'tesseract'
-- No package 'tesseract' found
-- Tesseract: NO
-- Allocator metrics storage type: 'int'
-- Excluding from source files list: <BUILD>/modules/core/test/test_intrin128.sse2.cpp
-- Excluding from source files list: <BUILD>/modules/core/test/test_intrin128.sse3.cpp
-- Excluding from source files list: <BUILD>/modules/core/test/test_intrin128.ssse3.cpp
-- Excluding from source files list: <BUILD>/modules/core/test/test_intrin128.sse4_1.cpp
-- Excluding from source files list: <BUILD>/modules/core/test/test_intrin128.sse4_2.cpp
-- Excluding from source files list: <BUILD>/modules/core/test/test_intrin128.avx.cpp
-- Excluding from source files list: <BUILD>/modules/core/test/test_intrin128.fp16.cpp
-- Excluding from source files list: <BUILD>/modules/core/test/test_intrin128.avx2.cpp
-- Excluding from source files list: <BUILD>/modules/core/test/test_intrin128.avx512_skx.cpp
-- Excluding from source files list: <BUILD>/modules/core/test/test_intrin256.avx2.cpp
-- Excluding from source files list: <BUILD>/modules/core/test/test_intrin256.avx512_skx.cpp
-- Excluding from source files list: <BUILD>/modules/core/test/test_intrin512.avx512_skx.cpp
-- Excluding from source files list: modules/imgproc/src/corner.avx.cpp
-- Excluding from source files list: modules/imgproc/src/imgwarp.avx2.cpp
-- Excluding from source files list: modules/imgproc/src/imgwarp.sse4_1.cpp
-- Excluding from source files list: modules/imgproc/src/resize.avx2.cpp
-- Excluding from source files list: modules/imgproc/src/resize.sse4_1.cpp
-- Excluding from source files list: <BUILD>/modules/dnn/layers/layers_common.avx.cpp
-- Excluding from source files list: <BUILD>/modules/dnn/layers/layers_common.avx2.cpp
-- Excluding from source files list: <BUILD>/modules/dnn/layers/layers_common.avx512_skx.cpp
-- Excluding from source files list: modules/features2d/src/fast.avx2.cpp
-- Performing Test HAVE_CXX_WNO_DEPRECATED_DECLARATIONS
-- Performing Test HAVE_CXX_WNO_DEPRECATED_DECLARATIONS - Success
-- Performing Test HAVE_CXX_WNO_OVERLOADED_VIRTUAL
-- Performing Test HAVE_CXX_WNO_OVERLOADED_VIRTUAL - Success
-- Excluding from source files list: modules/objdetect/src/haar.avx.cpp
-- xfeatures2d/boostdesc: Download: boostdesc_bgm.i
-- xfeatures2d/boostdesc: Download: boostdesc_bgm_bi.i
-- xfeatures2d/boostdesc: Download: boostdesc_bgm_hd.i
-- xfeatures2d/boostdesc: Download: boostdesc_binboost_064.i
-- xfeatures2d/boostdesc: Download: boostdesc_binboost_128.i
-- xfeatures2d/boostdesc: Download: boostdesc_binboost_256.i
-- xfeatures2d/boostdesc: Download: boostdesc_lbgm.i
-- xfeatures2d/vgg: Download: vgg_generated_48.i
-- xfeatures2d/vgg: Download: vgg_generated_64.i
-- xfeatures2d/vgg: Download: vgg_generated_80.i
-- xfeatures2d/vgg: Download: vgg_generated_120.i
-- data: Download: face_landmark_model.dat
-- CERES support is disabled. Ceres Solver for reconstruction API is required.
-- Performing Test HAVE_CXX_WNO_UNUSED_BUT_SET_VARIABLE
-- Performing Test HAVE_CXX_WNO_UNUSED_BUT_SET_VARIABLE - Success
-- Performing Test HAVE_CXX_WNO_DEPRECATED_COPY
-- Performing Test HAVE_CXX_WNO_DEPRECATED_COPY - Success
-- Performing Test HAVE_CXX_WNO_UNUSED_PRIVATE_FIELD
-- Performing Test HAVE_CXX_WNO_UNUSED_PRIVATE_FIELD - Failed
--
-- General configuration for OpenCV 3.4.16 =====================================
-- Version control: unknown
--
-- Extra modules:
-- Location (extra): /home/xilinx/opencv/opencv_contrib/modules
-- Version control (extra): unknown
--
-- Platform:
-- Timestamp: 2022-08-17T20:33:50Z
-- Host: Linux 5.4.0-xilinx-v2020.2 armv7l
-- CMake: 3.16.3
-- CMake generator: Unix Makefiles
-- CMake build tool: /usr/bin/make
-- Configuration: RELEASE
--
-- CPU/HW features:
-- Baseline:
-- requested: DETECT
--
-- C/C++:
-- Built as dynamic libs?: YES
-- C++11: YES
-- C++ Compiler: /usr/bin/g++ (ver 9.3.0)
-- C++ flags (Release): -fsigned-char -ffast-math -W -Wall -Werror=return-type -Werror=non-virtual-dtor -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wundef -Winit-self -Wpointer-arith -Wshadow -Wsign-promo -Wuninitialized -Wsuggest-override -Wno-delete-non-virtual-dtor -Wno-comment -Wimplicit-fallthrough=3 -Wno-strict-overflow -fdiagnostics-show-option -pthread -fomit-frame-pointer -ffunction-sections -fdata-sections -fvisibility=hidden -fvisibility-inlines-hidden -O3 -DNDEBUG -DNDEBUG
-- C++ flags (Debug): -fsigned-char -ffast-math -W -Wall -Werror=return-type -Werror=non-virtual-dtor -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wundef -Winit-self -Wpointer-arith -Wshadow -Wsign-promo -Wuninitialized -Wsuggest-override -Wno-delete-non-virtual-dtor -Wno-comment -Wimplicit-fallthrough=3 -Wno-strict-overflow -fdiagnostics-show-option -pthread -fomit-frame-pointer -ffunction-sections -fdata-sections -fvisibility=hidden -fvisibility-inlines-hidden -g -O0 -DDEBUG -D_DEBUG
-- C Compiler: /usr/bin/gcc
-- C flags (Release): -fsigned-char -ffast-math -W -Wall -Werror=return-type -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wundef -Winit-self -Wpointer-arith -Wshadow -Wuninitialized -Wno-comment -Wimplicit-fallthrough=3 -Wno-strict-overflow -fdiagnostics-show-option -pthread -fomit-frame-pointer -ffunction-sections -fdata-sections -fvisibility=hidden -O3 -DNDEBUG -DNDEBUG
-- C flags (Debug): -fsigned-char -ffast-math -W -Wall -Werror=return-type -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wundef -Winit-self -Wpointer-arith -Wshadow -Wuninitialized -Wno-comment -Wimplicit-fallthrough=3 -Wno-strict-overflow -fdiagnostics-show-option -pthread -fomit-frame-pointer -ffunction-sections -fdata-sections -fvisibility=hidden -g -O0 -DDEBUG -D_DEBUG
-- Linker flags (Release): -Wl,--gc-sections -Wl,--as-needed
-- Linker flags (Debug): -Wl,--gc-sections -Wl,--as-needed
-- ccache: YES
-- Precompiled headers: NO
-- Extra dependencies: dl m pthread rt
-- 3rdparty dependencies:
--
-- OpenCV modules:
-- To be built: aruco bgsegm bioinspired calib3d ccalib core datasets dnn dnn_objdetect dpm face features2d flann freetype fuzzy hfs highgui img_hash imgcodecs imgproc line_descriptor ml objdetect optflow phase_unwrapping photo plot python3 reg rgbd saliency sfm shape stereo stitching structured_light superres surface_matching text tracking ts video videoio videostab xfeatures2d ximgproc xobjdetect xphoto
-- Disabled: world
-- Disabled by dependency: -
-- Unavailable: cudaarithm cudabgsegm cudacodec cudafeatures2d cudafilters cudaimgproc cudalegacy cudaobjdetect cudaoptflow cudastereo cudawarping cudev cvv hdf java matlab ovis python2 viz
-- Applications: tests perf_tests examples apps
-- Documentation: NO
-- Non-free algorithms: NO
--
-- GUI:
-- GTK+: YES (ver 2.24.32)
-- GThread : YES (ver 2.64.2)
-- GtkGlExt: NO
-- VTK support: NO
--
-- Media I/O:
-- ZLib: /usr/lib/arm-linux-gnueabihf/libz.so (ver 1.2.11)
-- JPEG: /usr/lib/arm-linux-gnueabihf/libjpeg.so (ver 80)
-- WEBP: /usr/lib/arm-linux-gnueabihf/libwebp.so (ver encoder: 0x020e)
-- PNG: /usr/lib/arm-linux-gnueabihf/libpng.so (ver 1.6.37)
-- TIFF: /usr/lib/arm-linux-gnueabihf/libtiff.so (ver 42 / 4.1.0)
-- JPEG 2000: build (ver 1.900.1)
-- OpenEXR: /usr/lib/arm-linux-gnueabihf/libImath.so /usr/lib/arm-linux-gnueabihf/libIlmImf.so /usr/lib/arm-linux-gnueabihf/libIex.so /usr/lib/arm-linux-gnueabihf/libHalf.so /usr/lib/arm-linux-gnueabihf/libIlmThread.so (ver 2_3)
-- HDR: YES
-- SUNRASTER: YES
-- PXM: YES
--
-- Video I/O:
-- DC1394: YES (ver 2.2.5)
-- FFMPEG: YES
-- avcodec: YES (ver 58.54.100)
-- avformat: YES (ver 58.29.100)
-- avutil: YES (ver 56.31.100)
-- swscale: YES (ver 5.5.100)
-- avresample: YES (ver 4.0.0)
-- GStreamer: NO
-- libv4l/libv4l2: NO
-- v4l/v4l2: linux/videodev2.h
--
-- Parallel framework: pthreads
--
-- Trace: YES (with Intel ITT)
--
-- Other third-party libraries:
-- Lapack: NO
-- Eigen: YES (ver 3.3.7)
-- Custom HAL: NO
-- Protobuf: build (3.5.1)
--
-- OpenCL: YES (no extra features)
-- Include path: /home/xilinx/opencv/opencv-3.4.16/3rdparty/include/opencl/1.2
-- Link libraries: Dynamic load
--
-- Python 3:
-- Interpreter: /usr/bin/python3.8 (ver 3.8.2)
-- Libraries: /usr/lib/arm-linux-gnueabihf/libpython3.8.so (ver 3.8.2)
-- numpy: /usr/lib/python3/dist-packages/numpy/core/include (ver 1.17.4)
-- install path: lib/python3.8/site-packages/cv2/python-3.8
--
-- Python (for build): /usr/bin/python2.7
--
-- Java:
-- ant: NO
-- JNI: NO
-- Java wrappers: NO
-- Java tests: NO
--
-- Install to: /usr/local
-- -----------------------------------------------------------------
--
-- Configuring done
-- Generating done
-- Build files have been written to: /home/xilinx/opencv/build
xilinx@pynq:~/opencv/build$
を削除した。#pragma HLS PIPELINE II=1 rewind
// axis2DMA.cpp
// 2022/08/15 by marsee
//
#include <ap_int.h>
#include <hls_stream.h>
#include <ap_axi_sdata.h>
#include <stdint.h>
int axis2DMA2(hls::stream<ap_axis<32,1,1,1> >& ins,
int32_t row_size, int32_t col_size, ap_int<32> *out){
#pragma HLS INTERFACE mode=m_axi depth=480000 port=out offset=slave
#pragma HLS INTERFACE mode=s_axilite port=col_size
#pragma HLS INTERFACE mode=s_axilite port=row_size
#pragma HLS INTERFACE mode=axis register_mode=both port=ins register
#pragma HLS INTERFACE mode=s_axilite port=return
ap_axis<32,1,1,1> val;
Loop1 : do { // user が 1 になった時にスタート
#pragma HLS LOOP_TRIPCOUNT min=1 max=1 avg=1
ins >> val;
} while(val.user == 0);
for(int y=0; y<row_size; y++){
#pragma HLS LOOP_TRIPCOUNT min=480 max=1080 avg=600
for(int x=0; x<col_size; x++){
#pragma HLS LOOP_TRIPCOUNT min=640 max=1920 avg=800
if(!(y==0 && x==0)){
ins >> val;
}
out[y*col_size+x] = val.data;
}
}
return(0);
}
// axis2DMA.cpp
// 2022/08/15 by marsee
//
#include <ap_int.h>
#include <hls_stream.h>
#include <ap_axi_sdata.h>
#include <stdint.h>
int axis2DMA2(hls::stream<ap_axis<32,1,1,1> >& ins,
int32_t row_size, int32_t col_size, ap_int<32> *out){
#pragma HLS INTERFACE mode=m_axi depth=480000 port=out offset=slave
#pragma HLS INTERFACE mode=s_axilite port=col_size
#pragma HLS INTERFACE mode=s_axilite port=row_size
#pragma HLS INTERFACE mode=axis register_mode=both port=ins register
#pragma HLS INTERFACE mode=s_axilite port=return
ap_axis<32,1,1,1> val;
Loop1 : do { // user が 1 になった時にスタート
#pragma HLS LOOP_TRIPCOUNT min=1 max=1 avg=1
ins >> val;
} while(val.user == 0);
for(int y=0; y<row_size; y++){
#pragma HLS LOOP_TRIPCOUNT min=480 max=1080 avg=600
for(int x=0; x<col_size; x++){
#pragma HLS PIPELINE II=1 rewind
#pragma HLS LOOP_TRIPCOUNT min=640 max=1920 avg=800
if(!(y==0 && x==0)){
ins >> val;
}
out[y*col_size+x] = val.data;
}
}
return(0);
}
// axis2DMA_tb.cpp
// 2022/08/15 by marsee
//
#include <iostream>
#include <ap_int.h>
#include <hls_stream.h>
#include <ap_axi_sdata.h>
#include "opencv2/opencv.hpp"
#include "opencv2/imgproc/imgproc.hpp"
#include "opencv2/highgui/highgui.hpp"
#include "opencv2/imgcodecs/imgcodecs.hpp"
#include "pict_data.h"
char OUTPUT_PICT_FILE[] = "test.jpg";
int axis2DMA2(hls::stream<ap_axis<32,1,1,1> >& ins,
int32_t row_size, int32_t col_size, ap_int<32> *out);
int main(){
hls::stream<ap_axis<32,1,1,1> > ins;
ap_axis<32,1,1,1> axisp;
ap_int<32> *wr_pict;
for(int y=0; y<Y_SIZE; y++){
for(int x=0; x<X_SIZE; x++){
axisp.data = (ap_int<32>)pict_file_array[y][x][0] | ((ap_int<32>)pict_file_array[y][x][1])<<8 | ((ap_int<32>)pict_file_array[y][x][2])<<16;
if(y==0 && x==0)
axisp.user = 1;
else
axisp.user = 0;
if(x == X_SIZE-1)
axisp.last = 1;
else
axisp.last = 0;
ins << axisp;
}
}
if((wr_pict =(ap_int<32> *)malloc(sizeof(ap_int<32>) * (X_SIZE * Y_SIZE))) == NULL){
fprintf(stderr, "Can't allocate wr_pict memory\n");
exit(1);
}
axis2DMA2(ins, Y_SIZE, X_SIZE, wr_pict);
cv::Mat img(Y_SIZE, X_SIZE, CV_8UC3);
cv::Mat_<cv::Vec3b> dst_vec3b = cv::Mat_<cv::Vec3b>(img);
for (int y=0; y<Y_SIZE; y++){
for (int x=0; x<X_SIZE; x++){
ap_int<32> data = wr_pict[y*X_SIZE+x];
cv::Vec3b pixel;
pixel[0] = data & 0xff; // blue
pixel[1] = (data >> 8) & 0xff; // green
pixel[2] = (data >> 16) & 0xff; // red
dst_vec3b(y,x) = pixel;
}
}
cv::imwrite(OUTPUT_PICT_FILE, img);
return(0);
}
を設定した。-I/usr/local/include
-L/usr/local/lib -lopencv_core -lopencv_imgcodecs -lopencv_imgproc
# cam_disp.py
# 2022/08/05 by marsee
# 2022/08/14 : Added Sobel filter.
from PIL import Image
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
from pynq import allocate, Overlay
import time
# Download bitstream
cam_disp = Overlay("./cam_disp.bit")
# Generate an instance for each IP
vflip_dmaw = cam_disp.vflip_dma_write_0
dma2axis3 = cam_disp.DMA2axis_3buf_0
paracam_inf = cam_disp.paracam_inf_axis_0
bmpd_cont = cam_disp.btimap_disp_cont_axis_0
cam_iic = cam_disp.cam_iic_0
sobel = cam_disp.sobel_axis_RGB24_0
def cam_i2c_init(cam_iic):
cam_iic.write(0x100, 0x2) # reset tx fifo ,address is 0x100, i2c_control_reg
cam_iic.write(0x100, 0x1) # enable i2c
def cam_i2x_write_sync():
time.sleep(0.001) # 1ms wait
def cam_i2c_write(cam_iic, device_addr, write_addr, write_data):
cam_iic.write(0x108, bin(0x100 | (device_addr & 0xfe))) # Slave IIC Write Address, address is 0x108, i2c_tx_fifo
cam_iic.write(0x108, bin((write_addr >> 8) & 0xff)) # address upper byte
cam_iic.write(0x108, bin(write_addr & 0xff)) # address lower byte
cam_iic.write(0x108, bin(0x200 | (write_data & 0xff))) # data
cam_i2x_write_sync()
def cam_reg_set(cam_iic, device_addr):
cam_i2c_write(cam_iic, device_addr, 0x3103, 0x93)
cam_i2c_write(cam_iic, device_addr, 0x3008, 0x82)
cam_i2c_write(cam_iic, device_addr, 0x3017, 0x7f)
cam_i2c_write(cam_iic, device_addr, 0x3018, 0xfc)
cam_i2c_write(cam_iic, device_addr, 0x3810, 0xc2)
cam_i2c_write(cam_iic, device_addr, 0x3615, 0xf0)
cam_i2c_write(cam_iic, device_addr, 0x3000, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x3001, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x3002, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x3003, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x3000, 0xf8)
cam_i2c_write(cam_iic, device_addr, 0x3001, 0x48)
cam_i2c_write(cam_iic, device_addr, 0x3002, 0x5c)
cam_i2c_write(cam_iic, device_addr, 0x3003, 0x02)
cam_i2c_write(cam_iic, device_addr, 0x3004, 0x07)
cam_i2c_write(cam_iic, device_addr, 0x3005, 0xb7)
cam_i2c_write(cam_iic, device_addr, 0x3006, 0x43)
cam_i2c_write(cam_iic, device_addr, 0x3007, 0x37)
cam_i2c_write(cam_iic, device_addr, 0x3011, 0x08) # 0x08 - 15fps, 0x10 - 30fps
cam_i2c_write(cam_iic, device_addr, 0x3010, 0x10)
cam_i2c_write(cam_iic, device_addr, 0x460c, 0x22)
cam_i2c_write(cam_iic, device_addr, 0x3815, 0x04)
cam_i2c_write(cam_iic, device_addr, 0x370d, 0x06)
cam_i2c_write(cam_iic, device_addr, 0x370c, 0xa0)
cam_i2c_write(cam_iic, device_addr, 0x3602, 0xfc)
cam_i2c_write(cam_iic, device_addr, 0x3612, 0xff)
cam_i2c_write(cam_iic, device_addr, 0x3634, 0xc0)
cam_i2c_write(cam_iic, device_addr, 0x3613, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x3605, 0x7c)
cam_i2c_write(cam_iic, device_addr, 0x3621, 0x09)
cam_i2c_write(cam_iic, device_addr, 0x3622, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x3604, 0x40)
cam_i2c_write(cam_iic, device_addr, 0x3603, 0xa7)
cam_i2c_write(cam_iic, device_addr, 0x3603, 0x27)
cam_i2c_write(cam_iic, device_addr, 0x4000, 0x21)
cam_i2c_write(cam_iic, device_addr, 0x401d, 0x02)
cam_i2c_write(cam_iic, device_addr, 0x3600, 0x54)
cam_i2c_write(cam_iic, device_addr, 0x3605, 0x04)
cam_i2c_write(cam_iic, device_addr, 0x3606, 0x3f)
cam_i2c_write(cam_iic, device_addr, 0x3c01, 0x80)
cam_i2c_write(cam_iic, device_addr, 0x5000, 0x4f)
cam_i2c_write(cam_iic, device_addr, 0x5020, 0x04)
cam_i2c_write(cam_iic, device_addr, 0x5181, 0x79)
cam_i2c_write(cam_iic, device_addr, 0x5182, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5185, 0x22)
cam_i2c_write(cam_iic, device_addr, 0x5197, 0x01)
cam_i2c_write(cam_iic, device_addr, 0x5001, 0xff)
cam_i2c_write(cam_iic, device_addr, 0x5500, 0x0a)
cam_i2c_write(cam_iic, device_addr, 0x5504, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5505, 0x7f)
cam_i2c_write(cam_iic, device_addr, 0x5080, 0x08)
cam_i2c_write(cam_iic, device_addr, 0x300e, 0x18)
cam_i2c_write(cam_iic, device_addr, 0x4610, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x471d, 0x05)
cam_i2c_write(cam_iic, device_addr, 0x4708, 0x06)
cam_i2c_write(cam_iic, device_addr, 0x3710, 0x10)
cam_i2c_write(cam_iic, device_addr, 0x3632, 0x41)
cam_i2c_write(cam_iic, device_addr, 0x3702, 0x40)
cam_i2c_write(cam_iic, device_addr, 0x3620, 0x37)
cam_i2c_write(cam_iic, device_addr, 0x3631, 0x01)
cam_i2c_write(cam_iic, device_addr, 0x3808, 0x02)
cam_i2c_write(cam_iic, device_addr, 0x3809, 0x80)
cam_i2c_write(cam_iic, device_addr, 0x380a, 0x01)
cam_i2c_write(cam_iic, device_addr, 0x380b, 0xe0)
cam_i2c_write(cam_iic, device_addr, 0x380e, 0x07)
cam_i2c_write(cam_iic, device_addr, 0x380f, 0xd0)
cam_i2c_write(cam_iic, device_addr, 0x501f, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5000, 0x4f)
cam_i2c_write(cam_iic, device_addr, 0x4300, 0x61) # RGB565
cam_i2c_write(cam_iic, device_addr, 0x3503, 0x07)
cam_i2c_write(cam_iic, device_addr, 0x3501, 0x73)
cam_i2c_write(cam_iic, device_addr, 0x3502, 0x80)
cam_i2c_write(cam_iic, device_addr, 0x350b, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x3503, 0x07)
cam_i2c_write(cam_iic, device_addr, 0x3824, 0x11)
cam_i2c_write(cam_iic, device_addr, 0x3501, 0x1e)
cam_i2c_write(cam_iic, device_addr, 0x3502, 0x80)
cam_i2c_write(cam_iic, device_addr, 0x350b, 0x7f)
cam_i2c_write(cam_iic, device_addr, 0x380c, 0x0c)
cam_i2c_write(cam_iic, device_addr, 0x380d, 0x80)
cam_i2c_write(cam_iic, device_addr, 0x380e, 0x03)
cam_i2c_write(cam_iic, device_addr, 0x380f, 0xe8)
cam_i2c_write(cam_iic, device_addr, 0x3a0d, 0x04)
cam_i2c_write(cam_iic, device_addr, 0x3a0e, 0x03)
cam_i2c_write(cam_iic, device_addr, 0x3818, 0xc1)
cam_i2c_write(cam_iic, device_addr, 0x3705, 0xdb)
cam_i2c_write(cam_iic, device_addr, 0x370a, 0x81)
cam_i2c_write(cam_iic, device_addr, 0x3801, 0x80)
cam_i2c_write(cam_iic, device_addr, 0x3621, 0xc7)
cam_i2c_write(cam_iic, device_addr, 0x3801, 0x50)
cam_i2c_write(cam_iic, device_addr, 0x3803, 0x08)
cam_i2c_write(cam_iic, device_addr, 0x3827, 0x08)
cam_i2c_write(cam_iic, device_addr, 0x3810, 0xc0)
cam_i2c_write(cam_iic, device_addr, 0x3804, 0x05)
cam_i2c_write(cam_iic, device_addr, 0x3805, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5682, 0x05)
cam_i2c_write(cam_iic, device_addr, 0x5683, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x3806, 0x03)
cam_i2c_write(cam_iic, device_addr, 0x3807, 0xc0)
cam_i2c_write(cam_iic, device_addr, 0x5686, 0x03)
cam_i2c_write(cam_iic, device_addr, 0x5687, 0xc0)
cam_i2c_write(cam_iic, device_addr, 0x3a00, 0x78)
cam_i2c_write(cam_iic, device_addr, 0x3a1a, 0x04)
cam_i2c_write(cam_iic, device_addr, 0x3a13, 0x30)
cam_i2c_write(cam_iic, device_addr, 0x3a18, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x3a19, 0x7c)
cam_i2c_write(cam_iic, device_addr, 0x3a08, 0x12)
cam_i2c_write(cam_iic, device_addr, 0x3a09, 0xc0)
cam_i2c_write(cam_iic, device_addr, 0x3a0a, 0x0f)
cam_i2c_write(cam_iic, device_addr, 0x3a0b, 0xa0)
cam_i2c_write(cam_iic, device_addr, 0x3004, 0xff)
cam_i2c_write(cam_iic, device_addr, 0x350c, 0x07)
cam_i2c_write(cam_iic, device_addr, 0x350d, 0xd0)
cam_i2c_write(cam_iic, device_addr, 0x3500, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x3501, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x3502, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x350a, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x350b, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x3503, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x528a, 0x02)
cam_i2c_write(cam_iic, device_addr, 0x528b, 0x04)
cam_i2c_write(cam_iic, device_addr, 0x528c, 0x08)
cam_i2c_write(cam_iic, device_addr, 0x528d, 0x08)
cam_i2c_write(cam_iic, device_addr, 0x528e, 0x08)
cam_i2c_write(cam_iic, device_addr, 0x528f, 0x10)
cam_i2c_write(cam_iic, device_addr, 0x5290, 0x10)
cam_i2c_write(cam_iic, device_addr, 0x5292, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5293, 0x02)
cam_i2c_write(cam_iic, device_addr, 0x5294, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5295, 0x02)
cam_i2c_write(cam_iic, device_addr, 0x5296, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5297, 0x02)
cam_i2c_write(cam_iic, device_addr, 0x5298, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5299, 0x02)
cam_i2c_write(cam_iic, device_addr, 0x529a, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x529b, 0x02)
cam_i2c_write(cam_iic, device_addr, 0x529c, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x529d, 0x02)
cam_i2c_write(cam_iic, device_addr, 0x529e, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x529f, 0x02)
cam_i2c_write(cam_iic, device_addr, 0x3a0f, 0x3c)
cam_i2c_write(cam_iic, device_addr, 0x3a10, 0x30)
cam_i2c_write(cam_iic, device_addr, 0x3a1b, 0x3c)
cam_i2c_write(cam_iic, device_addr, 0x3a1e, 0x30)
cam_i2c_write(cam_iic, device_addr, 0x3a11, 0x70)
cam_i2c_write(cam_iic, device_addr, 0x3a1f, 0x10)
cam_i2c_write(cam_iic, device_addr, 0x3030, 0x0b)
cam_i2c_write(cam_iic, device_addr, 0x3a02, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x3a03, 0x7d)
cam_i2c_write(cam_iic, device_addr, 0x3a04, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x3a14, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x3a15, 0x7d)
cam_i2c_write(cam_iic, device_addr, 0x3a16, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x3a00, 0x78)
cam_i2c_write(cam_iic, device_addr, 0x3a08, 0x09)
cam_i2c_write(cam_iic, device_addr, 0x3a09, 0x60)
cam_i2c_write(cam_iic, device_addr, 0x3a0a, 0x07)
cam_i2c_write(cam_iic, device_addr, 0x3a0b, 0xd0)
cam_i2c_write(cam_iic, device_addr, 0x3a0d, 0x08)
cam_i2c_write(cam_iic, device_addr, 0x3a0e, 0x06)
cam_i2c_write(cam_iic, device_addr, 0x5193, 0x70)
cam_i2c_write(cam_iic, device_addr, 0x3620, 0x57)
cam_i2c_write(cam_iic, device_addr, 0x3703, 0x98)
cam_i2c_write(cam_iic, device_addr, 0x3704, 0x1c)
cam_i2c_write(cam_iic, device_addr, 0x589b, 0x04)
cam_i2c_write(cam_iic, device_addr, 0x589a, 0xc5)
cam_i2c_write(cam_iic, device_addr, 0x528a, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x528b, 0x02)
cam_i2c_write(cam_iic, device_addr, 0x528c, 0x08)
cam_i2c_write(cam_iic, device_addr, 0x528d, 0x10)
cam_i2c_write(cam_iic, device_addr, 0x528e, 0x20)
cam_i2c_write(cam_iic, device_addr, 0x528f, 0x28)
cam_i2c_write(cam_iic, device_addr, 0x5290, 0x30)
cam_i2c_write(cam_iic, device_addr, 0x5292, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5293, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5294, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5295, 0x02)
cam_i2c_write(cam_iic, device_addr, 0x5296, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5297, 0x08)
cam_i2c_write(cam_iic, device_addr, 0x5298, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5299, 0x10)
cam_i2c_write(cam_iic, device_addr, 0x529a, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x529b, 0x20)
cam_i2c_write(cam_iic, device_addr, 0x529c, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x529d, 0x28)
cam_i2c_write(cam_iic, device_addr, 0x529e, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x529f, 0x30)
cam_i2c_write(cam_iic, device_addr, 0x5282, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5300, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5301, 0x20)
cam_i2c_write(cam_iic, device_addr, 0x5302, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5303, 0x7c)
cam_i2c_write(cam_iic, device_addr, 0x530c, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x530d, 0x0c)
cam_i2c_write(cam_iic, device_addr, 0x530e, 0x20)
cam_i2c_write(cam_iic, device_addr, 0x530f, 0x80)
cam_i2c_write(cam_iic, device_addr, 0x5310, 0x20)
cam_i2c_write(cam_iic, device_addr, 0x5311, 0x80)
cam_i2c_write(cam_iic, device_addr, 0x5308, 0x20)
cam_i2c_write(cam_iic, device_addr, 0x5309, 0x40)
cam_i2c_write(cam_iic, device_addr, 0x5304, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5305, 0x30)
cam_i2c_write(cam_iic, device_addr, 0x5306, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5307, 0x80)
cam_i2c_write(cam_iic, device_addr, 0x5314, 0x08)
cam_i2c_write(cam_iic, device_addr, 0x5315, 0x20)
cam_i2c_write(cam_iic, device_addr, 0x5319, 0x30)
cam_i2c_write(cam_iic, device_addr, 0x5316, 0x10)
cam_i2c_write(cam_iic, device_addr, 0x5317, 0x08)
cam_i2c_write(cam_iic, device_addr, 0x5318, 0x02)
cam_i2c_write(cam_iic, device_addr, 0x5380, 0x01)
cam_i2c_write(cam_iic, device_addr, 0x5381, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5382, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5383, 0x4e)
cam_i2c_write(cam_iic, device_addr, 0x5384, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5385, 0x0f)
cam_i2c_write(cam_iic, device_addr, 0x5386, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5387, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5388, 0x01)
cam_i2c_write(cam_iic, device_addr, 0x5389, 0x15)
cam_i2c_write(cam_iic, device_addr, 0x538a, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x538b, 0x31)
cam_i2c_write(cam_iic, device_addr, 0x538c, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x538d, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x538e, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x538f, 0x0f)
cam_i2c_write(cam_iic, device_addr, 0x5390, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5391, 0xab)
cam_i2c_write(cam_iic, device_addr, 0x5392, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5393, 0xa2)
cam_i2c_write(cam_iic, device_addr, 0x5394, 0x08)
cam_i2c_write(cam_iic, device_addr, 0x5480, 0x14)
cam_i2c_write(cam_iic, device_addr, 0x5481, 0x21)
cam_i2c_write(cam_iic, device_addr, 0x5482, 0x36)
cam_i2c_write(cam_iic, device_addr, 0x5483, 0x57)
cam_i2c_write(cam_iic, device_addr, 0x5484, 0x65)
cam_i2c_write(cam_iic, device_addr, 0x5485, 0x71)
cam_i2c_write(cam_iic, device_addr, 0x5486, 0x7d)
cam_i2c_write(cam_iic, device_addr, 0x5487, 0x87)
cam_i2c_write(cam_iic, device_addr, 0x5488, 0x91)
cam_i2c_write(cam_iic, device_addr, 0x5489, 0x9a)
cam_i2c_write(cam_iic, device_addr, 0x548a, 0xaa)
cam_i2c_write(cam_iic, device_addr, 0x548b, 0xb8)
cam_i2c_write(cam_iic, device_addr, 0x548c, 0xcd)
cam_i2c_write(cam_iic, device_addr, 0x548d, 0xdd)
cam_i2c_write(cam_iic, device_addr, 0x548e, 0xea)
cam_i2c_write(cam_iic, device_addr, 0x548f, 0x10)
cam_i2c_write(cam_iic, device_addr, 0x5490, 0x05)
cam_i2c_write(cam_iic, device_addr, 0x5491, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5492, 0x04)
cam_i2c_write(cam_iic, device_addr, 0x5493, 0x20)
cam_i2c_write(cam_iic, device_addr, 0x5494, 0x03)
cam_i2c_write(cam_iic, device_addr, 0x5495, 0x60)
cam_i2c_write(cam_iic, device_addr, 0x5496, 0x02)
cam_i2c_write(cam_iic, device_addr, 0x5497, 0xb8)
cam_i2c_write(cam_iic, device_addr, 0x5498, 0x02)
cam_i2c_write(cam_iic, device_addr, 0x5499, 0x86)
cam_i2c_write(cam_iic, device_addr, 0x549a, 0x02)
cam_i2c_write(cam_iic, device_addr, 0x549b, 0x5b)
cam_i2c_write(cam_iic, device_addr, 0x549c, 0x02)
cam_i2c_write(cam_iic, device_addr, 0x549d, 0x3b)
cam_i2c_write(cam_iic, device_addr, 0x549e, 0x02)
cam_i2c_write(cam_iic, device_addr, 0x549f, 0x1c)
cam_i2c_write(cam_iic, device_addr, 0x54a0, 0x02)
cam_i2c_write(cam_iic, device_addr, 0x54a1, 0x04)
cam_i2c_write(cam_iic, device_addr, 0x54a2, 0x01)
cam_i2c_write(cam_iic, device_addr, 0x54a3, 0xed)
cam_i2c_write(cam_iic, device_addr, 0x54a4, 0x01)
cam_i2c_write(cam_iic, device_addr, 0x54a5, 0xc5)
cam_i2c_write(cam_iic, device_addr, 0x54a6, 0x01)
cam_i2c_write(cam_iic, device_addr, 0x54a7, 0xa5)
cam_i2c_write(cam_iic, device_addr, 0x54a8, 0x01)
cam_i2c_write(cam_iic, device_addr, 0x54a9, 0x6c)
cam_i2c_write(cam_iic, device_addr, 0x54aa, 0x01)
cam_i2c_write(cam_iic, device_addr, 0x54ab, 0x41)
cam_i2c_write(cam_iic, device_addr, 0x54ac, 0x01)
cam_i2c_write(cam_iic, device_addr, 0x54ad, 0x20)
cam_i2c_write(cam_iic, device_addr, 0x54ae, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x54af, 0x16)
cam_i2c_write(cam_iic, device_addr, 0x3406, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5192, 0x04) # 0x04
cam_i2c_write(cam_iic, device_addr, 0x5191, 0xf8) # 0xf8
cam_i2c_write(cam_iic, device_addr, 0x5193, 0x70)
cam_i2c_write(cam_iic, device_addr, 0x5194, 0xf0)
cam_i2c_write(cam_iic, device_addr, 0x5195, 0xf0)
cam_i2c_write(cam_iic, device_addr, 0x518d, 0x3d)
cam_i2c_write(cam_iic, device_addr, 0x518f, 0x54)
cam_i2c_write(cam_iic, device_addr, 0x518e, 0x3d)
cam_i2c_write(cam_iic, device_addr, 0x5190, 0x54)
cam_i2c_write(cam_iic, device_addr, 0x518b, 0xc0)
cam_i2c_write(cam_iic, device_addr, 0x518c, 0xbd)
cam_i2c_write(cam_iic, device_addr, 0x5187, 0x18)
cam_i2c_write(cam_iic, device_addr, 0x5188, 0x18)
cam_i2c_write(cam_iic, device_addr, 0x5189, 0x6e)
cam_i2c_write(cam_iic, device_addr, 0x518a, 0x68)
cam_i2c_write(cam_iic, device_addr, 0x5186, 0x1c)
cam_i2c_write(cam_iic, device_addr, 0x5181, 0x50)
cam_i2c_write(cam_iic, device_addr, 0x5184, 0x25)
cam_i2c_write(cam_iic, device_addr, 0x5182, 0x11)
cam_i2c_write(cam_iic, device_addr, 0x5183, 0x14)
cam_i2c_write(cam_iic, device_addr, 0x5184, 0x25)
cam_i2c_write(cam_iic, device_addr, 0x5185, 0x24)
cam_i2c_write(cam_iic, device_addr, 0x5025, 0x82)
cam_i2c_write(cam_iic, device_addr, 0x5583, 0x40)
cam_i2c_write(cam_iic, device_addr, 0x5584, 0x40)
cam_i2c_write(cam_iic, device_addr, 0x5580, 0x02) # 0x02
cam_i2c_write(cam_iic, device_addr, 0x3633, 0x07)
cam_i2c_write(cam_iic, device_addr, 0x3702, 0x10)
cam_i2c_write(cam_iic, device_addr, 0x3703, 0xb2)
cam_i2c_write(cam_iic, device_addr, 0x3704, 0x18)
cam_i2c_write(cam_iic, device_addr, 0x370b, 0x40)
cam_i2c_write(cam_iic, device_addr, 0x370d, 0x02)
cam_i2c_write(cam_iic, device_addr, 0x3620, 0x52)
cam_i2c_write(cam_iic, device_addr, 0x3c00, 0x04)
cam_i2c_write(cam_iic, device_addr, 0x5001, 0xFF)
cam_i2c_write(cam_iic, device_addr, 0x5282, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5300, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5301, 0x20)
cam_i2c_write(cam_iic, device_addr, 0x5302, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5303, 0x7c)
cam_i2c_write(cam_iic, device_addr, 0x530c, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x530d, 0x10)
cam_i2c_write(cam_iic, device_addr, 0x530e, 0x20)
cam_i2c_write(cam_iic, device_addr, 0x530f, 0x80)
cam_i2c_write(cam_iic, device_addr, 0x5310, 0x20)
cam_i2c_write(cam_iic, device_addr, 0x5311, 0x80)
cam_i2c_write(cam_iic, device_addr, 0x5308, 0x20)
cam_i2c_write(cam_iic, device_addr, 0x5309, 0x40)
cam_i2c_write(cam_iic, device_addr, 0x5304, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5305, 0x30)
cam_i2c_write(cam_iic, device_addr, 0x5306, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5307, 0x80)
cam_i2c_write(cam_iic, device_addr, 0x5314, 0x08)
cam_i2c_write(cam_iic, device_addr, 0x5315, 0x20)
cam_i2c_write(cam_iic, device_addr, 0x5319, 0x30)
cam_i2c_write(cam_iic, device_addr, 0x5316, 0x10)
cam_i2c_write(cam_iic, device_addr, 0x5317, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5318, 0x02)
cam_i2c_write(cam_iic, device_addr, 0x5500, 0x10)
cam_i2c_write(cam_iic, device_addr, 0x5502, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5503, 0x06)
cam_i2c_write(cam_iic, device_addr, 0x5504, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5505, 0x7f)
cam_i2c_write(cam_iic, device_addr, 0x5025, 0x80)
cam_i2c_write(cam_iic, device_addr, 0x5300, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5301, 0x20)
cam_i2c_write(cam_iic, device_addr, 0x5302, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5303, 0x7c)
cam_i2c_write(cam_iic, device_addr, 0x530c, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x530d, 0x0c)
cam_i2c_write(cam_iic, device_addr, 0x530e, 0x20)
cam_i2c_write(cam_iic, device_addr, 0x530f, 0x80)
cam_i2c_write(cam_iic, device_addr, 0x5310, 0x20)
cam_i2c_write(cam_iic, device_addr, 0x5311, 0x80)
cam_i2c_write(cam_iic, device_addr, 0x5308, 0x20)
cam_i2c_write(cam_iic, device_addr, 0x5309, 0x40)
cam_i2c_write(cam_iic, device_addr, 0x5304, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5305, 0x30)
cam_i2c_write(cam_iic, device_addr, 0x5306, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5307, 0x80)
cam_i2c_write(cam_iic, device_addr, 0x5314, 0x08)
cam_i2c_write(cam_iic, device_addr, 0x5315, 0x20)
cam_i2c_write(cam_iic, device_addr, 0x5319, 0x30)
cam_i2c_write(cam_iic, device_addr, 0x5316, 0x10)
cam_i2c_write(cam_iic, device_addr, 0x5317, 0x08)
cam_i2c_write(cam_iic, device_addr, 0x5318, 0x02)
cam_i2c_write(cam_iic, device_addr, 0x5380, 0x01)
cam_i2c_write(cam_iic, device_addr, 0x5381, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5382, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5383, 0x1f)
cam_i2c_write(cam_iic, device_addr, 0x5384, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5385, 0x06)
cam_i2c_write(cam_iic, device_addr, 0x5386, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5387, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5388, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5389, 0xE1)
cam_i2c_write(cam_iic, device_addr, 0x538A, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x538B, 0x2B)
cam_i2c_write(cam_iic, device_addr, 0x538C, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x538D, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x538E, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x538F, 0x10)
cam_i2c_write(cam_iic, device_addr, 0x5390, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5391, 0xB3)
cam_i2c_write(cam_iic, device_addr, 0x5392, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5393, 0xA6)
cam_i2c_write(cam_iic, device_addr, 0x5394, 0x08)
cam_i2c_write(cam_iic, device_addr, 0x5480, 0xd)
cam_i2c_write(cam_iic, device_addr, 0x5481, 0x18)
cam_i2c_write(cam_iic, device_addr, 0x5482, 0x2a)
cam_i2c_write(cam_iic, device_addr, 0x5483, 0x49)
cam_i2c_write(cam_iic, device_addr, 0x5484, 0x56)
cam_i2c_write(cam_iic, device_addr, 0x5485, 0x62)
cam_i2c_write(cam_iic, device_addr, 0x5486, 0x6c)
cam_i2c_write(cam_iic, device_addr, 0x5487, 0x76)
cam_i2c_write(cam_iic, device_addr, 0x5488, 0x80)
cam_i2c_write(cam_iic, device_addr, 0x5489, 0x88)
cam_i2c_write(cam_iic, device_addr, 0x548a, 0x96)
cam_i2c_write(cam_iic, device_addr, 0x548b, 0xa2)
cam_i2c_write(cam_iic, device_addr, 0x548c, 0xb8)
cam_i2c_write(cam_iic, device_addr, 0x548d, 0xcc)
cam_i2c_write(cam_iic, device_addr, 0x548e, 0xe0)
cam_i2c_write(cam_iic, device_addr, 0x548f, 0x10)
cam_i2c_write(cam_iic, device_addr, 0x5490, 0x3)
cam_i2c_write(cam_iic, device_addr, 0x5491, 0x40)
cam_i2c_write(cam_iic, device_addr, 0x5492, 0x3)
cam_i2c_write(cam_iic, device_addr, 0x5493, 0x0)
cam_i2c_write(cam_iic, device_addr, 0x5494, 0x2)
cam_i2c_write(cam_iic, device_addr, 0x5495, 0xa0)
cam_i2c_write(cam_iic, device_addr, 0x5496, 0x2)
cam_i2c_write(cam_iic, device_addr, 0x5497, 0x48)
cam_i2c_write(cam_iic, device_addr, 0x5498, 0x2)
cam_i2c_write(cam_iic, device_addr, 0x5499, 0x26)
cam_i2c_write(cam_iic, device_addr, 0x549a, 0x2)
cam_i2c_write(cam_iic, device_addr, 0x549b, 0xb)
cam_i2c_write(cam_iic, device_addr, 0x549c, 0x1)
cam_i2c_write(cam_iic, device_addr, 0x549d, 0xee)
cam_i2c_write(cam_iic, device_addr, 0x549e, 0x1)
cam_i2c_write(cam_iic, device_addr, 0x549f, 0xd8)
cam_i2c_write(cam_iic, device_addr, 0x54a0, 0x1)
cam_i2c_write(cam_iic, device_addr, 0x54a1, 0xc7)
cam_i2c_write(cam_iic, device_addr, 0x54a2, 0x1)
cam_i2c_write(cam_iic, device_addr, 0x54a3, 0xb3)
cam_i2c_write(cam_iic, device_addr, 0x54a4, 0x1)
cam_i2c_write(cam_iic, device_addr, 0x54a5, 0x90)
cam_i2c_write(cam_iic, device_addr, 0x54a6, 0x1)
cam_i2c_write(cam_iic, device_addr, 0x54a7, 0x62)
cam_i2c_write(cam_iic, device_addr, 0x54a8, 0x1)
cam_i2c_write(cam_iic, device_addr, 0x54a9, 0x27)
cam_i2c_write(cam_iic, device_addr, 0x54aa, 0x01)
cam_i2c_write(cam_iic, device_addr, 0x54ab, 0x09)
cam_i2c_write(cam_iic, device_addr, 0x54ac, 0x01)
cam_i2c_write(cam_iic, device_addr, 0x54ad, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x54ae, 0x0)
cam_i2c_write(cam_iic, device_addr, 0x54af, 0x40)
cam_i2c_write(cam_iic, device_addr, 0x54b0, 0x1)
cam_i2c_write(cam_iic, device_addr, 0x54b1, 0x20)
cam_i2c_write(cam_iic, device_addr, 0x54b2, 0x1)
cam_i2c_write(cam_iic, device_addr, 0x54b3, 0x40)
cam_i2c_write(cam_iic, device_addr, 0x54b4, 0x0)
cam_i2c_write(cam_iic, device_addr, 0x54b5, 0xf0)
cam_i2c_write(cam_iic, device_addr, 0x54b6, 0x1)
cam_i2c_write(cam_iic, device_addr, 0x54b7, 0xdf)
cam_i2c_write(cam_iic, device_addr, 0x5583, 0x5d)
cam_i2c_write(cam_iic, device_addr, 0x5584, 0x5d)
cam_i2c_write(cam_iic, device_addr, 0x5580, 0x06)
cam_i2c_write(cam_iic, device_addr, 0x5587, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5588, 0x20)
cam_i2c_write(cam_iic, device_addr, 0x558a, 0x09)
cam_i2c_write(cam_iic, device_addr, 0x5589, 0x10)
cam_i2c_write(cam_iic, device_addr, 0x5000, 0xcf)
cam_i2c_write(cam_iic, device_addr, 0x5800, 0x48)
cam_i2c_write(cam_iic, device_addr, 0x5801, 0x31)
cam_i2c_write(cam_iic, device_addr, 0x5802, 0x21)
cam_i2c_write(cam_iic, device_addr, 0x5803, 0x1b)
cam_i2c_write(cam_iic, device_addr, 0x5804, 0x1a)
cam_i2c_write(cam_iic, device_addr, 0x5805, 0x1e)
cam_i2c_write(cam_iic, device_addr, 0x5806, 0x29)
cam_i2c_write(cam_iic, device_addr, 0x5807, 0x38)
cam_i2c_write(cam_iic, device_addr, 0x5808, 0x26)
cam_i2c_write(cam_iic, device_addr, 0x5809, 0x17)
cam_i2c_write(cam_iic, device_addr, 0x580a, 0x11)
cam_i2c_write(cam_iic, device_addr, 0x580b, 0xe)
cam_i2c_write(cam_iic, device_addr, 0x580c, 0xd)
cam_i2c_write(cam_iic, device_addr, 0x580d, 0xe)
cam_i2c_write(cam_iic, device_addr, 0x580e, 0x13)
cam_i2c_write(cam_iic, device_addr, 0x580f, 0x1a)
cam_i2c_write(cam_iic, device_addr, 0x5810, 0x15)
cam_i2c_write(cam_iic, device_addr, 0x5811, 0xd)
cam_i2c_write(cam_iic, device_addr, 0x5812, 0x8)
cam_i2c_write(cam_iic, device_addr, 0x5813, 0x5)
cam_i2c_write(cam_iic, device_addr, 0x5814, 0x4)
cam_i2c_write(cam_iic, device_addr, 0x5815, 0x5)
cam_i2c_write(cam_iic, device_addr, 0x5816, 0x9)
cam_i2c_write(cam_iic, device_addr, 0x5817, 0xd)
cam_i2c_write(cam_iic, device_addr, 0x5818, 0x11)
cam_i2c_write(cam_iic, device_addr, 0x5819, 0xa)
cam_i2c_write(cam_iic, device_addr, 0x581a, 0x4)
cam_i2c_write(cam_iic, device_addr, 0x581b, 0x0)
cam_i2c_write(cam_iic, device_addr, 0x581c, 0x0)
cam_i2c_write(cam_iic, device_addr, 0x581d, 0x1)
cam_i2c_write(cam_iic, device_addr, 0x581e, 0x6)
cam_i2c_write(cam_iic, device_addr, 0x581f, 0x9)
cam_i2c_write(cam_iic, device_addr, 0x5820, 0x12)
cam_i2c_write(cam_iic, device_addr, 0x5821, 0xb)
cam_i2c_write(cam_iic, device_addr, 0x5822, 0x4)
cam_i2c_write(cam_iic, device_addr, 0x5823, 0x0)
cam_i2c_write(cam_iic, device_addr, 0x5824, 0x0)
cam_i2c_write(cam_iic, device_addr, 0x5825, 0x1)
cam_i2c_write(cam_iic, device_addr, 0x5826, 0x6)
cam_i2c_write(cam_iic, device_addr, 0x5827, 0xa)
cam_i2c_write(cam_iic, device_addr, 0x5828, 0x17)
cam_i2c_write(cam_iic, device_addr, 0x5829, 0xf)
cam_i2c_write(cam_iic, device_addr, 0x582a, 0x9)
cam_i2c_write(cam_iic, device_addr, 0x582b, 0x6)
cam_i2c_write(cam_iic, device_addr, 0x582c, 0x5)
cam_i2c_write(cam_iic, device_addr, 0x582d, 0x6)
cam_i2c_write(cam_iic, device_addr, 0x582e, 0xa)
cam_i2c_write(cam_iic, device_addr, 0x582f, 0xe)
cam_i2c_write(cam_iic, device_addr, 0x5830, 0x28)
cam_i2c_write(cam_iic, device_addr, 0x5831, 0x1a)
cam_i2c_write(cam_iic, device_addr, 0x5832, 0x11)
cam_i2c_write(cam_iic, device_addr, 0x5833, 0xe)
cam_i2c_write(cam_iic, device_addr, 0x5834, 0xe)
cam_i2c_write(cam_iic, device_addr, 0x5835, 0xf)
cam_i2c_write(cam_iic, device_addr, 0x5836, 0x15)
cam_i2c_write(cam_iic, device_addr, 0x5837, 0x1d)
cam_i2c_write(cam_iic, device_addr, 0x5838, 0x6e)
cam_i2c_write(cam_iic, device_addr, 0x5839, 0x39)
cam_i2c_write(cam_iic, device_addr, 0x583a, 0x27)
cam_i2c_write(cam_iic, device_addr, 0x583b, 0x1f)
cam_i2c_write(cam_iic, device_addr, 0x583c, 0x1e)
cam_i2c_write(cam_iic, device_addr, 0x583d, 0x23)
cam_i2c_write(cam_iic, device_addr, 0x583e, 0x2f)
cam_i2c_write(cam_iic, device_addr, 0x583f, 0x41)
cam_i2c_write(cam_iic, device_addr, 0x5840, 0xe)
cam_i2c_write(cam_iic, device_addr, 0x5841, 0xc)
cam_i2c_write(cam_iic, device_addr, 0x5842, 0xd)
cam_i2c_write(cam_iic, device_addr, 0x5843, 0xc)
cam_i2c_write(cam_iic, device_addr, 0x5844, 0xc)
cam_i2c_write(cam_iic, device_addr, 0x5845, 0xc)
cam_i2c_write(cam_iic, device_addr, 0x5846, 0xc)
cam_i2c_write(cam_iic, device_addr, 0x5847, 0xc)
cam_i2c_write(cam_iic, device_addr, 0x5848, 0xd)
cam_i2c_write(cam_iic, device_addr, 0x5849, 0xe)
cam_i2c_write(cam_iic, device_addr, 0x584a, 0xe)
cam_i2c_write(cam_iic, device_addr, 0x584b, 0xa)
cam_i2c_write(cam_iic, device_addr, 0x584c, 0xe)
cam_i2c_write(cam_iic, device_addr, 0x584d, 0xe)
cam_i2c_write(cam_iic, device_addr, 0x584e, 0x10)
cam_i2c_write(cam_iic, device_addr, 0x584f, 0x10)
cam_i2c_write(cam_iic, device_addr, 0x5850, 0x11)
cam_i2c_write(cam_iic, device_addr, 0x5851, 0xa)
cam_i2c_write(cam_iic, device_addr, 0x5852, 0xf)
cam_i2c_write(cam_iic, device_addr, 0x5853, 0xe)
cam_i2c_write(cam_iic, device_addr, 0x5854, 0x10)
cam_i2c_write(cam_iic, device_addr, 0x5855, 0x10)
cam_i2c_write(cam_iic, device_addr, 0x5856, 0x10)
cam_i2c_write(cam_iic, device_addr, 0x5857, 0xa)
cam_i2c_write(cam_iic, device_addr, 0x5858, 0xe)
cam_i2c_write(cam_iic, device_addr, 0x5859, 0xe)
cam_i2c_write(cam_iic, device_addr, 0x585a, 0xf)
cam_i2c_write(cam_iic, device_addr, 0x585b, 0xf)
cam_i2c_write(cam_iic, device_addr, 0x585c, 0xf)
cam_i2c_write(cam_iic, device_addr, 0x585d, 0xa)
cam_i2c_write(cam_iic, device_addr, 0x585e, 0x9)
cam_i2c_write(cam_iic, device_addr, 0x585f, 0xd)
cam_i2c_write(cam_iic, device_addr, 0x5860, 0xc)
cam_i2c_write(cam_iic, device_addr, 0x5861, 0xb)
cam_i2c_write(cam_iic, device_addr, 0x5862, 0xd)
cam_i2c_write(cam_iic, device_addr, 0x5863, 0x7)
cam_i2c_write(cam_iic, device_addr, 0x5864, 0x17)
cam_i2c_write(cam_iic, device_addr, 0x5865, 0x14)
cam_i2c_write(cam_iic, device_addr, 0x5866, 0x18)
cam_i2c_write(cam_iic, device_addr, 0x5867, 0x18)
cam_i2c_write(cam_iic, device_addr, 0x5868, 0x16)
cam_i2c_write(cam_iic, device_addr, 0x5869, 0x12)
cam_i2c_write(cam_iic, device_addr, 0x586a, 0x1b)
cam_i2c_write(cam_iic, device_addr, 0x586b, 0x1a)
cam_i2c_write(cam_iic, device_addr, 0x586c, 0x16)
cam_i2c_write(cam_iic, device_addr, 0x586d, 0x16)
cam_i2c_write(cam_iic, device_addr, 0x586e, 0x18)
cam_i2c_write(cam_iic, device_addr, 0x586f, 0x1f)
cam_i2c_write(cam_iic, device_addr, 0x5870, 0x1c)
cam_i2c_write(cam_iic, device_addr, 0x5871, 0x16)
cam_i2c_write(cam_iic, device_addr, 0x5872, 0x10)
cam_i2c_write(cam_iic, device_addr, 0x5873, 0xf)
cam_i2c_write(cam_iic, device_addr, 0x5874, 0x13)
cam_i2c_write(cam_iic, device_addr, 0x5875, 0x1c)
cam_i2c_write(cam_iic, device_addr, 0x5876, 0x1e)
cam_i2c_write(cam_iic, device_addr, 0x5877, 0x17)
cam_i2c_write(cam_iic, device_addr, 0x5878, 0x11)
cam_i2c_write(cam_iic, device_addr, 0x5879, 0x11)
cam_i2c_write(cam_iic, device_addr, 0x587a, 0x14)
cam_i2c_write(cam_iic, device_addr, 0x587b, 0x1e)
cam_i2c_write(cam_iic, device_addr, 0x587c, 0x1c)
cam_i2c_write(cam_iic, device_addr, 0x587d, 0x1c)
cam_i2c_write(cam_iic, device_addr, 0x587e, 0x1a)
cam_i2c_write(cam_iic, device_addr, 0x587f, 0x1a)
cam_i2c_write(cam_iic, device_addr, 0x5880, 0x1b)
cam_i2c_write(cam_iic, device_addr, 0x5881, 0x1f)
cam_i2c_write(cam_iic, device_addr, 0x5882, 0x14)
cam_i2c_write(cam_iic, device_addr, 0x5883, 0x1a)
cam_i2c_write(cam_iic, device_addr, 0x5884, 0x1d)
cam_i2c_write(cam_iic, device_addr, 0x5885, 0x1e)
cam_i2c_write(cam_iic, device_addr, 0x5886, 0x1a)
cam_i2c_write(cam_iic, device_addr, 0x5887, 0x1a)
cam_i2c_write(cam_iic, device_addr, 0x528a, 0x02)
cam_i2c_write(cam_iic, device_addr, 0x528b, 0x06)
cam_i2c_write(cam_iic, device_addr, 0x528c, 0x20)
cam_i2c_write(cam_iic, device_addr, 0x528d, 0x30)
cam_i2c_write(cam_iic, device_addr, 0x528e, 0x40)
cam_i2c_write(cam_iic, device_addr, 0x528f, 0x50)
cam_i2c_write(cam_iic, device_addr, 0x5290, 0x60)
cam_i2c_write(cam_iic, device_addr, 0x5292, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5293, 0x02)
cam_i2c_write(cam_iic, device_addr, 0x5294, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5295, 0x04)
cam_i2c_write(cam_iic, device_addr, 0x5296, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5297, 0x08)
cam_i2c_write(cam_iic, device_addr, 0x5298, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5299, 0x10)
cam_i2c_write(cam_iic, device_addr, 0x529a, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x529b, 0x20)
cam_i2c_write(cam_iic, device_addr, 0x529c, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x529d, 0x28)
cam_i2c_write(cam_iic, device_addr, 0x529e, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x529f, 0x30)
cam_i2c_write(cam_iic, device_addr, 0x5282, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5680, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5681, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5682, 0x05)
cam_i2c_write(cam_iic, device_addr, 0x5683, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5684, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5685, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5686, 0x03)
cam_i2c_write(cam_iic, device_addr, 0x5687, 0xc0)
cam_i2c_write(cam_iic, device_addr, 0x5180, 0xff)
cam_i2c_write(cam_iic, device_addr, 0x5181, 0x52)
cam_i2c_write(cam_iic, device_addr, 0x5182, 0x11)
cam_i2c_write(cam_iic, device_addr, 0x5183, 0x14)
cam_i2c_write(cam_iic, device_addr, 0x5184, 0x25)
cam_i2c_write(cam_iic, device_addr, 0x5185, 0x24)
cam_i2c_write(cam_iic, device_addr, 0x5186, 0x14)
cam_i2c_write(cam_iic, device_addr, 0x5187, 0x14)
cam_i2c_write(cam_iic, device_addr, 0x5188, 0x14)
cam_i2c_write(cam_iic, device_addr, 0x5189, 0x80)
cam_i2c_write(cam_iic, device_addr, 0x518a, 0x60)
cam_i2c_write(cam_iic, device_addr, 0x518b, 0xa2)
cam_i2c_write(cam_iic, device_addr, 0x518c, 0x9c)
cam_i2c_write(cam_iic, device_addr, 0x518d, 0x36)
cam_i2c_write(cam_iic, device_addr, 0x518e, 0x34)
cam_i2c_write(cam_iic, device_addr, 0x518f, 0x54)
cam_i2c_write(cam_iic, device_addr, 0x5190, 0x4c)
cam_i2c_write(cam_iic, device_addr, 0x5191, 0xf8)
cam_i2c_write(cam_iic, device_addr, 0x5192, 0x04)
cam_i2c_write(cam_iic, device_addr, 0x5193, 0x70)
cam_i2c_write(cam_iic, device_addr, 0x5194, 0xf0)
cam_i2c_write(cam_iic, device_addr, 0x5195, 0xf0)
cam_i2c_write(cam_iic, device_addr, 0x5196, 0x03)
cam_i2c_write(cam_iic, device_addr, 0x5197, 0x01)
cam_i2c_write(cam_iic, device_addr, 0x5198, 0x05)
cam_i2c_write(cam_iic, device_addr, 0x5199, 0x2f)
cam_i2c_write(cam_iic, device_addr, 0x519a, 0x04)
cam_i2c_write(cam_iic, device_addr, 0x519b, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x519c, 0x06)
cam_i2c_write(cam_iic, device_addr, 0x519d, 0xa0)
cam_i2c_write(cam_iic, device_addr, 0x519e, 0xa0)
cam_i2c_write(cam_iic, device_addr, 0x3a0f, 0x3c)
cam_i2c_write(cam_iic, device_addr, 0x3a10, 0x30)
cam_i2c_write(cam_iic, device_addr, 0x3a1b, 0x3c)
cam_i2c_write(cam_iic, device_addr, 0x3a1e, 0x30)
cam_i2c_write(cam_iic, device_addr, 0x3a11, 0x70)
cam_i2c_write(cam_iic, device_addr, 0x3a1f, 0x10)
cam_i2c_write(cam_iic, device_addr, 0x3800, 0x1)
cam_i2c_write(cam_iic, device_addr, 0x3801, 0x50)
cam_i2c_write(cam_iic, device_addr, 0x3802, 0x0)
cam_i2c_write(cam_iic, device_addr, 0x3803, 0x8)
cam_i2c_write(cam_iic, device_addr, 0x3804, 0x5)
cam_i2c_write(cam_iic, device_addr, 0x3805, 0x0)
cam_i2c_write(cam_iic, device_addr, 0x3806, 0x3)
cam_i2c_write(cam_iic, device_addr, 0x3807, 0xc0)
cam_i2c_write(cam_iic, device_addr, 0x3808, 0x3)
cam_i2c_write(cam_iic, device_addr, 0x3809, 0x20)
cam_i2c_write(cam_iic, device_addr, 0x380a, 0x2)
cam_i2c_write(cam_iic, device_addr, 0x380b, 0x58)
cam_i2c_write(cam_iic, device_addr, 0x380c, 0xc)
cam_i2c_write(cam_iic, device_addr, 0x380d, 0x80)
cam_i2c_write(cam_iic, device_addr, 0x380e, 0x3)
cam_i2c_write(cam_iic, device_addr, 0x380f, 0xe8)
cam_i2c_write(cam_iic, device_addr, 0x5001, 0x7f)
cam_i2c_write(cam_iic, device_addr, 0x5680, 0x0)
cam_i2c_write(cam_iic, device_addr, 0x5681, 0x0)
cam_i2c_write(cam_iic, device_addr, 0x5682, 0x5)
cam_i2c_write(cam_iic, device_addr, 0x5683, 0x0)
cam_i2c_write(cam_iic, device_addr, 0x5684, 0x0)
cam_i2c_write(cam_iic, device_addr, 0x5685, 0x0)
cam_i2c_write(cam_iic, device_addr, 0x5686, 0x3)
cam_i2c_write(cam_iic, device_addr, 0x5687, 0xc0)
cam_i2c_write(cam_iic, device_addr, 0x5687, 0xc0)
cam_i2c_write(cam_iic, device_addr, 0x3815, 0x02)
cam_i2c_write(cam_iic, device_addr, 0x3503, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x3818, 0x81) # No Mirror
cam_i2c_write(cam_iic, device_addr, 0x3621, 0xa7)
cam_i2c_write(cam_iic, device_addr, 0x4740, 0x21)
cam_i2c_write(cam_iic, device_addr, 0x501e, 0x2a)
cam_i2c_write(cam_iic, device_addr, 0x5002, 0x78)
cam_i2c_write(cam_iic, device_addr, 0x501f, 0x01)
cam_i2c_write(cam_iic, device_addr, 0x4300, 0x61)
# frame buffer alocate
height = 600
width = 800
buffer0 = allocate(shape=(height, width, 1), dtype=np.uint32, cacheable=1)
buffer1 = allocate(shape=(height, width, 1), dtype=np.uint32, cacheable=1)
buffer2 = allocate(shape=(height, width, 1), dtype=np.uint32, cacheable=1)
# frame buffer resister set
vflip_dmaw.register_map.fb0_1 = buffer0.physical_address
vflip_dmaw.register_map.fb0_2 = 0
vflip_dmaw.register_map.fb1_1 = buffer1.physical_address
vflip_dmaw.register_map.fb1_2 = 0
vflip_dmaw.register_map.fb2_1 = buffer2.physical_address
vflip_dmaw.register_map.fb2_2 = 0
dma2axis3.register_map.fb0 = buffer0.physical_address
dma2axis3.register_map.fb1 = buffer1.physical_address
dma2axis3.register_map.fb2 = buffer2.physical_address
dma2axis3.register_map.mode = 0 # DMA_WRITE_MODE
sobel.register_map.row_size = height
sobel.register_map.col_size = width
sobel.register_map.function_r = 0 # ORG_IMGwAxiVdma
# vflip_dma_write start and auto repeat
vflip_dmaw.register_map.CTRL = 0x81
# Camera Initialization
cam_i2c_init(cam_iic)
cam_reg_set(cam_iic, 0x78)
# paracam_inf_axi start
paracam_inf.write(0x0, 0x0)
paracam_inf.write(0x4, 0x0)
# bitmap_disp_cont start
bmpd_cont.write(0x0, 0x0)
# sobel_axis_RGB24 start
sobel.register_map.CTRL = 0x81
# dma2axis_3buf start and auto repeat
dma2axis3.register_map.CTRL = 0x81
#sobel filter on
sobel.register_map.function_r = 1 # SOBELwAxiVdma
# sobel filter off
sobel.register_map.function_r = 0 # ORG_IMGwAxiVdma
// cam_disp.c
// 2022/08/01 by marsee
// 2022/08/13 : Added Sobel filter.
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include "xil_io.h"
#include "xparameters.h"
#include "xvflip_dma_write.h"
#include "xdma2axis_3buf.h"
#include "xsobel_axis_rgb24.h"
#define CAMERA_DATA_DMA_ADDR0 0x10000000
#define CAMERA_DATA_DMA_ADDR1 0x10200000
#define CAMERA_DATA_DMA_ADDR2 0x10400000
#define HORIZONTAL_PIXELS 800
#define VERTICAL_LINES 600
#define ORG_IMGwAxiVdma 0
#define SOBELwAxiVdma 1
#define ORG_IMGwAxiDma 2
#define SOBELwAxiDma 3
int cam_reg_set(volatile unsigned *axi_iic, unsigned int device_addr);
void cam_i2c_init(volatile uint32_t *ov5642_axi_iic) {
ov5642_axi_iic[64] = 0x2; // reset tx fifo ,address is 0x100, i2c_control_reg
ov5642_axi_iic[64] = 0x1; // enable i2c
}
void cam_i2x_write_sync(void) {
// unsigned c;
// c = *cam_i2c_rx_fifo;
// while ((c & 0x84) != 0x80)
// c = *cam_i2c_rx_fifo; // No Bus Busy and TX_FIFO_Empty = 1
usleep(1000);
}
void cam_i2c_write(volatile uint32_t *ov5642_axi_iic, uint32_t device_addr, uint32_t write_addr, uint32_t write_data){
ov5642_axi_iic[66] = 0x100 | (device_addr & 0xfe); // Slave IIC Write Address, address is 0x108, i2c_tx_fifo
ov5642_axi_iic[66] = (write_addr >> 8) & 0xff; // address upper byte
ov5642_axi_iic[66] = write_addr & 0xff; // address lower byte
ov5642_axi_iic[66] = 0x200 | (write_data & 0xff); // data
cam_i2x_write_sync();
}
int main(){
XVflip_dma_write XVfilp_dma_write_ap;
XDma2axis_3buf XDma2s3b_ap;
XSobel_axis_rgb24 XSobels_ap;
int inbyte_in;
XVflip_dma_write_Initialize(&XVfilp_dma_write_ap, 0);
XDma2axis_3buf_Initialize(&XDma2s3b_ap, 0);
XSobel_axis_rgb24_Initialize(&XSobels_ap, 0);
XVflip_dma_write_Set_fb0(&XVfilp_dma_write_ap, (u32)CAMERA_DATA_DMA_ADDR0);
XVflip_dma_write_Set_fb1(&XVfilp_dma_write_ap, (u32)CAMERA_DATA_DMA_ADDR1);
XVflip_dma_write_Set_fb2(&XVfilp_dma_write_ap, (u32)CAMERA_DATA_DMA_ADDR2);
XDma2axis_3buf_Set_fb0(&XDma2s3b_ap, (u32)CAMERA_DATA_DMA_ADDR0);
XDma2axis_3buf_Set_fb1(&XDma2s3b_ap, (u32)CAMERA_DATA_DMA_ADDR1);
XDma2axis_3buf_Set_fb2(&XDma2s3b_ap, (u32)CAMERA_DATA_DMA_ADDR2);
XDma2axis_3buf_Set_mode(&XDma2s3b_ap, 0); // DMA_WRITE_MODE
// vflip_dma_write start
XVflip_dma_write_Start(&XVfilp_dma_write_ap);
XVflip_dma_write_EnableAutoRestart(&XVfilp_dma_write_ap);
// CMOS Camera initialize, ov5642
cam_i2c_init((volatile uint32_t *)XPAR_AXI_IIC_0_BASEADDR);
cam_reg_set((volatile uint32_t *)(XPAR_AXI_IIC_0_BASEADDR), (uint32_t)0x78); // OV5642 register set
Xil_Out32(XPAR_PARACAM_INF_AXIS_0_BASEADDR, CAMERA_DATA_DMA_ADDR0); // ov5642 AXI4-Stream Start
Xil_Out32((XPAR_PARACAM_INF_AXIS_0_BASEADDR+4), 0);
// bitmap_disp_cont_axis start
Xil_Out32(XPAR_BITMAP_DISP_CONT_AXIS_0_BASEADDR, CAMERA_DATA_DMA_ADDR0); // dummy address, start
// sobel_axis_rgb24 set and start
XSobel_axis_rgb24_Set_row_size(&XSobels_ap, (u32)VERTICAL_LINES);
XSobel_axis_rgb24_Set_col_size(&XSobels_ap, (u32)HORIZONTAL_PIXELS);
XSobel_axis_rgb24_Set_function_r(&XSobels_ap, ORG_IMGwAxiVdma);
XSobel_axis_rgb24_Start(&XSobels_ap);
XSobel_axis_rgb24_EnableAutoRestart(&XSobels_ap);
// DMA2axis start
XDma2axis_3buf_Start(&XDma2s3b_ap);
XDma2axis_3buf_EnableAutoRestart(&XDma2s3b_ap);
while(1){
printf("\nDisplay original camera image = press the 0 key\n");
printf("Display the Sobel filtered image = press the 1 key\n");
printf("press 9 to exit\n");
fflush(stdout);
inbyte_in = inbyte();
if(inbyte_in == 0x39){
break;
} else if(inbyte_in == 0x30){
XSobel_axis_rgb24_Set_function_r(&XSobels_ap, ORG_IMGwAxiVdma);
} else if(inbyte_in == 0x31){
XSobel_axis_rgb24_Set_function_r(&XSobels_ap, SOBELwAxiVdma);
}
}
return(0);
}
int cam_reg_set(volatile unsigned *axi_iic, unsigned int device_addr){
cam_i2c_write(axi_iic, device_addr, 0x3103, 0x93);
cam_i2c_write(axi_iic, device_addr, 0x3008, 0x82);
cam_i2c_write(axi_iic, device_addr, 0x3017, 0x7f);
cam_i2c_write(axi_iic, device_addr, 0x3018, 0xfc);
cam_i2c_write(axi_iic, device_addr, 0x3810, 0xc2);
cam_i2c_write(axi_iic, device_addr, 0x3615, 0xf0);
cam_i2c_write(axi_iic, device_addr, 0x3000, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x3001, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x3002, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x3003, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x3000, 0xf8);
cam_i2c_write(axi_iic, device_addr, 0x3001, 0x48);
cam_i2c_write(axi_iic, device_addr, 0x3002, 0x5c);
cam_i2c_write(axi_iic, device_addr, 0x3003, 0x02);
cam_i2c_write(axi_iic, device_addr, 0x3004, 0x07);
cam_i2c_write(axi_iic, device_addr, 0x3005, 0xb7);
cam_i2c_write(axi_iic, device_addr, 0x3006, 0x43);
cam_i2c_write(axi_iic, device_addr, 0x3007, 0x37);
cam_i2c_write(axi_iic, device_addr, 0x3011, 0x08); // 0x08 - 15fps, 0x10 - 30fps
cam_i2c_write(axi_iic, device_addr, 0x3010, 0x10);
cam_i2c_write(axi_iic, device_addr, 0x460c, 0x22);
cam_i2c_write(axi_iic, device_addr, 0x3815, 0x04);
cam_i2c_write(axi_iic, device_addr, 0x370d, 0x06);
cam_i2c_write(axi_iic, device_addr, 0x370c, 0xa0);
cam_i2c_write(axi_iic, device_addr, 0x3602, 0xfc);
cam_i2c_write(axi_iic, device_addr, 0x3612, 0xff);
cam_i2c_write(axi_iic, device_addr, 0x3634, 0xc0);
cam_i2c_write(axi_iic, device_addr, 0x3613, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x3605, 0x7c);
cam_i2c_write(axi_iic, device_addr, 0x3621, 0x09);
cam_i2c_write(axi_iic, device_addr, 0x3622, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x3604, 0x40);
cam_i2c_write(axi_iic, device_addr, 0x3603, 0xa7);
cam_i2c_write(axi_iic, device_addr, 0x3603, 0x27);
cam_i2c_write(axi_iic, device_addr, 0x4000, 0x21);
cam_i2c_write(axi_iic, device_addr, 0x401d, 0x02);
cam_i2c_write(axi_iic, device_addr, 0x3600, 0x54);
cam_i2c_write(axi_iic, device_addr, 0x3605, 0x04);
cam_i2c_write(axi_iic, device_addr, 0x3606, 0x3f);
cam_i2c_write(axi_iic, device_addr, 0x3c01, 0x80);
cam_i2c_write(axi_iic, device_addr, 0x5000, 0x4f);
cam_i2c_write(axi_iic, device_addr, 0x5020, 0x04);
cam_i2c_write(axi_iic, device_addr, 0x5181, 0x79);
cam_i2c_write(axi_iic, device_addr, 0x5182, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5185, 0x22);
cam_i2c_write(axi_iic, device_addr, 0x5197, 0x01);
cam_i2c_write(axi_iic, device_addr, 0x5001, 0xff);
cam_i2c_write(axi_iic, device_addr, 0x5500, 0x0a);
cam_i2c_write(axi_iic, device_addr, 0x5504, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5505, 0x7f);
cam_i2c_write(axi_iic, device_addr, 0x5080, 0x08);
cam_i2c_write(axi_iic, device_addr, 0x300e, 0x18);
cam_i2c_write(axi_iic, device_addr, 0x4610, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x471d, 0x05);
cam_i2c_write(axi_iic, device_addr, 0x4708, 0x06);
cam_i2c_write(axi_iic, device_addr, 0x3710, 0x10);
cam_i2c_write(axi_iic, device_addr, 0x3632, 0x41);
cam_i2c_write(axi_iic, device_addr, 0x3702, 0x40);
cam_i2c_write(axi_iic, device_addr, 0x3620, 0x37);
cam_i2c_write(axi_iic, device_addr, 0x3631, 0x01);
cam_i2c_write(axi_iic, device_addr, 0x3808, 0x02);
cam_i2c_write(axi_iic, device_addr, 0x3809, 0x80);
cam_i2c_write(axi_iic, device_addr, 0x380a, 0x01);
cam_i2c_write(axi_iic, device_addr, 0x380b, 0xe0);
cam_i2c_write(axi_iic, device_addr, 0x380e, 0x07);
cam_i2c_write(axi_iic, device_addr, 0x380f, 0xd0);
cam_i2c_write(axi_iic, device_addr, 0x501f, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5000, 0x4f);
cam_i2c_write(axi_iic, device_addr, 0x4300, 0x61); // RGB565
cam_i2c_write(axi_iic, device_addr, 0x3503, 0x07);
cam_i2c_write(axi_iic, device_addr, 0x3501, 0x73);
cam_i2c_write(axi_iic, device_addr, 0x3502, 0x80);
cam_i2c_write(axi_iic, device_addr, 0x350b, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x3503, 0x07);
cam_i2c_write(axi_iic, device_addr, 0x3824, 0x11);
cam_i2c_write(axi_iic, device_addr, 0x3501, 0x1e);
cam_i2c_write(axi_iic, device_addr, 0x3502, 0x80);
cam_i2c_write(axi_iic, device_addr, 0x350b, 0x7f);
cam_i2c_write(axi_iic, device_addr, 0x380c, 0x0c);
cam_i2c_write(axi_iic, device_addr, 0x380d, 0x80);
cam_i2c_write(axi_iic, device_addr, 0x380e, 0x03);
cam_i2c_write(axi_iic, device_addr, 0x380f, 0xe8);
cam_i2c_write(axi_iic, device_addr, 0x3a0d, 0x04);
cam_i2c_write(axi_iic, device_addr, 0x3a0e, 0x03);
cam_i2c_write(axi_iic, device_addr, 0x3818, 0xc1);
cam_i2c_write(axi_iic, device_addr, 0x3705, 0xdb);
cam_i2c_write(axi_iic, device_addr, 0x370a, 0x81);
cam_i2c_write(axi_iic, device_addr, 0x3801, 0x80);
cam_i2c_write(axi_iic, device_addr, 0x3621, 0xc7);
cam_i2c_write(axi_iic, device_addr, 0x3801, 0x50);
cam_i2c_write(axi_iic, device_addr, 0x3803, 0x08);
cam_i2c_write(axi_iic, device_addr, 0x3827, 0x08);
cam_i2c_write(axi_iic, device_addr, 0x3810, 0xc0);
cam_i2c_write(axi_iic, device_addr, 0x3804, 0x05);
cam_i2c_write(axi_iic, device_addr, 0x3805, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5682, 0x05);
cam_i2c_write(axi_iic, device_addr, 0x5683, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x3806, 0x03);
cam_i2c_write(axi_iic, device_addr, 0x3807, 0xc0);
cam_i2c_write(axi_iic, device_addr, 0x5686, 0x03);
cam_i2c_write(axi_iic, device_addr, 0x5687, 0xc0);
cam_i2c_write(axi_iic, device_addr, 0x3a00, 0x78);
cam_i2c_write(axi_iic, device_addr, 0x3a1a, 0x04);
cam_i2c_write(axi_iic, device_addr, 0x3a13, 0x30);
cam_i2c_write(axi_iic, device_addr, 0x3a18, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x3a19, 0x7c);
cam_i2c_write(axi_iic, device_addr, 0x3a08, 0x12);
cam_i2c_write(axi_iic, device_addr, 0x3a09, 0xc0);
cam_i2c_write(axi_iic, device_addr, 0x3a0a, 0x0f);
cam_i2c_write(axi_iic, device_addr, 0x3a0b, 0xa0);
cam_i2c_write(axi_iic, device_addr, 0x3004, 0xff);
cam_i2c_write(axi_iic, device_addr, 0x350c, 0x07);
cam_i2c_write(axi_iic, device_addr, 0x350d, 0xd0);
cam_i2c_write(axi_iic, device_addr, 0x3500, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x3501, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x3502, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x350a, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x350b, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x3503, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x528a, 0x02);
cam_i2c_write(axi_iic, device_addr, 0x528b, 0x04);
cam_i2c_write(axi_iic, device_addr, 0x528c, 0x08);
cam_i2c_write(axi_iic, device_addr, 0x528d, 0x08);
cam_i2c_write(axi_iic, device_addr, 0x528e, 0x08);
cam_i2c_write(axi_iic, device_addr, 0x528f, 0x10);
cam_i2c_write(axi_iic, device_addr, 0x5290, 0x10);
cam_i2c_write(axi_iic, device_addr, 0x5292, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5293, 0x02);
cam_i2c_write(axi_iic, device_addr, 0x5294, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5295, 0x02);
cam_i2c_write(axi_iic, device_addr, 0x5296, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5297, 0x02);
cam_i2c_write(axi_iic, device_addr, 0x5298, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5299, 0x02);
cam_i2c_write(axi_iic, device_addr, 0x529a, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x529b, 0x02);
cam_i2c_write(axi_iic, device_addr, 0x529c, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x529d, 0x02);
cam_i2c_write(axi_iic, device_addr, 0x529e, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x529f, 0x02);
cam_i2c_write(axi_iic, device_addr, 0x3a0f, 0x3c);
cam_i2c_write(axi_iic, device_addr, 0x3a10, 0x30);
cam_i2c_write(axi_iic, device_addr, 0x3a1b, 0x3c);
cam_i2c_write(axi_iic, device_addr, 0x3a1e, 0x30);
cam_i2c_write(axi_iic, device_addr, 0x3a11, 0x70);
cam_i2c_write(axi_iic, device_addr, 0x3a1f, 0x10);
cam_i2c_write(axi_iic, device_addr, 0x3030, 0x0b);
cam_i2c_write(axi_iic, device_addr, 0x3a02, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x3a03, 0x7d);
cam_i2c_write(axi_iic, device_addr, 0x3a04, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x3a14, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x3a15, 0x7d);
cam_i2c_write(axi_iic, device_addr, 0x3a16, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x3a00, 0x78);
cam_i2c_write(axi_iic, device_addr, 0x3a08, 0x09);
cam_i2c_write(axi_iic, device_addr, 0x3a09, 0x60);
cam_i2c_write(axi_iic, device_addr, 0x3a0a, 0x07);
cam_i2c_write(axi_iic, device_addr, 0x3a0b, 0xd0);
cam_i2c_write(axi_iic, device_addr, 0x3a0d, 0x08);
cam_i2c_write(axi_iic, device_addr, 0x3a0e, 0x06);
cam_i2c_write(axi_iic, device_addr, 0x5193, 0x70);
cam_i2c_write(axi_iic, device_addr, 0x3620, 0x57);
cam_i2c_write(axi_iic, device_addr, 0x3703, 0x98);
cam_i2c_write(axi_iic, device_addr, 0x3704, 0x1c);
cam_i2c_write(axi_iic, device_addr, 0x589b, 0x04);
cam_i2c_write(axi_iic, device_addr, 0x589a, 0xc5);
cam_i2c_write(axi_iic, device_addr, 0x528a, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x528b, 0x02);
cam_i2c_write(axi_iic, device_addr, 0x528c, 0x08);
cam_i2c_write(axi_iic, device_addr, 0x528d, 0x10);
cam_i2c_write(axi_iic, device_addr, 0x528e, 0x20);
cam_i2c_write(axi_iic, device_addr, 0x528f, 0x28);
cam_i2c_write(axi_iic, device_addr, 0x5290, 0x30);
cam_i2c_write(axi_iic, device_addr, 0x5292, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5293, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5294, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5295, 0x02);
cam_i2c_write(axi_iic, device_addr, 0x5296, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5297, 0x08);
cam_i2c_write(axi_iic, device_addr, 0x5298, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5299, 0x10);
cam_i2c_write(axi_iic, device_addr, 0x529a, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x529b, 0x20);
cam_i2c_write(axi_iic, device_addr, 0x529c, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x529d, 0x28);
cam_i2c_write(axi_iic, device_addr, 0x529e, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x529f, 0x30);
cam_i2c_write(axi_iic, device_addr, 0x5282, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5300, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5301, 0x20);
cam_i2c_write(axi_iic, device_addr, 0x5302, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5303, 0x7c);
cam_i2c_write(axi_iic, device_addr, 0x530c, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x530d, 0x0c);
cam_i2c_write(axi_iic, device_addr, 0x530e, 0x20);
cam_i2c_write(axi_iic, device_addr, 0x530f, 0x80);
cam_i2c_write(axi_iic, device_addr, 0x5310, 0x20);
cam_i2c_write(axi_iic, device_addr, 0x5311, 0x80);
cam_i2c_write(axi_iic, device_addr, 0x5308, 0x20);
cam_i2c_write(axi_iic, device_addr, 0x5309, 0x40);
cam_i2c_write(axi_iic, device_addr, 0x5304, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5305, 0x30);
cam_i2c_write(axi_iic, device_addr, 0x5306, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5307, 0x80);
cam_i2c_write(axi_iic, device_addr, 0x5314, 0x08);
cam_i2c_write(axi_iic, device_addr, 0x5315, 0x20);
cam_i2c_write(axi_iic, device_addr, 0x5319, 0x30);
cam_i2c_write(axi_iic, device_addr, 0x5316, 0x10);
cam_i2c_write(axi_iic, device_addr, 0x5317, 0x08);
cam_i2c_write(axi_iic, device_addr, 0x5318, 0x02);
cam_i2c_write(axi_iic, device_addr, 0x5380, 0x01);
cam_i2c_write(axi_iic, device_addr, 0x5381, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5382, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5383, 0x4e);
cam_i2c_write(axi_iic, device_addr, 0x5384, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5385, 0x0f);
cam_i2c_write(axi_iic, device_addr, 0x5386, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5387, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5388, 0x01);
cam_i2c_write(axi_iic, device_addr, 0x5389, 0x15);
cam_i2c_write(axi_iic, device_addr, 0x538a, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x538b, 0x31);
cam_i2c_write(axi_iic, device_addr, 0x538c, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x538d, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x538e, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x538f, 0x0f);
cam_i2c_write(axi_iic, device_addr, 0x5390, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5391, 0xab);
cam_i2c_write(axi_iic, device_addr, 0x5392, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5393, 0xa2);
cam_i2c_write(axi_iic, device_addr, 0x5394, 0x08);
cam_i2c_write(axi_iic, device_addr, 0x5480, 0x14);
cam_i2c_write(axi_iic, device_addr, 0x5481, 0x21);
cam_i2c_write(axi_iic, device_addr, 0x5482, 0x36);
cam_i2c_write(axi_iic, device_addr, 0x5483, 0x57);
cam_i2c_write(axi_iic, device_addr, 0x5484, 0x65);
cam_i2c_write(axi_iic, device_addr, 0x5485, 0x71);
cam_i2c_write(axi_iic, device_addr, 0x5486, 0x7d);
cam_i2c_write(axi_iic, device_addr, 0x5487, 0x87);
cam_i2c_write(axi_iic, device_addr, 0x5488, 0x91);
cam_i2c_write(axi_iic, device_addr, 0x5489, 0x9a);
cam_i2c_write(axi_iic, device_addr, 0x548a, 0xaa);
cam_i2c_write(axi_iic, device_addr, 0x548b, 0xb8);
cam_i2c_write(axi_iic, device_addr, 0x548c, 0xcd);
cam_i2c_write(axi_iic, device_addr, 0x548d, 0xdd);
cam_i2c_write(axi_iic, device_addr, 0x548e, 0xea);
cam_i2c_write(axi_iic, device_addr, 0x548f, 0x10);
cam_i2c_write(axi_iic, device_addr, 0x5490, 0x05);
cam_i2c_write(axi_iic, device_addr, 0x5491, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5492, 0x04);
cam_i2c_write(axi_iic, device_addr, 0x5493, 0x20);
cam_i2c_write(axi_iic, device_addr, 0x5494, 0x03);
cam_i2c_write(axi_iic, device_addr, 0x5495, 0x60);
cam_i2c_write(axi_iic, device_addr, 0x5496, 0x02);
cam_i2c_write(axi_iic, device_addr, 0x5497, 0xb8);
cam_i2c_write(axi_iic, device_addr, 0x5498, 0x02);
cam_i2c_write(axi_iic, device_addr, 0x5499, 0x86);
cam_i2c_write(axi_iic, device_addr, 0x549a, 0x02);
cam_i2c_write(axi_iic, device_addr, 0x549b, 0x5b);
cam_i2c_write(axi_iic, device_addr, 0x549c, 0x02);
cam_i2c_write(axi_iic, device_addr, 0x549d, 0x3b);
cam_i2c_write(axi_iic, device_addr, 0x549e, 0x02);
cam_i2c_write(axi_iic, device_addr, 0x549f, 0x1c);
cam_i2c_write(axi_iic, device_addr, 0x54a0, 0x02);
cam_i2c_write(axi_iic, device_addr, 0x54a1, 0x04);
cam_i2c_write(axi_iic, device_addr, 0x54a2, 0x01);
cam_i2c_write(axi_iic, device_addr, 0x54a3, 0xed);
cam_i2c_write(axi_iic, device_addr, 0x54a4, 0x01);
cam_i2c_write(axi_iic, device_addr, 0x54a5, 0xc5);
cam_i2c_write(axi_iic, device_addr, 0x54a6, 0x01);
cam_i2c_write(axi_iic, device_addr, 0x54a7, 0xa5);
cam_i2c_write(axi_iic, device_addr, 0x54a8, 0x01);
cam_i2c_write(axi_iic, device_addr, 0x54a9, 0x6c);
cam_i2c_write(axi_iic, device_addr, 0x54aa, 0x01);
cam_i2c_write(axi_iic, device_addr, 0x54ab, 0x41);
cam_i2c_write(axi_iic, device_addr, 0x54ac, 0x01);
cam_i2c_write(axi_iic, device_addr, 0x54ad, 0x20);
cam_i2c_write(axi_iic, device_addr, 0x54ae, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x54af, 0x16);
cam_i2c_write(axi_iic, device_addr, 0x3406, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5192, 0x04); // 0x04
cam_i2c_write(axi_iic, device_addr, 0x5191, 0xf8); // 0xf8
cam_i2c_write(axi_iic, device_addr, 0x5193, 0x70);
cam_i2c_write(axi_iic, device_addr, 0x5194, 0xf0);
cam_i2c_write(axi_iic, device_addr, 0x5195, 0xf0);
cam_i2c_write(axi_iic, device_addr, 0x518d, 0x3d);
cam_i2c_write(axi_iic, device_addr, 0x518f, 0x54);
cam_i2c_write(axi_iic, device_addr, 0x518e, 0x3d);
cam_i2c_write(axi_iic, device_addr, 0x5190, 0x54);
cam_i2c_write(axi_iic, device_addr, 0x518b, 0xc0);
cam_i2c_write(axi_iic, device_addr, 0x518c, 0xbd);
cam_i2c_write(axi_iic, device_addr, 0x5187, 0x18);
cam_i2c_write(axi_iic, device_addr, 0x5188, 0x18);
cam_i2c_write(axi_iic, device_addr, 0x5189, 0x6e);
cam_i2c_write(axi_iic, device_addr, 0x518a, 0x68);
cam_i2c_write(axi_iic, device_addr, 0x5186, 0x1c);
cam_i2c_write(axi_iic, device_addr, 0x5181, 0x50);
cam_i2c_write(axi_iic, device_addr, 0x5184, 0x25);
cam_i2c_write(axi_iic, device_addr, 0x5182, 0x11);
cam_i2c_write(axi_iic, device_addr, 0x5183, 0x14);
cam_i2c_write(axi_iic, device_addr, 0x5184, 0x25);
cam_i2c_write(axi_iic, device_addr, 0x5185, 0x24);
cam_i2c_write(axi_iic, device_addr, 0x5025, 0x82);
cam_i2c_write(axi_iic, device_addr, 0x5583, 0x40);
cam_i2c_write(axi_iic, device_addr, 0x5584, 0x40);
cam_i2c_write(axi_iic, device_addr, 0x5580, 0x02); // 0x02
cam_i2c_write(axi_iic, device_addr, 0x3633, 0x07);
cam_i2c_write(axi_iic, device_addr, 0x3702, 0x10);
cam_i2c_write(axi_iic, device_addr, 0x3703, 0xb2);
cam_i2c_write(axi_iic, device_addr, 0x3704, 0x18);
cam_i2c_write(axi_iic, device_addr, 0x370b, 0x40);
cam_i2c_write(axi_iic, device_addr, 0x370d, 0x02);
cam_i2c_write(axi_iic, device_addr, 0x3620, 0x52);
cam_i2c_write(axi_iic, device_addr, 0x3c00, 0x04);
cam_i2c_write(axi_iic, device_addr, 0x5001, 0xFF);
cam_i2c_write(axi_iic, device_addr, 0x5282, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5300, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5301, 0x20);
cam_i2c_write(axi_iic, device_addr, 0x5302, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5303, 0x7c);
cam_i2c_write(axi_iic, device_addr, 0x530c, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x530d, 0x10);
cam_i2c_write(axi_iic, device_addr, 0x530e, 0x20);
cam_i2c_write(axi_iic, device_addr, 0x530f, 0x80);
cam_i2c_write(axi_iic, device_addr, 0x5310, 0x20);
cam_i2c_write(axi_iic, device_addr, 0x5311, 0x80);
cam_i2c_write(axi_iic, device_addr, 0x5308, 0x20);
cam_i2c_write(axi_iic, device_addr, 0x5309, 0x40);
cam_i2c_write(axi_iic, device_addr, 0x5304, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5305, 0x30);
cam_i2c_write(axi_iic, device_addr, 0x5306, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5307, 0x80);
cam_i2c_write(axi_iic, device_addr, 0x5314, 0x08);
cam_i2c_write(axi_iic, device_addr, 0x5315, 0x20);
cam_i2c_write(axi_iic, device_addr, 0x5319, 0x30);
cam_i2c_write(axi_iic, device_addr, 0x5316, 0x10);
cam_i2c_write(axi_iic, device_addr, 0x5317, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5318, 0x02);
cam_i2c_write(axi_iic, device_addr, 0x5500, 0x10);
cam_i2c_write(axi_iic, device_addr, 0x5502, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5503, 0x06);
cam_i2c_write(axi_iic, device_addr, 0x5504, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5505, 0x7f);
cam_i2c_write(axi_iic, device_addr, 0x5025, 0x80);
cam_i2c_write(axi_iic, device_addr, 0x5300, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5301, 0x20);
cam_i2c_write(axi_iic, device_addr, 0x5302, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5303, 0x7c);
cam_i2c_write(axi_iic, device_addr, 0x530c, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x530d, 0x0c);
cam_i2c_write(axi_iic, device_addr, 0x530e, 0x20);
cam_i2c_write(axi_iic, device_addr, 0x530f, 0x80);
cam_i2c_write(axi_iic, device_addr, 0x5310, 0x20);
cam_i2c_write(axi_iic, device_addr, 0x5311, 0x80);
cam_i2c_write(axi_iic, device_addr, 0x5308, 0x20);
cam_i2c_write(axi_iic, device_addr, 0x5309, 0x40);
cam_i2c_write(axi_iic, device_addr, 0x5304, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5305, 0x30);
cam_i2c_write(axi_iic, device_addr, 0x5306, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5307, 0x80);
cam_i2c_write(axi_iic, device_addr, 0x5314, 0x08);
cam_i2c_write(axi_iic, device_addr, 0x5315, 0x20);
cam_i2c_write(axi_iic, device_addr, 0x5319, 0x30);
cam_i2c_write(axi_iic, device_addr, 0x5316, 0x10);
cam_i2c_write(axi_iic, device_addr, 0x5317, 0x08);
cam_i2c_write(axi_iic, device_addr, 0x5318, 0x02);
cam_i2c_write(axi_iic, device_addr, 0x5380, 0x01);
cam_i2c_write(axi_iic, device_addr, 0x5381, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5382, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5383, 0x1f);
cam_i2c_write(axi_iic, device_addr, 0x5384, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5385, 0x06);
cam_i2c_write(axi_iic, device_addr, 0x5386, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5387, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5388, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5389, 0xE1);
cam_i2c_write(axi_iic, device_addr, 0x538A, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x538B, 0x2B);
cam_i2c_write(axi_iic, device_addr, 0x538C, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x538D, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x538E, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x538F, 0x10);
cam_i2c_write(axi_iic, device_addr, 0x5390, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5391, 0xB3);
cam_i2c_write(axi_iic, device_addr, 0x5392, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5393, 0xA6);
cam_i2c_write(axi_iic, device_addr, 0x5394, 0x08);
cam_i2c_write(axi_iic, device_addr, 0x5480, 0xd);
cam_i2c_write(axi_iic, device_addr, 0x5481, 0x18);
cam_i2c_write(axi_iic, device_addr, 0x5482, 0x2a);
cam_i2c_write(axi_iic, device_addr, 0x5483, 0x49);
cam_i2c_write(axi_iic, device_addr, 0x5484, 0x56);
cam_i2c_write(axi_iic, device_addr, 0x5485, 0x62);
cam_i2c_write(axi_iic, device_addr, 0x5486, 0x6c);
cam_i2c_write(axi_iic, device_addr, 0x5487, 0x76);
cam_i2c_write(axi_iic, device_addr, 0x5488, 0x80);
cam_i2c_write(axi_iic, device_addr, 0x5489, 0x88);
cam_i2c_write(axi_iic, device_addr, 0x548a, 0x96);
cam_i2c_write(axi_iic, device_addr, 0x548b, 0xa2);
cam_i2c_write(axi_iic, device_addr, 0x548c, 0xb8);
cam_i2c_write(axi_iic, device_addr, 0x548d, 0xcc);
cam_i2c_write(axi_iic, device_addr, 0x548e, 0xe0);
cam_i2c_write(axi_iic, device_addr, 0x548f, 0x10);
cam_i2c_write(axi_iic, device_addr, 0x5490, 0x3);
cam_i2c_write(axi_iic, device_addr, 0x5491, 0x40);
cam_i2c_write(axi_iic, device_addr, 0x5492, 0x3);
cam_i2c_write(axi_iic, device_addr, 0x5493, 0x0);
cam_i2c_write(axi_iic, device_addr, 0x5494, 0x2);
cam_i2c_write(axi_iic, device_addr, 0x5495, 0xa0);
cam_i2c_write(axi_iic, device_addr, 0x5496, 0x2);
cam_i2c_write(axi_iic, device_addr, 0x5497, 0x48);
cam_i2c_write(axi_iic, device_addr, 0x5498, 0x2);
cam_i2c_write(axi_iic, device_addr, 0x5499, 0x26);
cam_i2c_write(axi_iic, device_addr, 0x549a, 0x2);
cam_i2c_write(axi_iic, device_addr, 0x549b, 0xb);
cam_i2c_write(axi_iic, device_addr, 0x549c, 0x1);
cam_i2c_write(axi_iic, device_addr, 0x549d, 0xee);
cam_i2c_write(axi_iic, device_addr, 0x549e, 0x1);
cam_i2c_write(axi_iic, device_addr, 0x549f, 0xd8);
cam_i2c_write(axi_iic, device_addr, 0x54a0, 0x1);
cam_i2c_write(axi_iic, device_addr, 0x54a1, 0xc7);
cam_i2c_write(axi_iic, device_addr, 0x54a2, 0x1);
cam_i2c_write(axi_iic, device_addr, 0x54a3, 0xb3);
cam_i2c_write(axi_iic, device_addr, 0x54a4, 0x1);
cam_i2c_write(axi_iic, device_addr, 0x54a5, 0x90);
cam_i2c_write(axi_iic, device_addr, 0x54a6, 0x1);
cam_i2c_write(axi_iic, device_addr, 0x54a7, 0x62);
cam_i2c_write(axi_iic, device_addr, 0x54a8, 0x1);
cam_i2c_write(axi_iic, device_addr, 0x54a9, 0x27);
cam_i2c_write(axi_iic, device_addr, 0x54aa, 0x01);
cam_i2c_write(axi_iic, device_addr, 0x54ab, 0x09);
cam_i2c_write(axi_iic, device_addr, 0x54ac, 0x01);
cam_i2c_write(axi_iic, device_addr, 0x54ad, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x54ae, 0x0);
cam_i2c_write(axi_iic, device_addr, 0x54af, 0x40);
cam_i2c_write(axi_iic, device_addr, 0x54b0, 0x1);
cam_i2c_write(axi_iic, device_addr, 0x54b1, 0x20);
cam_i2c_write(axi_iic, device_addr, 0x54b2, 0x1);
cam_i2c_write(axi_iic, device_addr, 0x54b3, 0x40);
cam_i2c_write(axi_iic, device_addr, 0x54b4, 0x0);
cam_i2c_write(axi_iic, device_addr, 0x54b5, 0xf0);
cam_i2c_write(axi_iic, device_addr, 0x54b6, 0x1);
cam_i2c_write(axi_iic, device_addr, 0x54b7, 0xdf);
cam_i2c_write(axi_iic, device_addr, 0x5583, 0x5d);
cam_i2c_write(axi_iic, device_addr, 0x5584, 0x5d);
cam_i2c_write(axi_iic, device_addr, 0x5580, 0x06);
cam_i2c_write(axi_iic, device_addr, 0x5587, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5588, 0x20);
cam_i2c_write(axi_iic, device_addr, 0x558a, 0x09);
cam_i2c_write(axi_iic, device_addr, 0x5589, 0x10);
cam_i2c_write(axi_iic, device_addr, 0x5000, 0xcf);
cam_i2c_write(axi_iic, device_addr, 0x5800, 0x48);
cam_i2c_write(axi_iic, device_addr, 0x5801, 0x31);
cam_i2c_write(axi_iic, device_addr, 0x5802, 0x21);
cam_i2c_write(axi_iic, device_addr, 0x5803, 0x1b);
cam_i2c_write(axi_iic, device_addr, 0x5804, 0x1a);
cam_i2c_write(axi_iic, device_addr, 0x5805, 0x1e);
cam_i2c_write(axi_iic, device_addr, 0x5806, 0x29);
cam_i2c_write(axi_iic, device_addr, 0x5807, 0x38);
cam_i2c_write(axi_iic, device_addr, 0x5808, 0x26);
cam_i2c_write(axi_iic, device_addr, 0x5809, 0x17);
cam_i2c_write(axi_iic, device_addr, 0x580a, 0x11);
cam_i2c_write(axi_iic, device_addr, 0x580b, 0xe);
cam_i2c_write(axi_iic, device_addr, 0x580c, 0xd);
cam_i2c_write(axi_iic, device_addr, 0x580d, 0xe);
cam_i2c_write(axi_iic, device_addr, 0x580e, 0x13);
cam_i2c_write(axi_iic, device_addr, 0x580f, 0x1a);
cam_i2c_write(axi_iic, device_addr, 0x5810, 0x15);
cam_i2c_write(axi_iic, device_addr, 0x5811, 0xd);
cam_i2c_write(axi_iic, device_addr, 0x5812, 0x8);
cam_i2c_write(axi_iic, device_addr, 0x5813, 0x5);
cam_i2c_write(axi_iic, device_addr, 0x5814, 0x4);
cam_i2c_write(axi_iic, device_addr, 0x5815, 0x5);
cam_i2c_write(axi_iic, device_addr, 0x5816, 0x9);
cam_i2c_write(axi_iic, device_addr, 0x5817, 0xd);
cam_i2c_write(axi_iic, device_addr, 0x5818, 0x11);
cam_i2c_write(axi_iic, device_addr, 0x5819, 0xa);
cam_i2c_write(axi_iic, device_addr, 0x581a, 0x4);
cam_i2c_write(axi_iic, device_addr, 0x581b, 0x0);
cam_i2c_write(axi_iic, device_addr, 0x581c, 0x0);
cam_i2c_write(axi_iic, device_addr, 0x581d, 0x1);
cam_i2c_write(axi_iic, device_addr, 0x581e, 0x6);
cam_i2c_write(axi_iic, device_addr, 0x581f, 0x9);
cam_i2c_write(axi_iic, device_addr, 0x5820, 0x12);
cam_i2c_write(axi_iic, device_addr, 0x5821, 0xb);
cam_i2c_write(axi_iic, device_addr, 0x5822, 0x4);
cam_i2c_write(axi_iic, device_addr, 0x5823, 0x0);
cam_i2c_write(axi_iic, device_addr, 0x5824, 0x0);
cam_i2c_write(axi_iic, device_addr, 0x5825, 0x1);
cam_i2c_write(axi_iic, device_addr, 0x5826, 0x6);
cam_i2c_write(axi_iic, device_addr, 0x5827, 0xa);
cam_i2c_write(axi_iic, device_addr, 0x5828, 0x17);
cam_i2c_write(axi_iic, device_addr, 0x5829, 0xf);
cam_i2c_write(axi_iic, device_addr, 0x582a, 0x9);
cam_i2c_write(axi_iic, device_addr, 0x582b, 0x6);
cam_i2c_write(axi_iic, device_addr, 0x582c, 0x5);
cam_i2c_write(axi_iic, device_addr, 0x582d, 0x6);
cam_i2c_write(axi_iic, device_addr, 0x582e, 0xa);
cam_i2c_write(axi_iic, device_addr, 0x582f, 0xe);
cam_i2c_write(axi_iic, device_addr, 0x5830, 0x28);
cam_i2c_write(axi_iic, device_addr, 0x5831, 0x1a);
cam_i2c_write(axi_iic, device_addr, 0x5832, 0x11);
cam_i2c_write(axi_iic, device_addr, 0x5833, 0xe);
cam_i2c_write(axi_iic, device_addr, 0x5834, 0xe);
cam_i2c_write(axi_iic, device_addr, 0x5835, 0xf);
cam_i2c_write(axi_iic, device_addr, 0x5836, 0x15);
cam_i2c_write(axi_iic, device_addr, 0x5837, 0x1d);
cam_i2c_write(axi_iic, device_addr, 0x5838, 0x6e);
cam_i2c_write(axi_iic, device_addr, 0x5839, 0x39);
cam_i2c_write(axi_iic, device_addr, 0x583a, 0x27);
cam_i2c_write(axi_iic, device_addr, 0x583b, 0x1f);
cam_i2c_write(axi_iic, device_addr, 0x583c, 0x1e);
cam_i2c_write(axi_iic, device_addr, 0x583d, 0x23);
cam_i2c_write(axi_iic, device_addr, 0x583e, 0x2f);
cam_i2c_write(axi_iic, device_addr, 0x583f, 0x41);
cam_i2c_write(axi_iic, device_addr, 0x5840, 0xe);
cam_i2c_write(axi_iic, device_addr, 0x5841, 0xc);
cam_i2c_write(axi_iic, device_addr, 0x5842, 0xd);
cam_i2c_write(axi_iic, device_addr, 0x5843, 0xc);
cam_i2c_write(axi_iic, device_addr, 0x5844, 0xc);
cam_i2c_write(axi_iic, device_addr, 0x5845, 0xc);
cam_i2c_write(axi_iic, device_addr, 0x5846, 0xc);
cam_i2c_write(axi_iic, device_addr, 0x5847, 0xc);
cam_i2c_write(axi_iic, device_addr, 0x5848, 0xd);
cam_i2c_write(axi_iic, device_addr, 0x5849, 0xe);
cam_i2c_write(axi_iic, device_addr, 0x584a, 0xe);
cam_i2c_write(axi_iic, device_addr, 0x584b, 0xa);
cam_i2c_write(axi_iic, device_addr, 0x584c, 0xe);
cam_i2c_write(axi_iic, device_addr, 0x584d, 0xe);
cam_i2c_write(axi_iic, device_addr, 0x584e, 0x10);
cam_i2c_write(axi_iic, device_addr, 0x584f, 0x10);
cam_i2c_write(axi_iic, device_addr, 0x5850, 0x11);
cam_i2c_write(axi_iic, device_addr, 0x5851, 0xa);
cam_i2c_write(axi_iic, device_addr, 0x5852, 0xf);
cam_i2c_write(axi_iic, device_addr, 0x5853, 0xe);
cam_i2c_write(axi_iic, device_addr, 0x5854, 0x10);
cam_i2c_write(axi_iic, device_addr, 0x5855, 0x10);
cam_i2c_write(axi_iic, device_addr, 0x5856, 0x10);
cam_i2c_write(axi_iic, device_addr, 0x5857, 0xa);
cam_i2c_write(axi_iic, device_addr, 0x5858, 0xe);
cam_i2c_write(axi_iic, device_addr, 0x5859, 0xe);
cam_i2c_write(axi_iic, device_addr, 0x585a, 0xf);
cam_i2c_write(axi_iic, device_addr, 0x585b, 0xf);
cam_i2c_write(axi_iic, device_addr, 0x585c, 0xf);
cam_i2c_write(axi_iic, device_addr, 0x585d, 0xa);
cam_i2c_write(axi_iic, device_addr, 0x585e, 0x9);
cam_i2c_write(axi_iic, device_addr, 0x585f, 0xd);
cam_i2c_write(axi_iic, device_addr, 0x5860, 0xc);
cam_i2c_write(axi_iic, device_addr, 0x5861, 0xb);
cam_i2c_write(axi_iic, device_addr, 0x5862, 0xd);
cam_i2c_write(axi_iic, device_addr, 0x5863, 0x7);
cam_i2c_write(axi_iic, device_addr, 0x5864, 0x17);
cam_i2c_write(axi_iic, device_addr, 0x5865, 0x14);
cam_i2c_write(axi_iic, device_addr, 0x5866, 0x18);
cam_i2c_write(axi_iic, device_addr, 0x5867, 0x18);
cam_i2c_write(axi_iic, device_addr, 0x5868, 0x16);
cam_i2c_write(axi_iic, device_addr, 0x5869, 0x12);
cam_i2c_write(axi_iic, device_addr, 0x586a, 0x1b);
cam_i2c_write(axi_iic, device_addr, 0x586b, 0x1a);
cam_i2c_write(axi_iic, device_addr, 0x586c, 0x16);
cam_i2c_write(axi_iic, device_addr, 0x586d, 0x16);
cam_i2c_write(axi_iic, device_addr, 0x586e, 0x18);
cam_i2c_write(axi_iic, device_addr, 0x586f, 0x1f);
cam_i2c_write(axi_iic, device_addr, 0x5870, 0x1c);
cam_i2c_write(axi_iic, device_addr, 0x5871, 0x16);
cam_i2c_write(axi_iic, device_addr, 0x5872, 0x10);
cam_i2c_write(axi_iic, device_addr, 0x5873, 0xf);
cam_i2c_write(axi_iic, device_addr, 0x5874, 0x13);
cam_i2c_write(axi_iic, device_addr, 0x5875, 0x1c);
cam_i2c_write(axi_iic, device_addr, 0x5876, 0x1e);
cam_i2c_write(axi_iic, device_addr, 0x5877, 0x17);
cam_i2c_write(axi_iic, device_addr, 0x5878, 0x11);
cam_i2c_write(axi_iic, device_addr, 0x5879, 0x11);
cam_i2c_write(axi_iic, device_addr, 0x587a, 0x14);
cam_i2c_write(axi_iic, device_addr, 0x587b, 0x1e);
cam_i2c_write(axi_iic, device_addr, 0x587c, 0x1c);
cam_i2c_write(axi_iic, device_addr, 0x587d, 0x1c);
cam_i2c_write(axi_iic, device_addr, 0x587e, 0x1a);
cam_i2c_write(axi_iic, device_addr, 0x587f, 0x1a);
cam_i2c_write(axi_iic, device_addr, 0x5880, 0x1b);
cam_i2c_write(axi_iic, device_addr, 0x5881, 0x1f);
cam_i2c_write(axi_iic, device_addr, 0x5882, 0x14);
cam_i2c_write(axi_iic, device_addr, 0x5883, 0x1a);
cam_i2c_write(axi_iic, device_addr, 0x5884, 0x1d);
cam_i2c_write(axi_iic, device_addr, 0x5885, 0x1e);
cam_i2c_write(axi_iic, device_addr, 0x5886, 0x1a);
cam_i2c_write(axi_iic, device_addr, 0x5887, 0x1a);
cam_i2c_write(axi_iic, device_addr, 0x528a, 0x02);
cam_i2c_write(axi_iic, device_addr, 0x528b, 0x06);
cam_i2c_write(axi_iic, device_addr, 0x528c, 0x20);
cam_i2c_write(axi_iic, device_addr, 0x528d, 0x30);
cam_i2c_write(axi_iic, device_addr, 0x528e, 0x40);
cam_i2c_write(axi_iic, device_addr, 0x528f, 0x50);
cam_i2c_write(axi_iic, device_addr, 0x5290, 0x60);
cam_i2c_write(axi_iic, device_addr, 0x5292, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5293, 0x02);
cam_i2c_write(axi_iic, device_addr, 0x5294, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5295, 0x04);
cam_i2c_write(axi_iic, device_addr, 0x5296, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5297, 0x08);
cam_i2c_write(axi_iic, device_addr, 0x5298, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5299, 0x10);
cam_i2c_write(axi_iic, device_addr, 0x529a, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x529b, 0x20);
cam_i2c_write(axi_iic, device_addr, 0x529c, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x529d, 0x28);
cam_i2c_write(axi_iic, device_addr, 0x529e, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x529f, 0x30);
cam_i2c_write(axi_iic, device_addr, 0x5282, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5680, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5681, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5682, 0x05);
cam_i2c_write(axi_iic, device_addr, 0x5683, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5684, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5685, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5686, 0x03);
cam_i2c_write(axi_iic, device_addr, 0x5687, 0xc0);
cam_i2c_write(axi_iic, device_addr, 0x5180, 0xff);
cam_i2c_write(axi_iic, device_addr, 0x5181, 0x52);
cam_i2c_write(axi_iic, device_addr, 0x5182, 0x11);
cam_i2c_write(axi_iic, device_addr, 0x5183, 0x14);
cam_i2c_write(axi_iic, device_addr, 0x5184, 0x25);
cam_i2c_write(axi_iic, device_addr, 0x5185, 0x24);
cam_i2c_write(axi_iic, device_addr, 0x5186, 0x14);
cam_i2c_write(axi_iic, device_addr, 0x5187, 0x14);
cam_i2c_write(axi_iic, device_addr, 0x5188, 0x14);
cam_i2c_write(axi_iic, device_addr, 0x5189, 0x80);
cam_i2c_write(axi_iic, device_addr, 0x518a, 0x60);
cam_i2c_write(axi_iic, device_addr, 0x518b, 0xa2);
cam_i2c_write(axi_iic, device_addr, 0x518c, 0x9c);
cam_i2c_write(axi_iic, device_addr, 0x518d, 0x36);
cam_i2c_write(axi_iic, device_addr, 0x518e, 0x34);
cam_i2c_write(axi_iic, device_addr, 0x518f, 0x54);
cam_i2c_write(axi_iic, device_addr, 0x5190, 0x4c);
cam_i2c_write(axi_iic, device_addr, 0x5191, 0xf8);
cam_i2c_write(axi_iic, device_addr, 0x5192, 0x04);
cam_i2c_write(axi_iic, device_addr, 0x5193, 0x70);
cam_i2c_write(axi_iic, device_addr, 0x5194, 0xf0);
cam_i2c_write(axi_iic, device_addr, 0x5195, 0xf0);
cam_i2c_write(axi_iic, device_addr, 0x5196, 0x03);
cam_i2c_write(axi_iic, device_addr, 0x5197, 0x01);
cam_i2c_write(axi_iic, device_addr, 0x5198, 0x05);
cam_i2c_write(axi_iic, device_addr, 0x5199, 0x2f);
cam_i2c_write(axi_iic, device_addr, 0x519a, 0x04);
cam_i2c_write(axi_iic, device_addr, 0x519b, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x519c, 0x06);
cam_i2c_write(axi_iic, device_addr, 0x519d, 0xa0);
cam_i2c_write(axi_iic, device_addr, 0x519e, 0xa0);
cam_i2c_write(axi_iic, device_addr, 0x3a0f, 0x3c);
cam_i2c_write(axi_iic, device_addr, 0x3a10, 0x30);
cam_i2c_write(axi_iic, device_addr, 0x3a1b, 0x3c);
cam_i2c_write(axi_iic, device_addr, 0x3a1e, 0x30);
cam_i2c_write(axi_iic, device_addr, 0x3a11, 0x70);
cam_i2c_write(axi_iic, device_addr, 0x3a1f, 0x10);
cam_i2c_write(axi_iic, device_addr, 0x3800, 0x1);
cam_i2c_write(axi_iic, device_addr, 0x3801, 0x50);
cam_i2c_write(axi_iic, device_addr, 0x3802, 0x0);
cam_i2c_write(axi_iic, device_addr, 0x3803, 0x8);
cam_i2c_write(axi_iic, device_addr, 0x3804, 0x5);
cam_i2c_write(axi_iic, device_addr, 0x3805, 0x0);
cam_i2c_write(axi_iic, device_addr, 0x3806, 0x3);
cam_i2c_write(axi_iic, device_addr, 0x3807, 0xc0);
cam_i2c_write(axi_iic, device_addr, 0x3808, 0x3);
cam_i2c_write(axi_iic, device_addr, 0x3809, 0x20);
cam_i2c_write(axi_iic, device_addr, 0x380a, 0x2);
cam_i2c_write(axi_iic, device_addr, 0x380b, 0x58);
cam_i2c_write(axi_iic, device_addr, 0x380c, 0xc);
cam_i2c_write(axi_iic, device_addr, 0x380d, 0x80);
cam_i2c_write(axi_iic, device_addr, 0x380e, 0x3);
cam_i2c_write(axi_iic, device_addr, 0x380f, 0xe8);
cam_i2c_write(axi_iic, device_addr, 0x5001, 0x7f);
cam_i2c_write(axi_iic, device_addr, 0x5680, 0x0);
cam_i2c_write(axi_iic, device_addr, 0x5681, 0x0);
cam_i2c_write(axi_iic, device_addr, 0x5682, 0x5);
cam_i2c_write(axi_iic, device_addr, 0x5683, 0x0);
cam_i2c_write(axi_iic, device_addr, 0x5684, 0x0);
cam_i2c_write(axi_iic, device_addr, 0x5685, 0x0);
cam_i2c_write(axi_iic, device_addr, 0x5686, 0x3);
cam_i2c_write(axi_iic, device_addr, 0x5687, 0xc0);
cam_i2c_write(axi_iic, device_addr, 0x5687, 0xc0);
cam_i2c_write(axi_iic, device_addr, 0x3815, 0x02);
cam_i2c_write(axi_iic, device_addr, 0x3503, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x3818, 0x81); // No Mirror
cam_i2c_write(axi_iic, device_addr, 0x3621, 0xa7);
cam_i2c_write(axi_iic, device_addr, 0x4740, 0x21);
cam_i2c_write(axi_iic, device_addr, 0x501e, 0x2a);
cam_i2c_write(axi_iic, device_addr, 0x5002, 0x78);
cam_i2c_write(axi_iic, device_addr, 0x501f, 0x01);
cam_i2c_write(axi_iic, device_addr, 0x4300, 0x61);
return(0);
}
# frame buffer resister set
vflip_dmaw.register_map.fb0_1 = buffer0.physical_address
vflip_dmaw.register_map.fb0_2 = 0
vflip_dmaw.register_map.fb1_1 = buffer1.physical_address
vflip_dmaw.register_map.fb1_2 = 0
vflip_dmaw.register_map.fb2_1 = buffer2.physical_address
vflip_dmaw.register_map.fb2_2 = 0
# cam_disp.py
# 2022/08/05 by marsee
from PIL import Image
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
from pynq import allocate, Overlay
import time
# Download bitstream
cam_disp = Overlay("./cam_disp.bit")
# Generate an instance for each IP
vflip_dmaw = cam_disp.vflip_dma_write_0
dma2axis3 = cam_disp.DMA2axis_3buf_0
paracam_inf = cam_disp.paracam_inf_axis_0
bmpd_cont = cam_disp.btimap_disp_cont_axis_0
cam_iic = cam_disp.cam_iic_0
def cam_i2c_init(cam_iic):
cam_iic.write(0x100, 0x2) # reset tx fifo ,address is 0x100, i2c_control_reg
cam_iic.write(0x100, 0x1) # enable i2c
def cam_i2x_write_sync():
time.sleep(0.001) # 1ms wait
def cam_i2c_write(cam_iic, device_addr, write_addr, write_data):
cam_iic.write(0x108, bin(0x100 | (device_addr & 0xfe))) # Slave IIC Write Address, address is 0x108, i2c_tx_fifo
cam_iic.write(0x108, bin((write_addr >> 8) & 0xff)) # address upper byte
cam_iic.write(0x108, bin(write_addr & 0xff)) # address lower byte
cam_iic.write(0x108, bin(0x200 | (write_data & 0xff))) # data
cam_i2x_write_sync()
def cam_reg_set(cam_iic, device_addr):
cam_i2c_write(cam_iic, device_addr, 0x3103, 0x93)
cam_i2c_write(cam_iic, device_addr, 0x3008, 0x82)
cam_i2c_write(cam_iic, device_addr, 0x3017, 0x7f)
cam_i2c_write(cam_iic, device_addr, 0x3018, 0xfc)
cam_i2c_write(cam_iic, device_addr, 0x3810, 0xc2)
cam_i2c_write(cam_iic, device_addr, 0x3615, 0xf0)
cam_i2c_write(cam_iic, device_addr, 0x3000, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x3001, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x3002, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x3003, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x3000, 0xf8)
cam_i2c_write(cam_iic, device_addr, 0x3001, 0x48)
cam_i2c_write(cam_iic, device_addr, 0x3002, 0x5c)
cam_i2c_write(cam_iic, device_addr, 0x3003, 0x02)
cam_i2c_write(cam_iic, device_addr, 0x3004, 0x07)
cam_i2c_write(cam_iic, device_addr, 0x3005, 0xb7)
cam_i2c_write(cam_iic, device_addr, 0x3006, 0x43)
cam_i2c_write(cam_iic, device_addr, 0x3007, 0x37)
cam_i2c_write(cam_iic, device_addr, 0x3011, 0x08) # 0x08 - 15fps, 0x10 - 30fps
cam_i2c_write(cam_iic, device_addr, 0x3010, 0x10)
cam_i2c_write(cam_iic, device_addr, 0x460c, 0x22)
cam_i2c_write(cam_iic, device_addr, 0x3815, 0x04)
cam_i2c_write(cam_iic, device_addr, 0x370d, 0x06)
cam_i2c_write(cam_iic, device_addr, 0x370c, 0xa0)
cam_i2c_write(cam_iic, device_addr, 0x3602, 0xfc)
cam_i2c_write(cam_iic, device_addr, 0x3612, 0xff)
cam_i2c_write(cam_iic, device_addr, 0x3634, 0xc0)
cam_i2c_write(cam_iic, device_addr, 0x3613, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x3605, 0x7c)
cam_i2c_write(cam_iic, device_addr, 0x3621, 0x09)
cam_i2c_write(cam_iic, device_addr, 0x3622, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x3604, 0x40)
cam_i2c_write(cam_iic, device_addr, 0x3603, 0xa7)
cam_i2c_write(cam_iic, device_addr, 0x3603, 0x27)
cam_i2c_write(cam_iic, device_addr, 0x4000, 0x21)
cam_i2c_write(cam_iic, device_addr, 0x401d, 0x02)
cam_i2c_write(cam_iic, device_addr, 0x3600, 0x54)
cam_i2c_write(cam_iic, device_addr, 0x3605, 0x04)
cam_i2c_write(cam_iic, device_addr, 0x3606, 0x3f)
cam_i2c_write(cam_iic, device_addr, 0x3c01, 0x80)
cam_i2c_write(cam_iic, device_addr, 0x5000, 0x4f)
cam_i2c_write(cam_iic, device_addr, 0x5020, 0x04)
cam_i2c_write(cam_iic, device_addr, 0x5181, 0x79)
cam_i2c_write(cam_iic, device_addr, 0x5182, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5185, 0x22)
cam_i2c_write(cam_iic, device_addr, 0x5197, 0x01)
cam_i2c_write(cam_iic, device_addr, 0x5001, 0xff)
cam_i2c_write(cam_iic, device_addr, 0x5500, 0x0a)
cam_i2c_write(cam_iic, device_addr, 0x5504, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5505, 0x7f)
cam_i2c_write(cam_iic, device_addr, 0x5080, 0x08)
cam_i2c_write(cam_iic, device_addr, 0x300e, 0x18)
cam_i2c_write(cam_iic, device_addr, 0x4610, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x471d, 0x05)
cam_i2c_write(cam_iic, device_addr, 0x4708, 0x06)
cam_i2c_write(cam_iic, device_addr, 0x3710, 0x10)
cam_i2c_write(cam_iic, device_addr, 0x3632, 0x41)
cam_i2c_write(cam_iic, device_addr, 0x3702, 0x40)
cam_i2c_write(cam_iic, device_addr, 0x3620, 0x37)
cam_i2c_write(cam_iic, device_addr, 0x3631, 0x01)
cam_i2c_write(cam_iic, device_addr, 0x3808, 0x02)
cam_i2c_write(cam_iic, device_addr, 0x3809, 0x80)
cam_i2c_write(cam_iic, device_addr, 0x380a, 0x01)
cam_i2c_write(cam_iic, device_addr, 0x380b, 0xe0)
cam_i2c_write(cam_iic, device_addr, 0x380e, 0x07)
cam_i2c_write(cam_iic, device_addr, 0x380f, 0xd0)
cam_i2c_write(cam_iic, device_addr, 0x501f, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5000, 0x4f)
cam_i2c_write(cam_iic, device_addr, 0x4300, 0x61) # RGB565
cam_i2c_write(cam_iic, device_addr, 0x3503, 0x07)
cam_i2c_write(cam_iic, device_addr, 0x3501, 0x73)
cam_i2c_write(cam_iic, device_addr, 0x3502, 0x80)
cam_i2c_write(cam_iic, device_addr, 0x350b, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x3503, 0x07)
cam_i2c_write(cam_iic, device_addr, 0x3824, 0x11)
cam_i2c_write(cam_iic, device_addr, 0x3501, 0x1e)
cam_i2c_write(cam_iic, device_addr, 0x3502, 0x80)
cam_i2c_write(cam_iic, device_addr, 0x350b, 0x7f)
cam_i2c_write(cam_iic, device_addr, 0x380c, 0x0c)
cam_i2c_write(cam_iic, device_addr, 0x380d, 0x80)
cam_i2c_write(cam_iic, device_addr, 0x380e, 0x03)
cam_i2c_write(cam_iic, device_addr, 0x380f, 0xe8)
cam_i2c_write(cam_iic, device_addr, 0x3a0d, 0x04)
cam_i2c_write(cam_iic, device_addr, 0x3a0e, 0x03)
cam_i2c_write(cam_iic, device_addr, 0x3818, 0xc1)
cam_i2c_write(cam_iic, device_addr, 0x3705, 0xdb)
cam_i2c_write(cam_iic, device_addr, 0x370a, 0x81)
cam_i2c_write(cam_iic, device_addr, 0x3801, 0x80)
cam_i2c_write(cam_iic, device_addr, 0x3621, 0xc7)
cam_i2c_write(cam_iic, device_addr, 0x3801, 0x50)
cam_i2c_write(cam_iic, device_addr, 0x3803, 0x08)
cam_i2c_write(cam_iic, device_addr, 0x3827, 0x08)
cam_i2c_write(cam_iic, device_addr, 0x3810, 0xc0)
cam_i2c_write(cam_iic, device_addr, 0x3804, 0x05)
cam_i2c_write(cam_iic, device_addr, 0x3805, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5682, 0x05)
cam_i2c_write(cam_iic, device_addr, 0x5683, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x3806, 0x03)
cam_i2c_write(cam_iic, device_addr, 0x3807, 0xc0)
cam_i2c_write(cam_iic, device_addr, 0x5686, 0x03)
cam_i2c_write(cam_iic, device_addr, 0x5687, 0xc0)
cam_i2c_write(cam_iic, device_addr, 0x3a00, 0x78)
cam_i2c_write(cam_iic, device_addr, 0x3a1a, 0x04)
cam_i2c_write(cam_iic, device_addr, 0x3a13, 0x30)
cam_i2c_write(cam_iic, device_addr, 0x3a18, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x3a19, 0x7c)
cam_i2c_write(cam_iic, device_addr, 0x3a08, 0x12)
cam_i2c_write(cam_iic, device_addr, 0x3a09, 0xc0)
cam_i2c_write(cam_iic, device_addr, 0x3a0a, 0x0f)
cam_i2c_write(cam_iic, device_addr, 0x3a0b, 0xa0)
cam_i2c_write(cam_iic, device_addr, 0x3004, 0xff)
cam_i2c_write(cam_iic, device_addr, 0x350c, 0x07)
cam_i2c_write(cam_iic, device_addr, 0x350d, 0xd0)
cam_i2c_write(cam_iic, device_addr, 0x3500, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x3501, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x3502, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x350a, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x350b, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x3503, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x528a, 0x02)
cam_i2c_write(cam_iic, device_addr, 0x528b, 0x04)
cam_i2c_write(cam_iic, device_addr, 0x528c, 0x08)
cam_i2c_write(cam_iic, device_addr, 0x528d, 0x08)
cam_i2c_write(cam_iic, device_addr, 0x528e, 0x08)
cam_i2c_write(cam_iic, device_addr, 0x528f, 0x10)
cam_i2c_write(cam_iic, device_addr, 0x5290, 0x10)
cam_i2c_write(cam_iic, device_addr, 0x5292, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5293, 0x02)
cam_i2c_write(cam_iic, device_addr, 0x5294, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5295, 0x02)
cam_i2c_write(cam_iic, device_addr, 0x5296, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5297, 0x02)
cam_i2c_write(cam_iic, device_addr, 0x5298, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5299, 0x02)
cam_i2c_write(cam_iic, device_addr, 0x529a, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x529b, 0x02)
cam_i2c_write(cam_iic, device_addr, 0x529c, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x529d, 0x02)
cam_i2c_write(cam_iic, device_addr, 0x529e, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x529f, 0x02)
cam_i2c_write(cam_iic, device_addr, 0x3a0f, 0x3c)
cam_i2c_write(cam_iic, device_addr, 0x3a10, 0x30)
cam_i2c_write(cam_iic, device_addr, 0x3a1b, 0x3c)
cam_i2c_write(cam_iic, device_addr, 0x3a1e, 0x30)
cam_i2c_write(cam_iic, device_addr, 0x3a11, 0x70)
cam_i2c_write(cam_iic, device_addr, 0x3a1f, 0x10)
cam_i2c_write(cam_iic, device_addr, 0x3030, 0x0b)
cam_i2c_write(cam_iic, device_addr, 0x3a02, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x3a03, 0x7d)
cam_i2c_write(cam_iic, device_addr, 0x3a04, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x3a14, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x3a15, 0x7d)
cam_i2c_write(cam_iic, device_addr, 0x3a16, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x3a00, 0x78)
cam_i2c_write(cam_iic, device_addr, 0x3a08, 0x09)
cam_i2c_write(cam_iic, device_addr, 0x3a09, 0x60)
cam_i2c_write(cam_iic, device_addr, 0x3a0a, 0x07)
cam_i2c_write(cam_iic, device_addr, 0x3a0b, 0xd0)
cam_i2c_write(cam_iic, device_addr, 0x3a0d, 0x08)
cam_i2c_write(cam_iic, device_addr, 0x3a0e, 0x06)
cam_i2c_write(cam_iic, device_addr, 0x5193, 0x70)
cam_i2c_write(cam_iic, device_addr, 0x3620, 0x57)
cam_i2c_write(cam_iic, device_addr, 0x3703, 0x98)
cam_i2c_write(cam_iic, device_addr, 0x3704, 0x1c)
cam_i2c_write(cam_iic, device_addr, 0x589b, 0x04)
cam_i2c_write(cam_iic, device_addr, 0x589a, 0xc5)
cam_i2c_write(cam_iic, device_addr, 0x528a, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x528b, 0x02)
cam_i2c_write(cam_iic, device_addr, 0x528c, 0x08)
cam_i2c_write(cam_iic, device_addr, 0x528d, 0x10)
cam_i2c_write(cam_iic, device_addr, 0x528e, 0x20)
cam_i2c_write(cam_iic, device_addr, 0x528f, 0x28)
cam_i2c_write(cam_iic, device_addr, 0x5290, 0x30)
cam_i2c_write(cam_iic, device_addr, 0x5292, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5293, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5294, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5295, 0x02)
cam_i2c_write(cam_iic, device_addr, 0x5296, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5297, 0x08)
cam_i2c_write(cam_iic, device_addr, 0x5298, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5299, 0x10)
cam_i2c_write(cam_iic, device_addr, 0x529a, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x529b, 0x20)
cam_i2c_write(cam_iic, device_addr, 0x529c, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x529d, 0x28)
cam_i2c_write(cam_iic, device_addr, 0x529e, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x529f, 0x30)
cam_i2c_write(cam_iic, device_addr, 0x5282, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5300, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5301, 0x20)
cam_i2c_write(cam_iic, device_addr, 0x5302, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5303, 0x7c)
cam_i2c_write(cam_iic, device_addr, 0x530c, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x530d, 0x0c)
cam_i2c_write(cam_iic, device_addr, 0x530e, 0x20)
cam_i2c_write(cam_iic, device_addr, 0x530f, 0x80)
cam_i2c_write(cam_iic, device_addr, 0x5310, 0x20)
cam_i2c_write(cam_iic, device_addr, 0x5311, 0x80)
cam_i2c_write(cam_iic, device_addr, 0x5308, 0x20)
cam_i2c_write(cam_iic, device_addr, 0x5309, 0x40)
cam_i2c_write(cam_iic, device_addr, 0x5304, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5305, 0x30)
cam_i2c_write(cam_iic, device_addr, 0x5306, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5307, 0x80)
cam_i2c_write(cam_iic, device_addr, 0x5314, 0x08)
cam_i2c_write(cam_iic, device_addr, 0x5315, 0x20)
cam_i2c_write(cam_iic, device_addr, 0x5319, 0x30)
cam_i2c_write(cam_iic, device_addr, 0x5316, 0x10)
cam_i2c_write(cam_iic, device_addr, 0x5317, 0x08)
cam_i2c_write(cam_iic, device_addr, 0x5318, 0x02)
cam_i2c_write(cam_iic, device_addr, 0x5380, 0x01)
cam_i2c_write(cam_iic, device_addr, 0x5381, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5382, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5383, 0x4e)
cam_i2c_write(cam_iic, device_addr, 0x5384, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5385, 0x0f)
cam_i2c_write(cam_iic, device_addr, 0x5386, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5387, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5388, 0x01)
cam_i2c_write(cam_iic, device_addr, 0x5389, 0x15)
cam_i2c_write(cam_iic, device_addr, 0x538a, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x538b, 0x31)
cam_i2c_write(cam_iic, device_addr, 0x538c, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x538d, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x538e, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x538f, 0x0f)
cam_i2c_write(cam_iic, device_addr, 0x5390, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5391, 0xab)
cam_i2c_write(cam_iic, device_addr, 0x5392, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5393, 0xa2)
cam_i2c_write(cam_iic, device_addr, 0x5394, 0x08)
cam_i2c_write(cam_iic, device_addr, 0x5480, 0x14)
cam_i2c_write(cam_iic, device_addr, 0x5481, 0x21)
cam_i2c_write(cam_iic, device_addr, 0x5482, 0x36)
cam_i2c_write(cam_iic, device_addr, 0x5483, 0x57)
cam_i2c_write(cam_iic, device_addr, 0x5484, 0x65)
cam_i2c_write(cam_iic, device_addr, 0x5485, 0x71)
cam_i2c_write(cam_iic, device_addr, 0x5486, 0x7d)
cam_i2c_write(cam_iic, device_addr, 0x5487, 0x87)
cam_i2c_write(cam_iic, device_addr, 0x5488, 0x91)
cam_i2c_write(cam_iic, device_addr, 0x5489, 0x9a)
cam_i2c_write(cam_iic, device_addr, 0x548a, 0xaa)
cam_i2c_write(cam_iic, device_addr, 0x548b, 0xb8)
cam_i2c_write(cam_iic, device_addr, 0x548c, 0xcd)
cam_i2c_write(cam_iic, device_addr, 0x548d, 0xdd)
cam_i2c_write(cam_iic, device_addr, 0x548e, 0xea)
cam_i2c_write(cam_iic, device_addr, 0x548f, 0x10)
cam_i2c_write(cam_iic, device_addr, 0x5490, 0x05)
cam_i2c_write(cam_iic, device_addr, 0x5491, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5492, 0x04)
cam_i2c_write(cam_iic, device_addr, 0x5493, 0x20)
cam_i2c_write(cam_iic, device_addr, 0x5494, 0x03)
cam_i2c_write(cam_iic, device_addr, 0x5495, 0x60)
cam_i2c_write(cam_iic, device_addr, 0x5496, 0x02)
cam_i2c_write(cam_iic, device_addr, 0x5497, 0xb8)
cam_i2c_write(cam_iic, device_addr, 0x5498, 0x02)
cam_i2c_write(cam_iic, device_addr, 0x5499, 0x86)
cam_i2c_write(cam_iic, device_addr, 0x549a, 0x02)
cam_i2c_write(cam_iic, device_addr, 0x549b, 0x5b)
cam_i2c_write(cam_iic, device_addr, 0x549c, 0x02)
cam_i2c_write(cam_iic, device_addr, 0x549d, 0x3b)
cam_i2c_write(cam_iic, device_addr, 0x549e, 0x02)
cam_i2c_write(cam_iic, device_addr, 0x549f, 0x1c)
cam_i2c_write(cam_iic, device_addr, 0x54a0, 0x02)
cam_i2c_write(cam_iic, device_addr, 0x54a1, 0x04)
cam_i2c_write(cam_iic, device_addr, 0x54a2, 0x01)
cam_i2c_write(cam_iic, device_addr, 0x54a3, 0xed)
cam_i2c_write(cam_iic, device_addr, 0x54a4, 0x01)
cam_i2c_write(cam_iic, device_addr, 0x54a5, 0xc5)
cam_i2c_write(cam_iic, device_addr, 0x54a6, 0x01)
cam_i2c_write(cam_iic, device_addr, 0x54a7, 0xa5)
cam_i2c_write(cam_iic, device_addr, 0x54a8, 0x01)
cam_i2c_write(cam_iic, device_addr, 0x54a9, 0x6c)
cam_i2c_write(cam_iic, device_addr, 0x54aa, 0x01)
cam_i2c_write(cam_iic, device_addr, 0x54ab, 0x41)
cam_i2c_write(cam_iic, device_addr, 0x54ac, 0x01)
cam_i2c_write(cam_iic, device_addr, 0x54ad, 0x20)
cam_i2c_write(cam_iic, device_addr, 0x54ae, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x54af, 0x16)
cam_i2c_write(cam_iic, device_addr, 0x3406, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5192, 0x04) # 0x04
cam_i2c_write(cam_iic, device_addr, 0x5191, 0xf8) # 0xf8
cam_i2c_write(cam_iic, device_addr, 0x5193, 0x70)
cam_i2c_write(cam_iic, device_addr, 0x5194, 0xf0)
cam_i2c_write(cam_iic, device_addr, 0x5195, 0xf0)
cam_i2c_write(cam_iic, device_addr, 0x518d, 0x3d)
cam_i2c_write(cam_iic, device_addr, 0x518f, 0x54)
cam_i2c_write(cam_iic, device_addr, 0x518e, 0x3d)
cam_i2c_write(cam_iic, device_addr, 0x5190, 0x54)
cam_i2c_write(cam_iic, device_addr, 0x518b, 0xc0)
cam_i2c_write(cam_iic, device_addr, 0x518c, 0xbd)
cam_i2c_write(cam_iic, device_addr, 0x5187, 0x18)
cam_i2c_write(cam_iic, device_addr, 0x5188, 0x18)
cam_i2c_write(cam_iic, device_addr, 0x5189, 0x6e)
cam_i2c_write(cam_iic, device_addr, 0x518a, 0x68)
cam_i2c_write(cam_iic, device_addr, 0x5186, 0x1c)
cam_i2c_write(cam_iic, device_addr, 0x5181, 0x50)
cam_i2c_write(cam_iic, device_addr, 0x5184, 0x25)
cam_i2c_write(cam_iic, device_addr, 0x5182, 0x11)
cam_i2c_write(cam_iic, device_addr, 0x5183, 0x14)
cam_i2c_write(cam_iic, device_addr, 0x5184, 0x25)
cam_i2c_write(cam_iic, device_addr, 0x5185, 0x24)
cam_i2c_write(cam_iic, device_addr, 0x5025, 0x82)
cam_i2c_write(cam_iic, device_addr, 0x5583, 0x40)
cam_i2c_write(cam_iic, device_addr, 0x5584, 0x40)
cam_i2c_write(cam_iic, device_addr, 0x5580, 0x02) # 0x02
cam_i2c_write(cam_iic, device_addr, 0x3633, 0x07)
cam_i2c_write(cam_iic, device_addr, 0x3702, 0x10)
cam_i2c_write(cam_iic, device_addr, 0x3703, 0xb2)
cam_i2c_write(cam_iic, device_addr, 0x3704, 0x18)
cam_i2c_write(cam_iic, device_addr, 0x370b, 0x40)
cam_i2c_write(cam_iic, device_addr, 0x370d, 0x02)
cam_i2c_write(cam_iic, device_addr, 0x3620, 0x52)
cam_i2c_write(cam_iic, device_addr, 0x3c00, 0x04)
cam_i2c_write(cam_iic, device_addr, 0x5001, 0xFF)
cam_i2c_write(cam_iic, device_addr, 0x5282, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5300, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5301, 0x20)
cam_i2c_write(cam_iic, device_addr, 0x5302, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5303, 0x7c)
cam_i2c_write(cam_iic, device_addr, 0x530c, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x530d, 0x10)
cam_i2c_write(cam_iic, device_addr, 0x530e, 0x20)
cam_i2c_write(cam_iic, device_addr, 0x530f, 0x80)
cam_i2c_write(cam_iic, device_addr, 0x5310, 0x20)
cam_i2c_write(cam_iic, device_addr, 0x5311, 0x80)
cam_i2c_write(cam_iic, device_addr, 0x5308, 0x20)
cam_i2c_write(cam_iic, device_addr, 0x5309, 0x40)
cam_i2c_write(cam_iic, device_addr, 0x5304, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5305, 0x30)
cam_i2c_write(cam_iic, device_addr, 0x5306, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5307, 0x80)
cam_i2c_write(cam_iic, device_addr, 0x5314, 0x08)
cam_i2c_write(cam_iic, device_addr, 0x5315, 0x20)
cam_i2c_write(cam_iic, device_addr, 0x5319, 0x30)
cam_i2c_write(cam_iic, device_addr, 0x5316, 0x10)
cam_i2c_write(cam_iic, device_addr, 0x5317, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5318, 0x02)
cam_i2c_write(cam_iic, device_addr, 0x5500, 0x10)
cam_i2c_write(cam_iic, device_addr, 0x5502, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5503, 0x06)
cam_i2c_write(cam_iic, device_addr, 0x5504, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5505, 0x7f)
cam_i2c_write(cam_iic, device_addr, 0x5025, 0x80)
cam_i2c_write(cam_iic, device_addr, 0x5300, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5301, 0x20)
cam_i2c_write(cam_iic, device_addr, 0x5302, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5303, 0x7c)
cam_i2c_write(cam_iic, device_addr, 0x530c, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x530d, 0x0c)
cam_i2c_write(cam_iic, device_addr, 0x530e, 0x20)
cam_i2c_write(cam_iic, device_addr, 0x530f, 0x80)
cam_i2c_write(cam_iic, device_addr, 0x5310, 0x20)
cam_i2c_write(cam_iic, device_addr, 0x5311, 0x80)
cam_i2c_write(cam_iic, device_addr, 0x5308, 0x20)
cam_i2c_write(cam_iic, device_addr, 0x5309, 0x40)
cam_i2c_write(cam_iic, device_addr, 0x5304, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5305, 0x30)
cam_i2c_write(cam_iic, device_addr, 0x5306, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5307, 0x80)
cam_i2c_write(cam_iic, device_addr, 0x5314, 0x08)
cam_i2c_write(cam_iic, device_addr, 0x5315, 0x20)
cam_i2c_write(cam_iic, device_addr, 0x5319, 0x30)
cam_i2c_write(cam_iic, device_addr, 0x5316, 0x10)
cam_i2c_write(cam_iic, device_addr, 0x5317, 0x08)
cam_i2c_write(cam_iic, device_addr, 0x5318, 0x02)
cam_i2c_write(cam_iic, device_addr, 0x5380, 0x01)
cam_i2c_write(cam_iic, device_addr, 0x5381, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5382, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5383, 0x1f)
cam_i2c_write(cam_iic, device_addr, 0x5384, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5385, 0x06)
cam_i2c_write(cam_iic, device_addr, 0x5386, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5387, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5388, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5389, 0xE1)
cam_i2c_write(cam_iic, device_addr, 0x538A, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x538B, 0x2B)
cam_i2c_write(cam_iic, device_addr, 0x538C, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x538D, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x538E, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x538F, 0x10)
cam_i2c_write(cam_iic, device_addr, 0x5390, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5391, 0xB3)
cam_i2c_write(cam_iic, device_addr, 0x5392, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5393, 0xA6)
cam_i2c_write(cam_iic, device_addr, 0x5394, 0x08)
cam_i2c_write(cam_iic, device_addr, 0x5480, 0xd)
cam_i2c_write(cam_iic, device_addr, 0x5481, 0x18)
cam_i2c_write(cam_iic, device_addr, 0x5482, 0x2a)
cam_i2c_write(cam_iic, device_addr, 0x5483, 0x49)
cam_i2c_write(cam_iic, device_addr, 0x5484, 0x56)
cam_i2c_write(cam_iic, device_addr, 0x5485, 0x62)
cam_i2c_write(cam_iic, device_addr, 0x5486, 0x6c)
cam_i2c_write(cam_iic, device_addr, 0x5487, 0x76)
cam_i2c_write(cam_iic, device_addr, 0x5488, 0x80)
cam_i2c_write(cam_iic, device_addr, 0x5489, 0x88)
cam_i2c_write(cam_iic, device_addr, 0x548a, 0x96)
cam_i2c_write(cam_iic, device_addr, 0x548b, 0xa2)
cam_i2c_write(cam_iic, device_addr, 0x548c, 0xb8)
cam_i2c_write(cam_iic, device_addr, 0x548d, 0xcc)
cam_i2c_write(cam_iic, device_addr, 0x548e, 0xe0)
cam_i2c_write(cam_iic, device_addr, 0x548f, 0x10)
cam_i2c_write(cam_iic, device_addr, 0x5490, 0x3)
cam_i2c_write(cam_iic, device_addr, 0x5491, 0x40)
cam_i2c_write(cam_iic, device_addr, 0x5492, 0x3)
cam_i2c_write(cam_iic, device_addr, 0x5493, 0x0)
cam_i2c_write(cam_iic, device_addr, 0x5494, 0x2)
cam_i2c_write(cam_iic, device_addr, 0x5495, 0xa0)
cam_i2c_write(cam_iic, device_addr, 0x5496, 0x2)
cam_i2c_write(cam_iic, device_addr, 0x5497, 0x48)
cam_i2c_write(cam_iic, device_addr, 0x5498, 0x2)
cam_i2c_write(cam_iic, device_addr, 0x5499, 0x26)
cam_i2c_write(cam_iic, device_addr, 0x549a, 0x2)
cam_i2c_write(cam_iic, device_addr, 0x549b, 0xb)
cam_i2c_write(cam_iic, device_addr, 0x549c, 0x1)
cam_i2c_write(cam_iic, device_addr, 0x549d, 0xee)
cam_i2c_write(cam_iic, device_addr, 0x549e, 0x1)
cam_i2c_write(cam_iic, device_addr, 0x549f, 0xd8)
cam_i2c_write(cam_iic, device_addr, 0x54a0, 0x1)
cam_i2c_write(cam_iic, device_addr, 0x54a1, 0xc7)
cam_i2c_write(cam_iic, device_addr, 0x54a2, 0x1)
cam_i2c_write(cam_iic, device_addr, 0x54a3, 0xb3)
cam_i2c_write(cam_iic, device_addr, 0x54a4, 0x1)
cam_i2c_write(cam_iic, device_addr, 0x54a5, 0x90)
cam_i2c_write(cam_iic, device_addr, 0x54a6, 0x1)
cam_i2c_write(cam_iic, device_addr, 0x54a7, 0x62)
cam_i2c_write(cam_iic, device_addr, 0x54a8, 0x1)
cam_i2c_write(cam_iic, device_addr, 0x54a9, 0x27)
cam_i2c_write(cam_iic, device_addr, 0x54aa, 0x01)
cam_i2c_write(cam_iic, device_addr, 0x54ab, 0x09)
cam_i2c_write(cam_iic, device_addr, 0x54ac, 0x01)
cam_i2c_write(cam_iic, device_addr, 0x54ad, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x54ae, 0x0)
cam_i2c_write(cam_iic, device_addr, 0x54af, 0x40)
cam_i2c_write(cam_iic, device_addr, 0x54b0, 0x1)
cam_i2c_write(cam_iic, device_addr, 0x54b1, 0x20)
cam_i2c_write(cam_iic, device_addr, 0x54b2, 0x1)
cam_i2c_write(cam_iic, device_addr, 0x54b3, 0x40)
cam_i2c_write(cam_iic, device_addr, 0x54b4, 0x0)
cam_i2c_write(cam_iic, device_addr, 0x54b5, 0xf0)
cam_i2c_write(cam_iic, device_addr, 0x54b6, 0x1)
cam_i2c_write(cam_iic, device_addr, 0x54b7, 0xdf)
cam_i2c_write(cam_iic, device_addr, 0x5583, 0x5d)
cam_i2c_write(cam_iic, device_addr, 0x5584, 0x5d)
cam_i2c_write(cam_iic, device_addr, 0x5580, 0x06)
cam_i2c_write(cam_iic, device_addr, 0x5587, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5588, 0x20)
cam_i2c_write(cam_iic, device_addr, 0x558a, 0x09)
cam_i2c_write(cam_iic, device_addr, 0x5589, 0x10)
cam_i2c_write(cam_iic, device_addr, 0x5000, 0xcf)
cam_i2c_write(cam_iic, device_addr, 0x5800, 0x48)
cam_i2c_write(cam_iic, device_addr, 0x5801, 0x31)
cam_i2c_write(cam_iic, device_addr, 0x5802, 0x21)
cam_i2c_write(cam_iic, device_addr, 0x5803, 0x1b)
cam_i2c_write(cam_iic, device_addr, 0x5804, 0x1a)
cam_i2c_write(cam_iic, device_addr, 0x5805, 0x1e)
cam_i2c_write(cam_iic, device_addr, 0x5806, 0x29)
cam_i2c_write(cam_iic, device_addr, 0x5807, 0x38)
cam_i2c_write(cam_iic, device_addr, 0x5808, 0x26)
cam_i2c_write(cam_iic, device_addr, 0x5809, 0x17)
cam_i2c_write(cam_iic, device_addr, 0x580a, 0x11)
cam_i2c_write(cam_iic, device_addr, 0x580b, 0xe)
cam_i2c_write(cam_iic, device_addr, 0x580c, 0xd)
cam_i2c_write(cam_iic, device_addr, 0x580d, 0xe)
cam_i2c_write(cam_iic, device_addr, 0x580e, 0x13)
cam_i2c_write(cam_iic, device_addr, 0x580f, 0x1a)
cam_i2c_write(cam_iic, device_addr, 0x5810, 0x15)
cam_i2c_write(cam_iic, device_addr, 0x5811, 0xd)
cam_i2c_write(cam_iic, device_addr, 0x5812, 0x8)
cam_i2c_write(cam_iic, device_addr, 0x5813, 0x5)
cam_i2c_write(cam_iic, device_addr, 0x5814, 0x4)
cam_i2c_write(cam_iic, device_addr, 0x5815, 0x5)
cam_i2c_write(cam_iic, device_addr, 0x5816, 0x9)
cam_i2c_write(cam_iic, device_addr, 0x5817, 0xd)
cam_i2c_write(cam_iic, device_addr, 0x5818, 0x11)
cam_i2c_write(cam_iic, device_addr, 0x5819, 0xa)
cam_i2c_write(cam_iic, device_addr, 0x581a, 0x4)
cam_i2c_write(cam_iic, device_addr, 0x581b, 0x0)
cam_i2c_write(cam_iic, device_addr, 0x581c, 0x0)
cam_i2c_write(cam_iic, device_addr, 0x581d, 0x1)
cam_i2c_write(cam_iic, device_addr, 0x581e, 0x6)
cam_i2c_write(cam_iic, device_addr, 0x581f, 0x9)
cam_i2c_write(cam_iic, device_addr, 0x5820, 0x12)
cam_i2c_write(cam_iic, device_addr, 0x5821, 0xb)
cam_i2c_write(cam_iic, device_addr, 0x5822, 0x4)
cam_i2c_write(cam_iic, device_addr, 0x5823, 0x0)
cam_i2c_write(cam_iic, device_addr, 0x5824, 0x0)
cam_i2c_write(cam_iic, device_addr, 0x5825, 0x1)
cam_i2c_write(cam_iic, device_addr, 0x5826, 0x6)
cam_i2c_write(cam_iic, device_addr, 0x5827, 0xa)
cam_i2c_write(cam_iic, device_addr, 0x5828, 0x17)
cam_i2c_write(cam_iic, device_addr, 0x5829, 0xf)
cam_i2c_write(cam_iic, device_addr, 0x582a, 0x9)
cam_i2c_write(cam_iic, device_addr, 0x582b, 0x6)
cam_i2c_write(cam_iic, device_addr, 0x582c, 0x5)
cam_i2c_write(cam_iic, device_addr, 0x582d, 0x6)
cam_i2c_write(cam_iic, device_addr, 0x582e, 0xa)
cam_i2c_write(cam_iic, device_addr, 0x582f, 0xe)
cam_i2c_write(cam_iic, device_addr, 0x5830, 0x28)
cam_i2c_write(cam_iic, device_addr, 0x5831, 0x1a)
cam_i2c_write(cam_iic, device_addr, 0x5832, 0x11)
cam_i2c_write(cam_iic, device_addr, 0x5833, 0xe)
cam_i2c_write(cam_iic, device_addr, 0x5834, 0xe)
cam_i2c_write(cam_iic, device_addr, 0x5835, 0xf)
cam_i2c_write(cam_iic, device_addr, 0x5836, 0x15)
cam_i2c_write(cam_iic, device_addr, 0x5837, 0x1d)
cam_i2c_write(cam_iic, device_addr, 0x5838, 0x6e)
cam_i2c_write(cam_iic, device_addr, 0x5839, 0x39)
cam_i2c_write(cam_iic, device_addr, 0x583a, 0x27)
cam_i2c_write(cam_iic, device_addr, 0x583b, 0x1f)
cam_i2c_write(cam_iic, device_addr, 0x583c, 0x1e)
cam_i2c_write(cam_iic, device_addr, 0x583d, 0x23)
cam_i2c_write(cam_iic, device_addr, 0x583e, 0x2f)
cam_i2c_write(cam_iic, device_addr, 0x583f, 0x41)
cam_i2c_write(cam_iic, device_addr, 0x5840, 0xe)
cam_i2c_write(cam_iic, device_addr, 0x5841, 0xc)
cam_i2c_write(cam_iic, device_addr, 0x5842, 0xd)
cam_i2c_write(cam_iic, device_addr, 0x5843, 0xc)
cam_i2c_write(cam_iic, device_addr, 0x5844, 0xc)
cam_i2c_write(cam_iic, device_addr, 0x5845, 0xc)
cam_i2c_write(cam_iic, device_addr, 0x5846, 0xc)
cam_i2c_write(cam_iic, device_addr, 0x5847, 0xc)
cam_i2c_write(cam_iic, device_addr, 0x5848, 0xd)
cam_i2c_write(cam_iic, device_addr, 0x5849, 0xe)
cam_i2c_write(cam_iic, device_addr, 0x584a, 0xe)
cam_i2c_write(cam_iic, device_addr, 0x584b, 0xa)
cam_i2c_write(cam_iic, device_addr, 0x584c, 0xe)
cam_i2c_write(cam_iic, device_addr, 0x584d, 0xe)
cam_i2c_write(cam_iic, device_addr, 0x584e, 0x10)
cam_i2c_write(cam_iic, device_addr, 0x584f, 0x10)
cam_i2c_write(cam_iic, device_addr, 0x5850, 0x11)
cam_i2c_write(cam_iic, device_addr, 0x5851, 0xa)
cam_i2c_write(cam_iic, device_addr, 0x5852, 0xf)
cam_i2c_write(cam_iic, device_addr, 0x5853, 0xe)
cam_i2c_write(cam_iic, device_addr, 0x5854, 0x10)
cam_i2c_write(cam_iic, device_addr, 0x5855, 0x10)
cam_i2c_write(cam_iic, device_addr, 0x5856, 0x10)
cam_i2c_write(cam_iic, device_addr, 0x5857, 0xa)
cam_i2c_write(cam_iic, device_addr, 0x5858, 0xe)
cam_i2c_write(cam_iic, device_addr, 0x5859, 0xe)
cam_i2c_write(cam_iic, device_addr, 0x585a, 0xf)
cam_i2c_write(cam_iic, device_addr, 0x585b, 0xf)
cam_i2c_write(cam_iic, device_addr, 0x585c, 0xf)
cam_i2c_write(cam_iic, device_addr, 0x585d, 0xa)
cam_i2c_write(cam_iic, device_addr, 0x585e, 0x9)
cam_i2c_write(cam_iic, device_addr, 0x585f, 0xd)
cam_i2c_write(cam_iic, device_addr, 0x5860, 0xc)
cam_i2c_write(cam_iic, device_addr, 0x5861, 0xb)
cam_i2c_write(cam_iic, device_addr, 0x5862, 0xd)
cam_i2c_write(cam_iic, device_addr, 0x5863, 0x7)
cam_i2c_write(cam_iic, device_addr, 0x5864, 0x17)
cam_i2c_write(cam_iic, device_addr, 0x5865, 0x14)
cam_i2c_write(cam_iic, device_addr, 0x5866, 0x18)
cam_i2c_write(cam_iic, device_addr, 0x5867, 0x18)
cam_i2c_write(cam_iic, device_addr, 0x5868, 0x16)
cam_i2c_write(cam_iic, device_addr, 0x5869, 0x12)
cam_i2c_write(cam_iic, device_addr, 0x586a, 0x1b)
cam_i2c_write(cam_iic, device_addr, 0x586b, 0x1a)
cam_i2c_write(cam_iic, device_addr, 0x586c, 0x16)
cam_i2c_write(cam_iic, device_addr, 0x586d, 0x16)
cam_i2c_write(cam_iic, device_addr, 0x586e, 0x18)
cam_i2c_write(cam_iic, device_addr, 0x586f, 0x1f)
cam_i2c_write(cam_iic, device_addr, 0x5870, 0x1c)
cam_i2c_write(cam_iic, device_addr, 0x5871, 0x16)
cam_i2c_write(cam_iic, device_addr, 0x5872, 0x10)
cam_i2c_write(cam_iic, device_addr, 0x5873, 0xf)
cam_i2c_write(cam_iic, device_addr, 0x5874, 0x13)
cam_i2c_write(cam_iic, device_addr, 0x5875, 0x1c)
cam_i2c_write(cam_iic, device_addr, 0x5876, 0x1e)
cam_i2c_write(cam_iic, device_addr, 0x5877, 0x17)
cam_i2c_write(cam_iic, device_addr, 0x5878, 0x11)
cam_i2c_write(cam_iic, device_addr, 0x5879, 0x11)
cam_i2c_write(cam_iic, device_addr, 0x587a, 0x14)
cam_i2c_write(cam_iic, device_addr, 0x587b, 0x1e)
cam_i2c_write(cam_iic, device_addr, 0x587c, 0x1c)
cam_i2c_write(cam_iic, device_addr, 0x587d, 0x1c)
cam_i2c_write(cam_iic, device_addr, 0x587e, 0x1a)
cam_i2c_write(cam_iic, device_addr, 0x587f, 0x1a)
cam_i2c_write(cam_iic, device_addr, 0x5880, 0x1b)
cam_i2c_write(cam_iic, device_addr, 0x5881, 0x1f)
cam_i2c_write(cam_iic, device_addr, 0x5882, 0x14)
cam_i2c_write(cam_iic, device_addr, 0x5883, 0x1a)
cam_i2c_write(cam_iic, device_addr, 0x5884, 0x1d)
cam_i2c_write(cam_iic, device_addr, 0x5885, 0x1e)
cam_i2c_write(cam_iic, device_addr, 0x5886, 0x1a)
cam_i2c_write(cam_iic, device_addr, 0x5887, 0x1a)
cam_i2c_write(cam_iic, device_addr, 0x528a, 0x02)
cam_i2c_write(cam_iic, device_addr, 0x528b, 0x06)
cam_i2c_write(cam_iic, device_addr, 0x528c, 0x20)
cam_i2c_write(cam_iic, device_addr, 0x528d, 0x30)
cam_i2c_write(cam_iic, device_addr, 0x528e, 0x40)
cam_i2c_write(cam_iic, device_addr, 0x528f, 0x50)
cam_i2c_write(cam_iic, device_addr, 0x5290, 0x60)
cam_i2c_write(cam_iic, device_addr, 0x5292, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5293, 0x02)
cam_i2c_write(cam_iic, device_addr, 0x5294, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5295, 0x04)
cam_i2c_write(cam_iic, device_addr, 0x5296, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5297, 0x08)
cam_i2c_write(cam_iic, device_addr, 0x5298, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5299, 0x10)
cam_i2c_write(cam_iic, device_addr, 0x529a, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x529b, 0x20)
cam_i2c_write(cam_iic, device_addr, 0x529c, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x529d, 0x28)
cam_i2c_write(cam_iic, device_addr, 0x529e, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x529f, 0x30)
cam_i2c_write(cam_iic, device_addr, 0x5282, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5680, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5681, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5682, 0x05)
cam_i2c_write(cam_iic, device_addr, 0x5683, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5684, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5685, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5686, 0x03)
cam_i2c_write(cam_iic, device_addr, 0x5687, 0xc0)
cam_i2c_write(cam_iic, device_addr, 0x5180, 0xff)
cam_i2c_write(cam_iic, device_addr, 0x5181, 0x52)
cam_i2c_write(cam_iic, device_addr, 0x5182, 0x11)
cam_i2c_write(cam_iic, device_addr, 0x5183, 0x14)
cam_i2c_write(cam_iic, device_addr, 0x5184, 0x25)
cam_i2c_write(cam_iic, device_addr, 0x5185, 0x24)
cam_i2c_write(cam_iic, device_addr, 0x5186, 0x14)
cam_i2c_write(cam_iic, device_addr, 0x5187, 0x14)
cam_i2c_write(cam_iic, device_addr, 0x5188, 0x14)
cam_i2c_write(cam_iic, device_addr, 0x5189, 0x80)
cam_i2c_write(cam_iic, device_addr, 0x518a, 0x60)
cam_i2c_write(cam_iic, device_addr, 0x518b, 0xa2)
cam_i2c_write(cam_iic, device_addr, 0x518c, 0x9c)
cam_i2c_write(cam_iic, device_addr, 0x518d, 0x36)
cam_i2c_write(cam_iic, device_addr, 0x518e, 0x34)
cam_i2c_write(cam_iic, device_addr, 0x518f, 0x54)
cam_i2c_write(cam_iic, device_addr, 0x5190, 0x4c)
cam_i2c_write(cam_iic, device_addr, 0x5191, 0xf8)
cam_i2c_write(cam_iic, device_addr, 0x5192, 0x04)
cam_i2c_write(cam_iic, device_addr, 0x5193, 0x70)
cam_i2c_write(cam_iic, device_addr, 0x5194, 0xf0)
cam_i2c_write(cam_iic, device_addr, 0x5195, 0xf0)
cam_i2c_write(cam_iic, device_addr, 0x5196, 0x03)
cam_i2c_write(cam_iic, device_addr, 0x5197, 0x01)
cam_i2c_write(cam_iic, device_addr, 0x5198, 0x05)
cam_i2c_write(cam_iic, device_addr, 0x5199, 0x2f)
cam_i2c_write(cam_iic, device_addr, 0x519a, 0x04)
cam_i2c_write(cam_iic, device_addr, 0x519b, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x519c, 0x06)
cam_i2c_write(cam_iic, device_addr, 0x519d, 0xa0)
cam_i2c_write(cam_iic, device_addr, 0x519e, 0xa0)
cam_i2c_write(cam_iic, device_addr, 0x3a0f, 0x3c)
cam_i2c_write(cam_iic, device_addr, 0x3a10, 0x30)
cam_i2c_write(cam_iic, device_addr, 0x3a1b, 0x3c)
cam_i2c_write(cam_iic, device_addr, 0x3a1e, 0x30)
cam_i2c_write(cam_iic, device_addr, 0x3a11, 0x70)
cam_i2c_write(cam_iic, device_addr, 0x3a1f, 0x10)
cam_i2c_write(cam_iic, device_addr, 0x3800, 0x1)
cam_i2c_write(cam_iic, device_addr, 0x3801, 0x50)
cam_i2c_write(cam_iic, device_addr, 0x3802, 0x0)
cam_i2c_write(cam_iic, device_addr, 0x3803, 0x8)
cam_i2c_write(cam_iic, device_addr, 0x3804, 0x5)
cam_i2c_write(cam_iic, device_addr, 0x3805, 0x0)
cam_i2c_write(cam_iic, device_addr, 0x3806, 0x3)
cam_i2c_write(cam_iic, device_addr, 0x3807, 0xc0)
cam_i2c_write(cam_iic, device_addr, 0x3808, 0x3)
cam_i2c_write(cam_iic, device_addr, 0x3809, 0x20)
cam_i2c_write(cam_iic, device_addr, 0x380a, 0x2)
cam_i2c_write(cam_iic, device_addr, 0x380b, 0x58)
cam_i2c_write(cam_iic, device_addr, 0x380c, 0xc)
cam_i2c_write(cam_iic, device_addr, 0x380d, 0x80)
cam_i2c_write(cam_iic, device_addr, 0x380e, 0x3)
cam_i2c_write(cam_iic, device_addr, 0x380f, 0xe8)
cam_i2c_write(cam_iic, device_addr, 0x5001, 0x7f)
cam_i2c_write(cam_iic, device_addr, 0x5680, 0x0)
cam_i2c_write(cam_iic, device_addr, 0x5681, 0x0)
cam_i2c_write(cam_iic, device_addr, 0x5682, 0x5)
cam_i2c_write(cam_iic, device_addr, 0x5683, 0x0)
cam_i2c_write(cam_iic, device_addr, 0x5684, 0x0)
cam_i2c_write(cam_iic, device_addr, 0x5685, 0x0)
cam_i2c_write(cam_iic, device_addr, 0x5686, 0x3)
cam_i2c_write(cam_iic, device_addr, 0x5687, 0xc0)
cam_i2c_write(cam_iic, device_addr, 0x5687, 0xc0)
cam_i2c_write(cam_iic, device_addr, 0x3815, 0x02)
cam_i2c_write(cam_iic, device_addr, 0x3503, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x3818, 0x81) # No Mirror
cam_i2c_write(cam_iic, device_addr, 0x3621, 0xa7)
cam_i2c_write(cam_iic, device_addr, 0x4740, 0x21)
cam_i2c_write(cam_iic, device_addr, 0x501e, 0x2a)
cam_i2c_write(cam_iic, device_addr, 0x5002, 0x78)
cam_i2c_write(cam_iic, device_addr, 0x501f, 0x01)
cam_i2c_write(cam_iic, device_addr, 0x4300, 0x61)
# frame buffer alocate
height = 600
width = 800
buffer0 = allocate(shape=(height, width, 1), dtype=np.uint32, cacheable=1)
buffer1 = allocate(shape=(height, width, 1), dtype=np.uint32, cacheable=1)
buffer2 = allocate(shape=(height, width, 1), dtype=np.uint32, cacheable=1)
# frame buffer resister set
vflip_dmaw.register_map.fb0_1 = buffer0.physical_address
vflip_dmaw.register_map.fb0_2 = 0
vflip_dmaw.register_map.fb1_1 = buffer1.physical_address
vflip_dmaw.register_map.fb1_2 = 0
vflip_dmaw.register_map.fb2_1 = buffer2.physical_address
vflip_dmaw.register_map.fb2_2 = 0
dma2axis3.register_map.fb0 = buffer0.physical_address
dma2axis3.register_map.fb1 = buffer1.physical_address
dma2axis3.register_map.fb2 = buffer2.physical_address
dma2axis3.register_map.mode = 0 # DMA_WRITE_MODE
# vflip_dma_write start and auto repeat
vflip_dmaw.register_map.CTRL = 0x81
# Camera Initialization
cam_i2c_init(cam_iic)
cam_reg_set(cam_iic, 0x78)
# paracam_inf_axi start
paracam_inf.write(0x0, 0x0)
paracam_inf.write(0x4, 0x0)
# bitmap_disp_cont start
bmpd_cont.write(0x0, 0x0)
# dma2axis_3buf start and auto repeat
dma2axis3.register_map.CTRL = 0x81
xilinx@pynq:~$ 8<--- cut here ---
8<--- cut here ---
Unable to handle kernel NULL pointer dereference at virtual address 00000062
Unable to handle kernel NULL pointer dereference at virtual address 00000062
pgd = 852ddc6b
pgd = d985c003
[00000062] *pgd=15442831, *pte=00000000, *ppte=00000000
[00000062] *pgd=125a0831, *pte=00000000, *ppte=00000000
Internal error: Oops - BUG: 80000007 [#1] PREEMPT SMP ARM
# cam_disp.py
# 2022/08/05 by marsee
from PIL import Image
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
from pynq import allocate, Overlay
import time
# Download bitstream
cam_disp = Overlay("./cam_disp.bit")
# Generate an instance for each IP
vflip_dmaw = cam_disp.vflip_dma_write_0
dma2axis3 = cam_disp.DMA2axis_3buf_0
paracam_inf = cam_disp.paracam_inf_axis_0
bmpd_cont = cam_disp.btimap_disp_cont_axis_0
cam_iic = cam_disp.cam_iic_0
def cam_i2c_init(cam_iic):
cam_iic.write(0x100, 0x2) # reset tx fifo ,address is 0x100, i2c_control_reg
cam_iic.write(0x100, 0x1) # enable i2c
def cam_i2x_write_sync():
time.sleep(0.001) # 1ms wait
def cam_i2c_write(cam_iic, device_addr, write_addr, write_data):
cam_iic.write(0x108, bin(0x100 | (device_addr & 0xfe))) # Slave IIC Write Address, address is 0x108, i2c_tx_fifo
cam_iic.write(0x108, bin((write_addr >> 8) & 0xff)) # address upper byte
cam_iic.write(0x108, bin(write_addr & 0xff)) # address lower byte
cam_iic.write(0x108, bin(0x200 | (write_data & 0xff))) # data
cam_i2x_write_sync()
def cam_reg_set(cam_iic, device_addr):
cam_i2c_write(cam_iic, device_addr, 0x3103, 0x93)
cam_i2c_write(cam_iic, device_addr, 0x3008, 0x82)
cam_i2c_write(cam_iic, device_addr, 0x3017, 0x7f)
cam_i2c_write(cam_iic, device_addr, 0x3018, 0xfc)
cam_i2c_write(cam_iic, device_addr, 0x3810, 0xc2)
cam_i2c_write(cam_iic, device_addr, 0x3615, 0xf0)
cam_i2c_write(cam_iic, device_addr, 0x3000, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x3001, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x3002, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x3003, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x3000, 0xf8)
cam_i2c_write(cam_iic, device_addr, 0x3001, 0x48)
cam_i2c_write(cam_iic, device_addr, 0x3002, 0x5c)
cam_i2c_write(cam_iic, device_addr, 0x3003, 0x02)
cam_i2c_write(cam_iic, device_addr, 0x3004, 0x07)
cam_i2c_write(cam_iic, device_addr, 0x3005, 0xb7)
cam_i2c_write(cam_iic, device_addr, 0x3006, 0x43)
cam_i2c_write(cam_iic, device_addr, 0x3007, 0x37)
cam_i2c_write(cam_iic, device_addr, 0x3011, 0x08) # 0x08 - 15fps, 0x10 - 30fps
cam_i2c_write(cam_iic, device_addr, 0x3010, 0x10)
cam_i2c_write(cam_iic, device_addr, 0x460c, 0x22)
cam_i2c_write(cam_iic, device_addr, 0x3815, 0x04)
cam_i2c_write(cam_iic, device_addr, 0x370d, 0x06)
cam_i2c_write(cam_iic, device_addr, 0x370c, 0xa0)
cam_i2c_write(cam_iic, device_addr, 0x3602, 0xfc)
cam_i2c_write(cam_iic, device_addr, 0x3612, 0xff)
cam_i2c_write(cam_iic, device_addr, 0x3634, 0xc0)
cam_i2c_write(cam_iic, device_addr, 0x3613, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x3605, 0x7c)
cam_i2c_write(cam_iic, device_addr, 0x3621, 0x09)
cam_i2c_write(cam_iic, device_addr, 0x3622, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x3604, 0x40)
cam_i2c_write(cam_iic, device_addr, 0x3603, 0xa7)
cam_i2c_write(cam_iic, device_addr, 0x3603, 0x27)
cam_i2c_write(cam_iic, device_addr, 0x4000, 0x21)
cam_i2c_write(cam_iic, device_addr, 0x401d, 0x02)
cam_i2c_write(cam_iic, device_addr, 0x3600, 0x54)
cam_i2c_write(cam_iic, device_addr, 0x3605, 0x04)
cam_i2c_write(cam_iic, device_addr, 0x3606, 0x3f)
cam_i2c_write(cam_iic, device_addr, 0x3c01, 0x80)
cam_i2c_write(cam_iic, device_addr, 0x5000, 0x4f)
cam_i2c_write(cam_iic, device_addr, 0x5020, 0x04)
cam_i2c_write(cam_iic, device_addr, 0x5181, 0x79)
cam_i2c_write(cam_iic, device_addr, 0x5182, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5185, 0x22)
cam_i2c_write(cam_iic, device_addr, 0x5197, 0x01)
cam_i2c_write(cam_iic, device_addr, 0x5001, 0xff)
cam_i2c_write(cam_iic, device_addr, 0x5500, 0x0a)
cam_i2c_write(cam_iic, device_addr, 0x5504, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5505, 0x7f)
cam_i2c_write(cam_iic, device_addr, 0x5080, 0x08)
cam_i2c_write(cam_iic, device_addr, 0x300e, 0x18)
cam_i2c_write(cam_iic, device_addr, 0x4610, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x471d, 0x05)
cam_i2c_write(cam_iic, device_addr, 0x4708, 0x06)
cam_i2c_write(cam_iic, device_addr, 0x3710, 0x10)
cam_i2c_write(cam_iic, device_addr, 0x3632, 0x41)
cam_i2c_write(cam_iic, device_addr, 0x3702, 0x40)
cam_i2c_write(cam_iic, device_addr, 0x3620, 0x37)
cam_i2c_write(cam_iic, device_addr, 0x3631, 0x01)
cam_i2c_write(cam_iic, device_addr, 0x3808, 0x02)
cam_i2c_write(cam_iic, device_addr, 0x3809, 0x80)
cam_i2c_write(cam_iic, device_addr, 0x380a, 0x01)
cam_i2c_write(cam_iic, device_addr, 0x380b, 0xe0)
cam_i2c_write(cam_iic, device_addr, 0x380e, 0x07)
cam_i2c_write(cam_iic, device_addr, 0x380f, 0xd0)
cam_i2c_write(cam_iic, device_addr, 0x501f, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5000, 0x4f)
cam_i2c_write(cam_iic, device_addr, 0x4300, 0x61) # RGB565
cam_i2c_write(cam_iic, device_addr, 0x3503, 0x07)
cam_i2c_write(cam_iic, device_addr, 0x3501, 0x73)
cam_i2c_write(cam_iic, device_addr, 0x3502, 0x80)
cam_i2c_write(cam_iic, device_addr, 0x350b, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x3503, 0x07)
cam_i2c_write(cam_iic, device_addr, 0x3824, 0x11)
cam_i2c_write(cam_iic, device_addr, 0x3501, 0x1e)
cam_i2c_write(cam_iic, device_addr, 0x3502, 0x80)
cam_i2c_write(cam_iic, device_addr, 0x350b, 0x7f)
cam_i2c_write(cam_iic, device_addr, 0x380c, 0x0c)
cam_i2c_write(cam_iic, device_addr, 0x380d, 0x80)
cam_i2c_write(cam_iic, device_addr, 0x380e, 0x03)
cam_i2c_write(cam_iic, device_addr, 0x380f, 0xe8)
cam_i2c_write(cam_iic, device_addr, 0x3a0d, 0x04)
cam_i2c_write(cam_iic, device_addr, 0x3a0e, 0x03)
cam_i2c_write(cam_iic, device_addr, 0x3818, 0xc1)
cam_i2c_write(cam_iic, device_addr, 0x3705, 0xdb)
cam_i2c_write(cam_iic, device_addr, 0x370a, 0x81)
cam_i2c_write(cam_iic, device_addr, 0x3801, 0x80)
cam_i2c_write(cam_iic, device_addr, 0x3621, 0xc7)
cam_i2c_write(cam_iic, device_addr, 0x3801, 0x50)
cam_i2c_write(cam_iic, device_addr, 0x3803, 0x08)
cam_i2c_write(cam_iic, device_addr, 0x3827, 0x08)
cam_i2c_write(cam_iic, device_addr, 0x3810, 0xc0)
cam_i2c_write(cam_iic, device_addr, 0x3804, 0x05)
cam_i2c_write(cam_iic, device_addr, 0x3805, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5682, 0x05)
cam_i2c_write(cam_iic, device_addr, 0x5683, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x3806, 0x03)
cam_i2c_write(cam_iic, device_addr, 0x3807, 0xc0)
cam_i2c_write(cam_iic, device_addr, 0x5686, 0x03)
cam_i2c_write(cam_iic, device_addr, 0x5687, 0xc0)
cam_i2c_write(cam_iic, device_addr, 0x3a00, 0x78)
cam_i2c_write(cam_iic, device_addr, 0x3a1a, 0x04)
cam_i2c_write(cam_iic, device_addr, 0x3a13, 0x30)
cam_i2c_write(cam_iic, device_addr, 0x3a18, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x3a19, 0x7c)
cam_i2c_write(cam_iic, device_addr, 0x3a08, 0x12)
cam_i2c_write(cam_iic, device_addr, 0x3a09, 0xc0)
cam_i2c_write(cam_iic, device_addr, 0x3a0a, 0x0f)
cam_i2c_write(cam_iic, device_addr, 0x3a0b, 0xa0)
cam_i2c_write(cam_iic, device_addr, 0x3004, 0xff)
cam_i2c_write(cam_iic, device_addr, 0x350c, 0x07)
cam_i2c_write(cam_iic, device_addr, 0x350d, 0xd0)
cam_i2c_write(cam_iic, device_addr, 0x3500, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x3501, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x3502, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x350a, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x350b, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x3503, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x528a, 0x02)
cam_i2c_write(cam_iic, device_addr, 0x528b, 0x04)
cam_i2c_write(cam_iic, device_addr, 0x528c, 0x08)
cam_i2c_write(cam_iic, device_addr, 0x528d, 0x08)
cam_i2c_write(cam_iic, device_addr, 0x528e, 0x08)
cam_i2c_write(cam_iic, device_addr, 0x528f, 0x10)
cam_i2c_write(cam_iic, device_addr, 0x5290, 0x10)
cam_i2c_write(cam_iic, device_addr, 0x5292, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5293, 0x02)
cam_i2c_write(cam_iic, device_addr, 0x5294, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5295, 0x02)
cam_i2c_write(cam_iic, device_addr, 0x5296, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5297, 0x02)
cam_i2c_write(cam_iic, device_addr, 0x5298, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5299, 0x02)
cam_i2c_write(cam_iic, device_addr, 0x529a, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x529b, 0x02)
cam_i2c_write(cam_iic, device_addr, 0x529c, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x529d, 0x02)
cam_i2c_write(cam_iic, device_addr, 0x529e, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x529f, 0x02)
cam_i2c_write(cam_iic, device_addr, 0x3a0f, 0x3c)
cam_i2c_write(cam_iic, device_addr, 0x3a10, 0x30)
cam_i2c_write(cam_iic, device_addr, 0x3a1b, 0x3c)
cam_i2c_write(cam_iic, device_addr, 0x3a1e, 0x30)
cam_i2c_write(cam_iic, device_addr, 0x3a11, 0x70)
cam_i2c_write(cam_iic, device_addr, 0x3a1f, 0x10)
cam_i2c_write(cam_iic, device_addr, 0x3030, 0x0b)
cam_i2c_write(cam_iic, device_addr, 0x3a02, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x3a03, 0x7d)
cam_i2c_write(cam_iic, device_addr, 0x3a04, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x3a14, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x3a15, 0x7d)
cam_i2c_write(cam_iic, device_addr, 0x3a16, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x3a00, 0x78)
cam_i2c_write(cam_iic, device_addr, 0x3a08, 0x09)
cam_i2c_write(cam_iic, device_addr, 0x3a09, 0x60)
cam_i2c_write(cam_iic, device_addr, 0x3a0a, 0x07)
cam_i2c_write(cam_iic, device_addr, 0x3a0b, 0xd0)
cam_i2c_write(cam_iic, device_addr, 0x3a0d, 0x08)
cam_i2c_write(cam_iic, device_addr, 0x3a0e, 0x06)
cam_i2c_write(cam_iic, device_addr, 0x5193, 0x70)
cam_i2c_write(cam_iic, device_addr, 0x3620, 0x57)
cam_i2c_write(cam_iic, device_addr, 0x3703, 0x98)
cam_i2c_write(cam_iic, device_addr, 0x3704, 0x1c)
cam_i2c_write(cam_iic, device_addr, 0x589b, 0x04)
cam_i2c_write(cam_iic, device_addr, 0x589a, 0xc5)
cam_i2c_write(cam_iic, device_addr, 0x528a, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x528b, 0x02)
cam_i2c_write(cam_iic, device_addr, 0x528c, 0x08)
cam_i2c_write(cam_iic, device_addr, 0x528d, 0x10)
cam_i2c_write(cam_iic, device_addr, 0x528e, 0x20)
cam_i2c_write(cam_iic, device_addr, 0x528f, 0x28)
cam_i2c_write(cam_iic, device_addr, 0x5290, 0x30)
cam_i2c_write(cam_iic, device_addr, 0x5292, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5293, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5294, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5295, 0x02)
cam_i2c_write(cam_iic, device_addr, 0x5296, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5297, 0x08)
cam_i2c_write(cam_iic, device_addr, 0x5298, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5299, 0x10)
cam_i2c_write(cam_iic, device_addr, 0x529a, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x529b, 0x20)
cam_i2c_write(cam_iic, device_addr, 0x529c, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x529d, 0x28)
cam_i2c_write(cam_iic, device_addr, 0x529e, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x529f, 0x30)
cam_i2c_write(cam_iic, device_addr, 0x5282, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5300, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5301, 0x20)
cam_i2c_write(cam_iic, device_addr, 0x5302, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5303, 0x7c)
cam_i2c_write(cam_iic, device_addr, 0x530c, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x530d, 0x0c)
cam_i2c_write(cam_iic, device_addr, 0x530e, 0x20)
cam_i2c_write(cam_iic, device_addr, 0x530f, 0x80)
cam_i2c_write(cam_iic, device_addr, 0x5310, 0x20)
cam_i2c_write(cam_iic, device_addr, 0x5311, 0x80)
cam_i2c_write(cam_iic, device_addr, 0x5308, 0x20)
cam_i2c_write(cam_iic, device_addr, 0x5309, 0x40)
cam_i2c_write(cam_iic, device_addr, 0x5304, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5305, 0x30)
cam_i2c_write(cam_iic, device_addr, 0x5306, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5307, 0x80)
cam_i2c_write(cam_iic, device_addr, 0x5314, 0x08)
cam_i2c_write(cam_iic, device_addr, 0x5315, 0x20)
cam_i2c_write(cam_iic, device_addr, 0x5319, 0x30)
cam_i2c_write(cam_iic, device_addr, 0x5316, 0x10)
cam_i2c_write(cam_iic, device_addr, 0x5317, 0x08)
cam_i2c_write(cam_iic, device_addr, 0x5318, 0x02)
cam_i2c_write(cam_iic, device_addr, 0x5380, 0x01)
cam_i2c_write(cam_iic, device_addr, 0x5381, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5382, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5383, 0x4e)
cam_i2c_write(cam_iic, device_addr, 0x5384, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5385, 0x0f)
cam_i2c_write(cam_iic, device_addr, 0x5386, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5387, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5388, 0x01)
cam_i2c_write(cam_iic, device_addr, 0x5389, 0x15)
cam_i2c_write(cam_iic, device_addr, 0x538a, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x538b, 0x31)
cam_i2c_write(cam_iic, device_addr, 0x538c, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x538d, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x538e, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x538f, 0x0f)
cam_i2c_write(cam_iic, device_addr, 0x5390, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5391, 0xab)
cam_i2c_write(cam_iic, device_addr, 0x5392, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5393, 0xa2)
cam_i2c_write(cam_iic, device_addr, 0x5394, 0x08)
cam_i2c_write(cam_iic, device_addr, 0x5480, 0x14)
cam_i2c_write(cam_iic, device_addr, 0x5481, 0x21)
cam_i2c_write(cam_iic, device_addr, 0x5482, 0x36)
cam_i2c_write(cam_iic, device_addr, 0x5483, 0x57)
cam_i2c_write(cam_iic, device_addr, 0x5484, 0x65)
cam_i2c_write(cam_iic, device_addr, 0x5485, 0x71)
cam_i2c_write(cam_iic, device_addr, 0x5486, 0x7d)
cam_i2c_write(cam_iic, device_addr, 0x5487, 0x87)
cam_i2c_write(cam_iic, device_addr, 0x5488, 0x91)
cam_i2c_write(cam_iic, device_addr, 0x5489, 0x9a)
cam_i2c_write(cam_iic, device_addr, 0x548a, 0xaa)
cam_i2c_write(cam_iic, device_addr, 0x548b, 0xb8)
cam_i2c_write(cam_iic, device_addr, 0x548c, 0xcd)
cam_i2c_write(cam_iic, device_addr, 0x548d, 0xdd)
cam_i2c_write(cam_iic, device_addr, 0x548e, 0xea)
cam_i2c_write(cam_iic, device_addr, 0x548f, 0x10)
cam_i2c_write(cam_iic, device_addr, 0x5490, 0x05)
cam_i2c_write(cam_iic, device_addr, 0x5491, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5492, 0x04)
cam_i2c_write(cam_iic, device_addr, 0x5493, 0x20)
cam_i2c_write(cam_iic, device_addr, 0x5494, 0x03)
cam_i2c_write(cam_iic, device_addr, 0x5495, 0x60)
cam_i2c_write(cam_iic, device_addr, 0x5496, 0x02)
cam_i2c_write(cam_iic, device_addr, 0x5497, 0xb8)
cam_i2c_write(cam_iic, device_addr, 0x5498, 0x02)
cam_i2c_write(cam_iic, device_addr, 0x5499, 0x86)
cam_i2c_write(cam_iic, device_addr, 0x549a, 0x02)
cam_i2c_write(cam_iic, device_addr, 0x549b, 0x5b)
cam_i2c_write(cam_iic, device_addr, 0x549c, 0x02)
cam_i2c_write(cam_iic, device_addr, 0x549d, 0x3b)
cam_i2c_write(cam_iic, device_addr, 0x549e, 0x02)
cam_i2c_write(cam_iic, device_addr, 0x549f, 0x1c)
cam_i2c_write(cam_iic, device_addr, 0x54a0, 0x02)
cam_i2c_write(cam_iic, device_addr, 0x54a1, 0x04)
cam_i2c_write(cam_iic, device_addr, 0x54a2, 0x01)
cam_i2c_write(cam_iic, device_addr, 0x54a3, 0xed)
cam_i2c_write(cam_iic, device_addr, 0x54a4, 0x01)
cam_i2c_write(cam_iic, device_addr, 0x54a5, 0xc5)
cam_i2c_write(cam_iic, device_addr, 0x54a6, 0x01)
cam_i2c_write(cam_iic, device_addr, 0x54a7, 0xa5)
cam_i2c_write(cam_iic, device_addr, 0x54a8, 0x01)
cam_i2c_write(cam_iic, device_addr, 0x54a9, 0x6c)
cam_i2c_write(cam_iic, device_addr, 0x54aa, 0x01)
cam_i2c_write(cam_iic, device_addr, 0x54ab, 0x41)
cam_i2c_write(cam_iic, device_addr, 0x54ac, 0x01)
cam_i2c_write(cam_iic, device_addr, 0x54ad, 0x20)
cam_i2c_write(cam_iic, device_addr, 0x54ae, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x54af, 0x16)
cam_i2c_write(cam_iic, device_addr, 0x3406, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5192, 0x04) # 0x04
cam_i2c_write(cam_iic, device_addr, 0x5191, 0xf8) # 0xf8
cam_i2c_write(cam_iic, device_addr, 0x5193, 0x70)
cam_i2c_write(cam_iic, device_addr, 0x5194, 0xf0)
cam_i2c_write(cam_iic, device_addr, 0x5195, 0xf0)
cam_i2c_write(cam_iic, device_addr, 0x518d, 0x3d)
cam_i2c_write(cam_iic, device_addr, 0x518f, 0x54)
cam_i2c_write(cam_iic, device_addr, 0x518e, 0x3d)
cam_i2c_write(cam_iic, device_addr, 0x5190, 0x54)
cam_i2c_write(cam_iic, device_addr, 0x518b, 0xc0)
cam_i2c_write(cam_iic, device_addr, 0x518c, 0xbd)
cam_i2c_write(cam_iic, device_addr, 0x5187, 0x18)
cam_i2c_write(cam_iic, device_addr, 0x5188, 0x18)
cam_i2c_write(cam_iic, device_addr, 0x5189, 0x6e)
cam_i2c_write(cam_iic, device_addr, 0x518a, 0x68)
cam_i2c_write(cam_iic, device_addr, 0x5186, 0x1c)
cam_i2c_write(cam_iic, device_addr, 0x5181, 0x50)
cam_i2c_write(cam_iic, device_addr, 0x5184, 0x25)
cam_i2c_write(cam_iic, device_addr, 0x5182, 0x11)
cam_i2c_write(cam_iic, device_addr, 0x5183, 0x14)
cam_i2c_write(cam_iic, device_addr, 0x5184, 0x25)
cam_i2c_write(cam_iic, device_addr, 0x5185, 0x24)
cam_i2c_write(cam_iic, device_addr, 0x5025, 0x82)
cam_i2c_write(cam_iic, device_addr, 0x5583, 0x40)
cam_i2c_write(cam_iic, device_addr, 0x5584, 0x40)
cam_i2c_write(cam_iic, device_addr, 0x5580, 0x02) # 0x02
cam_i2c_write(cam_iic, device_addr, 0x3633, 0x07)
cam_i2c_write(cam_iic, device_addr, 0x3702, 0x10)
cam_i2c_write(cam_iic, device_addr, 0x3703, 0xb2)
cam_i2c_write(cam_iic, device_addr, 0x3704, 0x18)
cam_i2c_write(cam_iic, device_addr, 0x370b, 0x40)
cam_i2c_write(cam_iic, device_addr, 0x370d, 0x02)
cam_i2c_write(cam_iic, device_addr, 0x3620, 0x52)
cam_i2c_write(cam_iic, device_addr, 0x3c00, 0x04)
cam_i2c_write(cam_iic, device_addr, 0x5001, 0xFF)
cam_i2c_write(cam_iic, device_addr, 0x5282, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5300, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5301, 0x20)
cam_i2c_write(cam_iic, device_addr, 0x5302, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5303, 0x7c)
cam_i2c_write(cam_iic, device_addr, 0x530c, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x530d, 0x10)
cam_i2c_write(cam_iic, device_addr, 0x530e, 0x20)
cam_i2c_write(cam_iic, device_addr, 0x530f, 0x80)
cam_i2c_write(cam_iic, device_addr, 0x5310, 0x20)
cam_i2c_write(cam_iic, device_addr, 0x5311, 0x80)
cam_i2c_write(cam_iic, device_addr, 0x5308, 0x20)
cam_i2c_write(cam_iic, device_addr, 0x5309, 0x40)
cam_i2c_write(cam_iic, device_addr, 0x5304, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5305, 0x30)
cam_i2c_write(cam_iic, device_addr, 0x5306, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5307, 0x80)
cam_i2c_write(cam_iic, device_addr, 0x5314, 0x08)
cam_i2c_write(cam_iic, device_addr, 0x5315, 0x20)
cam_i2c_write(cam_iic, device_addr, 0x5319, 0x30)
cam_i2c_write(cam_iic, device_addr, 0x5316, 0x10)
cam_i2c_write(cam_iic, device_addr, 0x5317, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5318, 0x02)
cam_i2c_write(cam_iic, device_addr, 0x5500, 0x10)
cam_i2c_write(cam_iic, device_addr, 0x5502, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5503, 0x06)
cam_i2c_write(cam_iic, device_addr, 0x5504, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5505, 0x7f)
cam_i2c_write(cam_iic, device_addr, 0x5025, 0x80)
cam_i2c_write(cam_iic, device_addr, 0x5300, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5301, 0x20)
cam_i2c_write(cam_iic, device_addr, 0x5302, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5303, 0x7c)
cam_i2c_write(cam_iic, device_addr, 0x530c, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x530d, 0x0c)
cam_i2c_write(cam_iic, device_addr, 0x530e, 0x20)
cam_i2c_write(cam_iic, device_addr, 0x530f, 0x80)
cam_i2c_write(cam_iic, device_addr, 0x5310, 0x20)
cam_i2c_write(cam_iic, device_addr, 0x5311, 0x80)
cam_i2c_write(cam_iic, device_addr, 0x5308, 0x20)
cam_i2c_write(cam_iic, device_addr, 0x5309, 0x40)
cam_i2c_write(cam_iic, device_addr, 0x5304, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5305, 0x30)
cam_i2c_write(cam_iic, device_addr, 0x5306, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5307, 0x80)
cam_i2c_write(cam_iic, device_addr, 0x5314, 0x08)
cam_i2c_write(cam_iic, device_addr, 0x5315, 0x20)
cam_i2c_write(cam_iic, device_addr, 0x5319, 0x30)
cam_i2c_write(cam_iic, device_addr, 0x5316, 0x10)
cam_i2c_write(cam_iic, device_addr, 0x5317, 0x08)
cam_i2c_write(cam_iic, device_addr, 0x5318, 0x02)
cam_i2c_write(cam_iic, device_addr, 0x5380, 0x01)
cam_i2c_write(cam_iic, device_addr, 0x5381, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5382, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5383, 0x1f)
cam_i2c_write(cam_iic, device_addr, 0x5384, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5385, 0x06)
cam_i2c_write(cam_iic, device_addr, 0x5386, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5387, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5388, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5389, 0xE1)
cam_i2c_write(cam_iic, device_addr, 0x538A, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x538B, 0x2B)
cam_i2c_write(cam_iic, device_addr, 0x538C, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x538D, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x538E, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x538F, 0x10)
cam_i2c_write(cam_iic, device_addr, 0x5390, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5391, 0xB3)
cam_i2c_write(cam_iic, device_addr, 0x5392, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5393, 0xA6)
cam_i2c_write(cam_iic, device_addr, 0x5394, 0x08)
cam_i2c_write(cam_iic, device_addr, 0x5480, 0xd)
cam_i2c_write(cam_iic, device_addr, 0x5481, 0x18)
cam_i2c_write(cam_iic, device_addr, 0x5482, 0x2a)
cam_i2c_write(cam_iic, device_addr, 0x5483, 0x49)
cam_i2c_write(cam_iic, device_addr, 0x5484, 0x56)
cam_i2c_write(cam_iic, device_addr, 0x5485, 0x62)
cam_i2c_write(cam_iic, device_addr, 0x5486, 0x6c)
cam_i2c_write(cam_iic, device_addr, 0x5487, 0x76)
cam_i2c_write(cam_iic, device_addr, 0x5488, 0x80)
cam_i2c_write(cam_iic, device_addr, 0x5489, 0x88)
cam_i2c_write(cam_iic, device_addr, 0x548a, 0x96)
cam_i2c_write(cam_iic, device_addr, 0x548b, 0xa2)
cam_i2c_write(cam_iic, device_addr, 0x548c, 0xb8)
cam_i2c_write(cam_iic, device_addr, 0x548d, 0xcc)
cam_i2c_write(cam_iic, device_addr, 0x548e, 0xe0)
cam_i2c_write(cam_iic, device_addr, 0x548f, 0x10)
cam_i2c_write(cam_iic, device_addr, 0x5490, 0x3)
cam_i2c_write(cam_iic, device_addr, 0x5491, 0x40)
cam_i2c_write(cam_iic, device_addr, 0x5492, 0x3)
cam_i2c_write(cam_iic, device_addr, 0x5493, 0x0)
cam_i2c_write(cam_iic, device_addr, 0x5494, 0x2)
cam_i2c_write(cam_iic, device_addr, 0x5495, 0xa0)
cam_i2c_write(cam_iic, device_addr, 0x5496, 0x2)
cam_i2c_write(cam_iic, device_addr, 0x5497, 0x48)
cam_i2c_write(cam_iic, device_addr, 0x5498, 0x2)
cam_i2c_write(cam_iic, device_addr, 0x5499, 0x26)
cam_i2c_write(cam_iic, device_addr, 0x549a, 0x2)
cam_i2c_write(cam_iic, device_addr, 0x549b, 0xb)
cam_i2c_write(cam_iic, device_addr, 0x549c, 0x1)
cam_i2c_write(cam_iic, device_addr, 0x549d, 0xee)
cam_i2c_write(cam_iic, device_addr, 0x549e, 0x1)
cam_i2c_write(cam_iic, device_addr, 0x549f, 0xd8)
cam_i2c_write(cam_iic, device_addr, 0x54a0, 0x1)
cam_i2c_write(cam_iic, device_addr, 0x54a1, 0xc7)
cam_i2c_write(cam_iic, device_addr, 0x54a2, 0x1)
cam_i2c_write(cam_iic, device_addr, 0x54a3, 0xb3)
cam_i2c_write(cam_iic, device_addr, 0x54a4, 0x1)
cam_i2c_write(cam_iic, device_addr, 0x54a5, 0x90)
cam_i2c_write(cam_iic, device_addr, 0x54a6, 0x1)
cam_i2c_write(cam_iic, device_addr, 0x54a7, 0x62)
cam_i2c_write(cam_iic, device_addr, 0x54a8, 0x1)
cam_i2c_write(cam_iic, device_addr, 0x54a9, 0x27)
cam_i2c_write(cam_iic, device_addr, 0x54aa, 0x01)
cam_i2c_write(cam_iic, device_addr, 0x54ab, 0x09)
cam_i2c_write(cam_iic, device_addr, 0x54ac, 0x01)
cam_i2c_write(cam_iic, device_addr, 0x54ad, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x54ae, 0x0)
cam_i2c_write(cam_iic, device_addr, 0x54af, 0x40)
cam_i2c_write(cam_iic, device_addr, 0x54b0, 0x1)
cam_i2c_write(cam_iic, device_addr, 0x54b1, 0x20)
cam_i2c_write(cam_iic, device_addr, 0x54b2, 0x1)
cam_i2c_write(cam_iic, device_addr, 0x54b3, 0x40)
cam_i2c_write(cam_iic, device_addr, 0x54b4, 0x0)
cam_i2c_write(cam_iic, device_addr, 0x54b5, 0xf0)
cam_i2c_write(cam_iic, device_addr, 0x54b6, 0x1)
cam_i2c_write(cam_iic, device_addr, 0x54b7, 0xdf)
cam_i2c_write(cam_iic, device_addr, 0x5583, 0x5d)
cam_i2c_write(cam_iic, device_addr, 0x5584, 0x5d)
cam_i2c_write(cam_iic, device_addr, 0x5580, 0x06)
cam_i2c_write(cam_iic, device_addr, 0x5587, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5588, 0x20)
cam_i2c_write(cam_iic, device_addr, 0x558a, 0x09)
cam_i2c_write(cam_iic, device_addr, 0x5589, 0x10)
cam_i2c_write(cam_iic, device_addr, 0x5000, 0xcf)
cam_i2c_write(cam_iic, device_addr, 0x5800, 0x48)
cam_i2c_write(cam_iic, device_addr, 0x5801, 0x31)
cam_i2c_write(cam_iic, device_addr, 0x5802, 0x21)
cam_i2c_write(cam_iic, device_addr, 0x5803, 0x1b)
cam_i2c_write(cam_iic, device_addr, 0x5804, 0x1a)
cam_i2c_write(cam_iic, device_addr, 0x5805, 0x1e)
cam_i2c_write(cam_iic, device_addr, 0x5806, 0x29)
cam_i2c_write(cam_iic, device_addr, 0x5807, 0x38)
cam_i2c_write(cam_iic, device_addr, 0x5808, 0x26)
cam_i2c_write(cam_iic, device_addr, 0x5809, 0x17)
cam_i2c_write(cam_iic, device_addr, 0x580a, 0x11)
cam_i2c_write(cam_iic, device_addr, 0x580b, 0xe)
cam_i2c_write(cam_iic, device_addr, 0x580c, 0xd)
cam_i2c_write(cam_iic, device_addr, 0x580d, 0xe)
cam_i2c_write(cam_iic, device_addr, 0x580e, 0x13)
cam_i2c_write(cam_iic, device_addr, 0x580f, 0x1a)
cam_i2c_write(cam_iic, device_addr, 0x5810, 0x15)
cam_i2c_write(cam_iic, device_addr, 0x5811, 0xd)
cam_i2c_write(cam_iic, device_addr, 0x5812, 0x8)
cam_i2c_write(cam_iic, device_addr, 0x5813, 0x5)
cam_i2c_write(cam_iic, device_addr, 0x5814, 0x4)
cam_i2c_write(cam_iic, device_addr, 0x5815, 0x5)
cam_i2c_write(cam_iic, device_addr, 0x5816, 0x9)
cam_i2c_write(cam_iic, device_addr, 0x5817, 0xd)
cam_i2c_write(cam_iic, device_addr, 0x5818, 0x11)
cam_i2c_write(cam_iic, device_addr, 0x5819, 0xa)
cam_i2c_write(cam_iic, device_addr, 0x581a, 0x4)
cam_i2c_write(cam_iic, device_addr, 0x581b, 0x0)
cam_i2c_write(cam_iic, device_addr, 0x581c, 0x0)
cam_i2c_write(cam_iic, device_addr, 0x581d, 0x1)
cam_i2c_write(cam_iic, device_addr, 0x581e, 0x6)
cam_i2c_write(cam_iic, device_addr, 0x581f, 0x9)
cam_i2c_write(cam_iic, device_addr, 0x5820, 0x12)
cam_i2c_write(cam_iic, device_addr, 0x5821, 0xb)
cam_i2c_write(cam_iic, device_addr, 0x5822, 0x4)
cam_i2c_write(cam_iic, device_addr, 0x5823, 0x0)
cam_i2c_write(cam_iic, device_addr, 0x5824, 0x0)
cam_i2c_write(cam_iic, device_addr, 0x5825, 0x1)
cam_i2c_write(cam_iic, device_addr, 0x5826, 0x6)
cam_i2c_write(cam_iic, device_addr, 0x5827, 0xa)
cam_i2c_write(cam_iic, device_addr, 0x5828, 0x17)
cam_i2c_write(cam_iic, device_addr, 0x5829, 0xf)
cam_i2c_write(cam_iic, device_addr, 0x582a, 0x9)
cam_i2c_write(cam_iic, device_addr, 0x582b, 0x6)
cam_i2c_write(cam_iic, device_addr, 0x582c, 0x5)
cam_i2c_write(cam_iic, device_addr, 0x582d, 0x6)
cam_i2c_write(cam_iic, device_addr, 0x582e, 0xa)
cam_i2c_write(cam_iic, device_addr, 0x582f, 0xe)
cam_i2c_write(cam_iic, device_addr, 0x5830, 0x28)
cam_i2c_write(cam_iic, device_addr, 0x5831, 0x1a)
cam_i2c_write(cam_iic, device_addr, 0x5832, 0x11)
cam_i2c_write(cam_iic, device_addr, 0x5833, 0xe)
cam_i2c_write(cam_iic, device_addr, 0x5834, 0xe)
cam_i2c_write(cam_iic, device_addr, 0x5835, 0xf)
cam_i2c_write(cam_iic, device_addr, 0x5836, 0x15)
cam_i2c_write(cam_iic, device_addr, 0x5837, 0x1d)
cam_i2c_write(cam_iic, device_addr, 0x5838, 0x6e)
cam_i2c_write(cam_iic, device_addr, 0x5839, 0x39)
cam_i2c_write(cam_iic, device_addr, 0x583a, 0x27)
cam_i2c_write(cam_iic, device_addr, 0x583b, 0x1f)
cam_i2c_write(cam_iic, device_addr, 0x583c, 0x1e)
cam_i2c_write(cam_iic, device_addr, 0x583d, 0x23)
cam_i2c_write(cam_iic, device_addr, 0x583e, 0x2f)
cam_i2c_write(cam_iic, device_addr, 0x583f, 0x41)
cam_i2c_write(cam_iic, device_addr, 0x5840, 0xe)
cam_i2c_write(cam_iic, device_addr, 0x5841, 0xc)
cam_i2c_write(cam_iic, device_addr, 0x5842, 0xd)
cam_i2c_write(cam_iic, device_addr, 0x5843, 0xc)
cam_i2c_write(cam_iic, device_addr, 0x5844, 0xc)
cam_i2c_write(cam_iic, device_addr, 0x5845, 0xc)
cam_i2c_write(cam_iic, device_addr, 0x5846, 0xc)
cam_i2c_write(cam_iic, device_addr, 0x5847, 0xc)
cam_i2c_write(cam_iic, device_addr, 0x5848, 0xd)
cam_i2c_write(cam_iic, device_addr, 0x5849, 0xe)
cam_i2c_write(cam_iic, device_addr, 0x584a, 0xe)
cam_i2c_write(cam_iic, device_addr, 0x584b, 0xa)
cam_i2c_write(cam_iic, device_addr, 0x584c, 0xe)
cam_i2c_write(cam_iic, device_addr, 0x584d, 0xe)
cam_i2c_write(cam_iic, device_addr, 0x584e, 0x10)
cam_i2c_write(cam_iic, device_addr, 0x584f, 0x10)
cam_i2c_write(cam_iic, device_addr, 0x5850, 0x11)
cam_i2c_write(cam_iic, device_addr, 0x5851, 0xa)
cam_i2c_write(cam_iic, device_addr, 0x5852, 0xf)
cam_i2c_write(cam_iic, device_addr, 0x5853, 0xe)
cam_i2c_write(cam_iic, device_addr, 0x5854, 0x10)
cam_i2c_write(cam_iic, device_addr, 0x5855, 0x10)
cam_i2c_write(cam_iic, device_addr, 0x5856, 0x10)
cam_i2c_write(cam_iic, device_addr, 0x5857, 0xa)
cam_i2c_write(cam_iic, device_addr, 0x5858, 0xe)
cam_i2c_write(cam_iic, device_addr, 0x5859, 0xe)
cam_i2c_write(cam_iic, device_addr, 0x585a, 0xf)
cam_i2c_write(cam_iic, device_addr, 0x585b, 0xf)
cam_i2c_write(cam_iic, device_addr, 0x585c, 0xf)
cam_i2c_write(cam_iic, device_addr, 0x585d, 0xa)
cam_i2c_write(cam_iic, device_addr, 0x585e, 0x9)
cam_i2c_write(cam_iic, device_addr, 0x585f, 0xd)
cam_i2c_write(cam_iic, device_addr, 0x5860, 0xc)
cam_i2c_write(cam_iic, device_addr, 0x5861, 0xb)
cam_i2c_write(cam_iic, device_addr, 0x5862, 0xd)
cam_i2c_write(cam_iic, device_addr, 0x5863, 0x7)
cam_i2c_write(cam_iic, device_addr, 0x5864, 0x17)
cam_i2c_write(cam_iic, device_addr, 0x5865, 0x14)
cam_i2c_write(cam_iic, device_addr, 0x5866, 0x18)
cam_i2c_write(cam_iic, device_addr, 0x5867, 0x18)
cam_i2c_write(cam_iic, device_addr, 0x5868, 0x16)
cam_i2c_write(cam_iic, device_addr, 0x5869, 0x12)
cam_i2c_write(cam_iic, device_addr, 0x586a, 0x1b)
cam_i2c_write(cam_iic, device_addr, 0x586b, 0x1a)
cam_i2c_write(cam_iic, device_addr, 0x586c, 0x16)
cam_i2c_write(cam_iic, device_addr, 0x586d, 0x16)
cam_i2c_write(cam_iic, device_addr, 0x586e, 0x18)
cam_i2c_write(cam_iic, device_addr, 0x586f, 0x1f)
cam_i2c_write(cam_iic, device_addr, 0x5870, 0x1c)
cam_i2c_write(cam_iic, device_addr, 0x5871, 0x16)
cam_i2c_write(cam_iic, device_addr, 0x5872, 0x10)
cam_i2c_write(cam_iic, device_addr, 0x5873, 0xf)
cam_i2c_write(cam_iic, device_addr, 0x5874, 0x13)
cam_i2c_write(cam_iic, device_addr, 0x5875, 0x1c)
cam_i2c_write(cam_iic, device_addr, 0x5876, 0x1e)
cam_i2c_write(cam_iic, device_addr, 0x5877, 0x17)
cam_i2c_write(cam_iic, device_addr, 0x5878, 0x11)
cam_i2c_write(cam_iic, device_addr, 0x5879, 0x11)
cam_i2c_write(cam_iic, device_addr, 0x587a, 0x14)
cam_i2c_write(cam_iic, device_addr, 0x587b, 0x1e)
cam_i2c_write(cam_iic, device_addr, 0x587c, 0x1c)
cam_i2c_write(cam_iic, device_addr, 0x587d, 0x1c)
cam_i2c_write(cam_iic, device_addr, 0x587e, 0x1a)
cam_i2c_write(cam_iic, device_addr, 0x587f, 0x1a)
cam_i2c_write(cam_iic, device_addr, 0x5880, 0x1b)
cam_i2c_write(cam_iic, device_addr, 0x5881, 0x1f)
cam_i2c_write(cam_iic, device_addr, 0x5882, 0x14)
cam_i2c_write(cam_iic, device_addr, 0x5883, 0x1a)
cam_i2c_write(cam_iic, device_addr, 0x5884, 0x1d)
cam_i2c_write(cam_iic, device_addr, 0x5885, 0x1e)
cam_i2c_write(cam_iic, device_addr, 0x5886, 0x1a)
cam_i2c_write(cam_iic, device_addr, 0x5887, 0x1a)
cam_i2c_write(cam_iic, device_addr, 0x528a, 0x02)
cam_i2c_write(cam_iic, device_addr, 0x528b, 0x06)
cam_i2c_write(cam_iic, device_addr, 0x528c, 0x20)
cam_i2c_write(cam_iic, device_addr, 0x528d, 0x30)
cam_i2c_write(cam_iic, device_addr, 0x528e, 0x40)
cam_i2c_write(cam_iic, device_addr, 0x528f, 0x50)
cam_i2c_write(cam_iic, device_addr, 0x5290, 0x60)
cam_i2c_write(cam_iic, device_addr, 0x5292, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5293, 0x02)
cam_i2c_write(cam_iic, device_addr, 0x5294, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5295, 0x04)
cam_i2c_write(cam_iic, device_addr, 0x5296, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5297, 0x08)
cam_i2c_write(cam_iic, device_addr, 0x5298, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5299, 0x10)
cam_i2c_write(cam_iic, device_addr, 0x529a, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x529b, 0x20)
cam_i2c_write(cam_iic, device_addr, 0x529c, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x529d, 0x28)
cam_i2c_write(cam_iic, device_addr, 0x529e, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x529f, 0x30)
cam_i2c_write(cam_iic, device_addr, 0x5282, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5680, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5681, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5682, 0x05)
cam_i2c_write(cam_iic, device_addr, 0x5683, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5684, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5685, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x5686, 0x03)
cam_i2c_write(cam_iic, device_addr, 0x5687, 0xc0)
cam_i2c_write(cam_iic, device_addr, 0x5180, 0xff)
cam_i2c_write(cam_iic, device_addr, 0x5181, 0x52)
cam_i2c_write(cam_iic, device_addr, 0x5182, 0x11)
cam_i2c_write(cam_iic, device_addr, 0x5183, 0x14)
cam_i2c_write(cam_iic, device_addr, 0x5184, 0x25)
cam_i2c_write(cam_iic, device_addr, 0x5185, 0x24)
cam_i2c_write(cam_iic, device_addr, 0x5186, 0x14)
cam_i2c_write(cam_iic, device_addr, 0x5187, 0x14)
cam_i2c_write(cam_iic, device_addr, 0x5188, 0x14)
cam_i2c_write(cam_iic, device_addr, 0x5189, 0x80)
cam_i2c_write(cam_iic, device_addr, 0x518a, 0x60)
cam_i2c_write(cam_iic, device_addr, 0x518b, 0xa2)
cam_i2c_write(cam_iic, device_addr, 0x518c, 0x9c)
cam_i2c_write(cam_iic, device_addr, 0x518d, 0x36)
cam_i2c_write(cam_iic, device_addr, 0x518e, 0x34)
cam_i2c_write(cam_iic, device_addr, 0x518f, 0x54)
cam_i2c_write(cam_iic, device_addr, 0x5190, 0x4c)
cam_i2c_write(cam_iic, device_addr, 0x5191, 0xf8)
cam_i2c_write(cam_iic, device_addr, 0x5192, 0x04)
cam_i2c_write(cam_iic, device_addr, 0x5193, 0x70)
cam_i2c_write(cam_iic, device_addr, 0x5194, 0xf0)
cam_i2c_write(cam_iic, device_addr, 0x5195, 0xf0)
cam_i2c_write(cam_iic, device_addr, 0x5196, 0x03)
cam_i2c_write(cam_iic, device_addr, 0x5197, 0x01)
cam_i2c_write(cam_iic, device_addr, 0x5198, 0x05)
cam_i2c_write(cam_iic, device_addr, 0x5199, 0x2f)
cam_i2c_write(cam_iic, device_addr, 0x519a, 0x04)
cam_i2c_write(cam_iic, device_addr, 0x519b, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x519c, 0x06)
cam_i2c_write(cam_iic, device_addr, 0x519d, 0xa0)
cam_i2c_write(cam_iic, device_addr, 0x519e, 0xa0)
cam_i2c_write(cam_iic, device_addr, 0x3a0f, 0x3c)
cam_i2c_write(cam_iic, device_addr, 0x3a10, 0x30)
cam_i2c_write(cam_iic, device_addr, 0x3a1b, 0x3c)
cam_i2c_write(cam_iic, device_addr, 0x3a1e, 0x30)
cam_i2c_write(cam_iic, device_addr, 0x3a11, 0x70)
cam_i2c_write(cam_iic, device_addr, 0x3a1f, 0x10)
cam_i2c_write(cam_iic, device_addr, 0x3800, 0x1)
cam_i2c_write(cam_iic, device_addr, 0x3801, 0x50)
cam_i2c_write(cam_iic, device_addr, 0x3802, 0x0)
cam_i2c_write(cam_iic, device_addr, 0x3803, 0x8)
cam_i2c_write(cam_iic, device_addr, 0x3804, 0x5)
cam_i2c_write(cam_iic, device_addr, 0x3805, 0x0)
cam_i2c_write(cam_iic, device_addr, 0x3806, 0x3)
cam_i2c_write(cam_iic, device_addr, 0x3807, 0xc0)
cam_i2c_write(cam_iic, device_addr, 0x3808, 0x3)
cam_i2c_write(cam_iic, device_addr, 0x3809, 0x20)
cam_i2c_write(cam_iic, device_addr, 0x380a, 0x2)
cam_i2c_write(cam_iic, device_addr, 0x380b, 0x58)
cam_i2c_write(cam_iic, device_addr, 0x380c, 0xc)
cam_i2c_write(cam_iic, device_addr, 0x380d, 0x80)
cam_i2c_write(cam_iic, device_addr, 0x380e, 0x3)
cam_i2c_write(cam_iic, device_addr, 0x380f, 0xe8)
cam_i2c_write(cam_iic, device_addr, 0x5001, 0x7f)
cam_i2c_write(cam_iic, device_addr, 0x5680, 0x0)
cam_i2c_write(cam_iic, device_addr, 0x5681, 0x0)
cam_i2c_write(cam_iic, device_addr, 0x5682, 0x5)
cam_i2c_write(cam_iic, device_addr, 0x5683, 0x0)
cam_i2c_write(cam_iic, device_addr, 0x5684, 0x0)
cam_i2c_write(cam_iic, device_addr, 0x5685, 0x0)
cam_i2c_write(cam_iic, device_addr, 0x5686, 0x3)
cam_i2c_write(cam_iic, device_addr, 0x5687, 0xc0)
cam_i2c_write(cam_iic, device_addr, 0x5687, 0xc0)
cam_i2c_write(cam_iic, device_addr, 0x3815, 0x02)
cam_i2c_write(cam_iic, device_addr, 0x3503, 0x00)
cam_i2c_write(cam_iic, device_addr, 0x3818, 0x81) # No Mirror
cam_i2c_write(cam_iic, device_addr, 0x3621, 0xa7)
cam_i2c_write(cam_iic, device_addr, 0x4740, 0x21)
cam_i2c_write(cam_iic, device_addr, 0x501e, 0x2a)
cam_i2c_write(cam_iic, device_addr, 0x5002, 0x78)
cam_i2c_write(cam_iic, device_addr, 0x501f, 0x01)
cam_i2c_write(cam_iic, device_addr, 0x4300, 0x61)
# frame buffer alocate
height = 600
width = 800
buffer0 = allocate(shape=(height, width, 1), dtype=np.uint32, cacheable=1)
buffer1 = allocate(shape=(height, width, 1), dtype=np.uint32, cacheable=1)
buffer2 = allocate(shape=(height, width, 1), dtype=np.uint32, cacheable=1)
# frame buffer resister set
vflip_dmaw.register_map.fb0 = buffer0.physical_address
vflip_dmaw.register_map.fb1 = buffer1.physical_address
vflip_dmaw.register_map.fb2 = buffer2.physical_address
dma2axis3.register_map.fb0 = buffer0.physical_address
dma2axis3.register_map.fb1 = buffer1.physical_address
dma2axis3.register_map.fb2 = buffer2.physical_address
dma2axis3.register_map.mode = 0 # DMA_WRITE_MODE
# vflip_dma_write start and auto repeat
vflip_dmaw.register_map.CTRL = 0x81
# Camera Initialization
cam_i2c_init(cam_iic)
cam_reg_set(cam_iic, 0x78)
# paracam_inf_axi start
paracam_inf.write(0x0, 0x0)
paracam_inf.write(0x4, 0x0)
# bitmap_disp_cont start
bmpd_cont.write(0x0, 0x0)
# dma2axis_3buf start and auto repeat
dma2axis3.register_map.CTRL = 0x81
#define CAMERA_DATA_DMA_ADDR0 0x10000000
#define CAMERA_DATA_DMA_ADDR1 0x10080000
#define CAMERA_DATA_DMA_ADDR2 0x10100000
#define CAMERA_DATA_DMA_ADDR0 0x10000000
#define CAMERA_DATA_DMA_ADDR1 0x10200000
#define CAMERA_DATA_DMA_ADDR2 0x10400000
// cam_disp.c
// 2022/08/01 by marsee
//
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include "xil_io.h"
#include "xparameters.h"
#include "xvflip_dma_write.h"
#include "xdma2axis_3buf.h"
#define CAMERA_DATA_DMA_ADDR0 0x10000000
#define CAMERA_DATA_DMA_ADDR1 0x10200000
#define CAMERA_DATA_DMA_ADDR2 0x10400000
#define HORIZONTAL_PIXELS 800
#define VERTICAL_LINES 600
int cam_reg_set(volatile unsigned *axi_iic, unsigned int device_addr);
void cam_i2c_init(volatile uint32_t *ov5642_axi_iic) {
ov5642_axi_iic[64] = 0x2; // reset tx fifo ,address is 0x100, i2c_control_reg
ov5642_axi_iic[64] = 0x1; // enable i2c
}
void cam_i2x_write_sync(void) {
// unsigned c;
// c = *cam_i2c_rx_fifo;
// while ((c & 0x84) != 0x80)
// c = *cam_i2c_rx_fifo; // No Bus Busy and TX_FIFO_Empty = 1
usleep(1000);
}
void cam_i2c_write(volatile uint32_t *ov5642_axi_iic, uint32_t device_addr, uint32_t write_addr, uint32_t write_data){
ov5642_axi_iic[66] = 0x100 | (device_addr & 0xfe); // Slave IIC Write Address, address is 0x108, i2c_tx_fifo
ov5642_axi_iic[66] = (write_addr >> 8) & 0xff; // address upper byte
ov5642_axi_iic[66] = write_addr & 0xff; // address lower byte
ov5642_axi_iic[66] = 0x200 | (write_data & 0xff); // data
cam_i2x_write_sync();
}
int main(){
XVflip_dma_write XVfilp_dma_write_ap;
XDma2axis_3buf XDma2s3b_ap;
int inbyte_in;
XVflip_dma_write_Initialize(&XVfilp_dma_write_ap, 0);
XDma2axis_3buf_Initialize(&XDma2s3b_ap, 0);
XVflip_dma_write_Set_fb0(&XVfilp_dma_write_ap, (u32)CAMERA_DATA_DMA_ADDR0);
XVflip_dma_write_Set_fb1(&XVfilp_dma_write_ap, (u32)CAMERA_DATA_DMA_ADDR1);
XVflip_dma_write_Set_fb2(&XVfilp_dma_write_ap, (u32)CAMERA_DATA_DMA_ADDR2);
XDma2axis_3buf_Set_fb0(&XDma2s3b_ap, (u32)CAMERA_DATA_DMA_ADDR0);
XDma2axis_3buf_Set_fb1(&XDma2s3b_ap, (u32)CAMERA_DATA_DMA_ADDR1);
XDma2axis_3buf_Set_fb2(&XDma2s3b_ap, (u32)CAMERA_DATA_DMA_ADDR2);
XDma2axis_3buf_Set_mode(&XDma2s3b_ap, 0); // DMA_WRITE_MODE
// vflip_dma_write start
XVflip_dma_write_Start(&XVfilp_dma_write_ap);
XVflip_dma_write_EnableAutoRestart(&XVfilp_dma_write_ap);
// CMOS Camera initialize, ov5642
cam_i2c_init((volatile uint32_t *)XPAR_AXI_IIC_0_BASEADDR);
cam_reg_set((volatile uint32_t *)(XPAR_AXI_IIC_0_BASEADDR), (uint32_t)0x78); // OV5642 register set
Xil_Out32(XPAR_PARACAM_INF_AXIS_0_BASEADDR, CAMERA_DATA_DMA_ADDR0); // ov5642 AXI4-Stream Start
Xil_Out32((XPAR_PARACAM_INF_AXIS_0_BASEADDR+4), 0);
// bitmap_disp_cont_axis start
Xil_Out32(XPAR_BITMAP_DISP_CONT_AXIS_0_BASEADDR, CAMERA_DATA_DMA_ADDR0); // dummy address, start
// DMA2axis start
XDma2axis_3buf_Start(&XDma2s3b_ap);
XDma2axis_3buf_EnableAutoRestart(&XDma2s3b_ap);
printf("The display stops when you press any key.");
fflush(stdout);
inbyte_in = inbyte();
printf("\n"); fflush(stdout);
// Display Stopped
XDma2axis_3buf_DisableAutoRestart(&XDma2s3b_ap);
while(XDma2axis_3buf_IsIdle(&XDma2s3b_ap)==0);
printf("The display resumes when you press any key.");
fflush(stdout);
inbyte_in = inbyte();
printf("\n"); fflush(stdout);
// DMA2axis resumes
XDma2axis_3buf_Start(&XDma2s3b_ap);
XDma2axis_3buf_EnableAutoRestart(&XDma2s3b_ap);
return(0);
}
int cam_reg_set(volatile unsigned *axi_iic, unsigned int device_addr){
cam_i2c_write(axi_iic, device_addr, 0x3103, 0x93);
cam_i2c_write(axi_iic, device_addr, 0x3008, 0x82);
cam_i2c_write(axi_iic, device_addr, 0x3017, 0x7f);
cam_i2c_write(axi_iic, device_addr, 0x3018, 0xfc);
cam_i2c_write(axi_iic, device_addr, 0x3810, 0xc2);
cam_i2c_write(axi_iic, device_addr, 0x3615, 0xf0);
cam_i2c_write(axi_iic, device_addr, 0x3000, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x3001, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x3002, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x3003, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x3000, 0xf8);
cam_i2c_write(axi_iic, device_addr, 0x3001, 0x48);
cam_i2c_write(axi_iic, device_addr, 0x3002, 0x5c);
cam_i2c_write(axi_iic, device_addr, 0x3003, 0x02);
cam_i2c_write(axi_iic, device_addr, 0x3004, 0x07);
cam_i2c_write(axi_iic, device_addr, 0x3005, 0xb7);
cam_i2c_write(axi_iic, device_addr, 0x3006, 0x43);
cam_i2c_write(axi_iic, device_addr, 0x3007, 0x37);
cam_i2c_write(axi_iic, device_addr, 0x3011, 0x08); // 0x08 - 15fps, 0x10 - 30fps
cam_i2c_write(axi_iic, device_addr, 0x3010, 0x10);
cam_i2c_write(axi_iic, device_addr, 0x460c, 0x22);
cam_i2c_write(axi_iic, device_addr, 0x3815, 0x04);
cam_i2c_write(axi_iic, device_addr, 0x370d, 0x06);
cam_i2c_write(axi_iic, device_addr, 0x370c, 0xa0);
cam_i2c_write(axi_iic, device_addr, 0x3602, 0xfc);
cam_i2c_write(axi_iic, device_addr, 0x3612, 0xff);
cam_i2c_write(axi_iic, device_addr, 0x3634, 0xc0);
cam_i2c_write(axi_iic, device_addr, 0x3613, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x3605, 0x7c);
cam_i2c_write(axi_iic, device_addr, 0x3621, 0x09);
cam_i2c_write(axi_iic, device_addr, 0x3622, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x3604, 0x40);
cam_i2c_write(axi_iic, device_addr, 0x3603, 0xa7);
cam_i2c_write(axi_iic, device_addr, 0x3603, 0x27);
cam_i2c_write(axi_iic, device_addr, 0x4000, 0x21);
cam_i2c_write(axi_iic, device_addr, 0x401d, 0x02);
cam_i2c_write(axi_iic, device_addr, 0x3600, 0x54);
cam_i2c_write(axi_iic, device_addr, 0x3605, 0x04);
cam_i2c_write(axi_iic, device_addr, 0x3606, 0x3f);
cam_i2c_write(axi_iic, device_addr, 0x3c01, 0x80);
cam_i2c_write(axi_iic, device_addr, 0x5000, 0x4f);
cam_i2c_write(axi_iic, device_addr, 0x5020, 0x04);
cam_i2c_write(axi_iic, device_addr, 0x5181, 0x79);
cam_i2c_write(axi_iic, device_addr, 0x5182, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5185, 0x22);
cam_i2c_write(axi_iic, device_addr, 0x5197, 0x01);
cam_i2c_write(axi_iic, device_addr, 0x5001, 0xff);
cam_i2c_write(axi_iic, device_addr, 0x5500, 0x0a);
cam_i2c_write(axi_iic, device_addr, 0x5504, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5505, 0x7f);
cam_i2c_write(axi_iic, device_addr, 0x5080, 0x08);
cam_i2c_write(axi_iic, device_addr, 0x300e, 0x18);
cam_i2c_write(axi_iic, device_addr, 0x4610, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x471d, 0x05);
cam_i2c_write(axi_iic, device_addr, 0x4708, 0x06);
cam_i2c_write(axi_iic, device_addr, 0x3710, 0x10);
cam_i2c_write(axi_iic, device_addr, 0x3632, 0x41);
cam_i2c_write(axi_iic, device_addr, 0x3702, 0x40);
cam_i2c_write(axi_iic, device_addr, 0x3620, 0x37);
cam_i2c_write(axi_iic, device_addr, 0x3631, 0x01);
cam_i2c_write(axi_iic, device_addr, 0x3808, 0x02);
cam_i2c_write(axi_iic, device_addr, 0x3809, 0x80);
cam_i2c_write(axi_iic, device_addr, 0x380a, 0x01);
cam_i2c_write(axi_iic, device_addr, 0x380b, 0xe0);
cam_i2c_write(axi_iic, device_addr, 0x380e, 0x07);
cam_i2c_write(axi_iic, device_addr, 0x380f, 0xd0);
cam_i2c_write(axi_iic, device_addr, 0x501f, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5000, 0x4f);
cam_i2c_write(axi_iic, device_addr, 0x4300, 0x61); // RGB565
cam_i2c_write(axi_iic, device_addr, 0x3503, 0x07);
cam_i2c_write(axi_iic, device_addr, 0x3501, 0x73);
cam_i2c_write(axi_iic, device_addr, 0x3502, 0x80);
cam_i2c_write(axi_iic, device_addr, 0x350b, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x3503, 0x07);
cam_i2c_write(axi_iic, device_addr, 0x3824, 0x11);
cam_i2c_write(axi_iic, device_addr, 0x3501, 0x1e);
cam_i2c_write(axi_iic, device_addr, 0x3502, 0x80);
cam_i2c_write(axi_iic, device_addr, 0x350b, 0x7f);
cam_i2c_write(axi_iic, device_addr, 0x380c, 0x0c);
cam_i2c_write(axi_iic, device_addr, 0x380d, 0x80);
cam_i2c_write(axi_iic, device_addr, 0x380e, 0x03);
cam_i2c_write(axi_iic, device_addr, 0x380f, 0xe8);
cam_i2c_write(axi_iic, device_addr, 0x3a0d, 0x04);
cam_i2c_write(axi_iic, device_addr, 0x3a0e, 0x03);
cam_i2c_write(axi_iic, device_addr, 0x3818, 0xc1);
cam_i2c_write(axi_iic, device_addr, 0x3705, 0xdb);
cam_i2c_write(axi_iic, device_addr, 0x370a, 0x81);
cam_i2c_write(axi_iic, device_addr, 0x3801, 0x80);
cam_i2c_write(axi_iic, device_addr, 0x3621, 0xc7);
cam_i2c_write(axi_iic, device_addr, 0x3801, 0x50);
cam_i2c_write(axi_iic, device_addr, 0x3803, 0x08);
cam_i2c_write(axi_iic, device_addr, 0x3827, 0x08);
cam_i2c_write(axi_iic, device_addr, 0x3810, 0xc0);
cam_i2c_write(axi_iic, device_addr, 0x3804, 0x05);
cam_i2c_write(axi_iic, device_addr, 0x3805, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5682, 0x05);
cam_i2c_write(axi_iic, device_addr, 0x5683, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x3806, 0x03);
cam_i2c_write(axi_iic, device_addr, 0x3807, 0xc0);
cam_i2c_write(axi_iic, device_addr, 0x5686, 0x03);
cam_i2c_write(axi_iic, device_addr, 0x5687, 0xc0);
cam_i2c_write(axi_iic, device_addr, 0x3a00, 0x78);
cam_i2c_write(axi_iic, device_addr, 0x3a1a, 0x04);
cam_i2c_write(axi_iic, device_addr, 0x3a13, 0x30);
cam_i2c_write(axi_iic, device_addr, 0x3a18, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x3a19, 0x7c);
cam_i2c_write(axi_iic, device_addr, 0x3a08, 0x12);
cam_i2c_write(axi_iic, device_addr, 0x3a09, 0xc0);
cam_i2c_write(axi_iic, device_addr, 0x3a0a, 0x0f);
cam_i2c_write(axi_iic, device_addr, 0x3a0b, 0xa0);
cam_i2c_write(axi_iic, device_addr, 0x3004, 0xff);
cam_i2c_write(axi_iic, device_addr, 0x350c, 0x07);
cam_i2c_write(axi_iic, device_addr, 0x350d, 0xd0);
cam_i2c_write(axi_iic, device_addr, 0x3500, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x3501, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x3502, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x350a, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x350b, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x3503, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x528a, 0x02);
cam_i2c_write(axi_iic, device_addr, 0x528b, 0x04);
cam_i2c_write(axi_iic, device_addr, 0x528c, 0x08);
cam_i2c_write(axi_iic, device_addr, 0x528d, 0x08);
cam_i2c_write(axi_iic, device_addr, 0x528e, 0x08);
cam_i2c_write(axi_iic, device_addr, 0x528f, 0x10);
cam_i2c_write(axi_iic, device_addr, 0x5290, 0x10);
cam_i2c_write(axi_iic, device_addr, 0x5292, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5293, 0x02);
cam_i2c_write(axi_iic, device_addr, 0x5294, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5295, 0x02);
cam_i2c_write(axi_iic, device_addr, 0x5296, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5297, 0x02);
cam_i2c_write(axi_iic, device_addr, 0x5298, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5299, 0x02);
cam_i2c_write(axi_iic, device_addr, 0x529a, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x529b, 0x02);
cam_i2c_write(axi_iic, device_addr, 0x529c, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x529d, 0x02);
cam_i2c_write(axi_iic, device_addr, 0x529e, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x529f, 0x02);
cam_i2c_write(axi_iic, device_addr, 0x3a0f, 0x3c);
cam_i2c_write(axi_iic, device_addr, 0x3a10, 0x30);
cam_i2c_write(axi_iic, device_addr, 0x3a1b, 0x3c);
cam_i2c_write(axi_iic, device_addr, 0x3a1e, 0x30);
cam_i2c_write(axi_iic, device_addr, 0x3a11, 0x70);
cam_i2c_write(axi_iic, device_addr, 0x3a1f, 0x10);
cam_i2c_write(axi_iic, device_addr, 0x3030, 0x0b);
cam_i2c_write(axi_iic, device_addr, 0x3a02, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x3a03, 0x7d);
cam_i2c_write(axi_iic, device_addr, 0x3a04, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x3a14, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x3a15, 0x7d);
cam_i2c_write(axi_iic, device_addr, 0x3a16, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x3a00, 0x78);
cam_i2c_write(axi_iic, device_addr, 0x3a08, 0x09);
cam_i2c_write(axi_iic, device_addr, 0x3a09, 0x60);
cam_i2c_write(axi_iic, device_addr, 0x3a0a, 0x07);
cam_i2c_write(axi_iic, device_addr, 0x3a0b, 0xd0);
cam_i2c_write(axi_iic, device_addr, 0x3a0d, 0x08);
cam_i2c_write(axi_iic, device_addr, 0x3a0e, 0x06);
cam_i2c_write(axi_iic, device_addr, 0x5193, 0x70);
cam_i2c_write(axi_iic, device_addr, 0x3620, 0x57);
cam_i2c_write(axi_iic, device_addr, 0x3703, 0x98);
cam_i2c_write(axi_iic, device_addr, 0x3704, 0x1c);
cam_i2c_write(axi_iic, device_addr, 0x589b, 0x04);
cam_i2c_write(axi_iic, device_addr, 0x589a, 0xc5);
cam_i2c_write(axi_iic, device_addr, 0x528a, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x528b, 0x02);
cam_i2c_write(axi_iic, device_addr, 0x528c, 0x08);
cam_i2c_write(axi_iic, device_addr, 0x528d, 0x10);
cam_i2c_write(axi_iic, device_addr, 0x528e, 0x20);
cam_i2c_write(axi_iic, device_addr, 0x528f, 0x28);
cam_i2c_write(axi_iic, device_addr, 0x5290, 0x30);
cam_i2c_write(axi_iic, device_addr, 0x5292, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5293, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5294, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5295, 0x02);
cam_i2c_write(axi_iic, device_addr, 0x5296, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5297, 0x08);
cam_i2c_write(axi_iic, device_addr, 0x5298, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5299, 0x10);
cam_i2c_write(axi_iic, device_addr, 0x529a, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x529b, 0x20);
cam_i2c_write(axi_iic, device_addr, 0x529c, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x529d, 0x28);
cam_i2c_write(axi_iic, device_addr, 0x529e, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x529f, 0x30);
cam_i2c_write(axi_iic, device_addr, 0x5282, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5300, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5301, 0x20);
cam_i2c_write(axi_iic, device_addr, 0x5302, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5303, 0x7c);
cam_i2c_write(axi_iic, device_addr, 0x530c, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x530d, 0x0c);
cam_i2c_write(axi_iic, device_addr, 0x530e, 0x20);
cam_i2c_write(axi_iic, device_addr, 0x530f, 0x80);
cam_i2c_write(axi_iic, device_addr, 0x5310, 0x20);
cam_i2c_write(axi_iic, device_addr, 0x5311, 0x80);
cam_i2c_write(axi_iic, device_addr, 0x5308, 0x20);
cam_i2c_write(axi_iic, device_addr, 0x5309, 0x40);
cam_i2c_write(axi_iic, device_addr, 0x5304, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5305, 0x30);
cam_i2c_write(axi_iic, device_addr, 0x5306, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5307, 0x80);
cam_i2c_write(axi_iic, device_addr, 0x5314, 0x08);
cam_i2c_write(axi_iic, device_addr, 0x5315, 0x20);
cam_i2c_write(axi_iic, device_addr, 0x5319, 0x30);
cam_i2c_write(axi_iic, device_addr, 0x5316, 0x10);
cam_i2c_write(axi_iic, device_addr, 0x5317, 0x08);
cam_i2c_write(axi_iic, device_addr, 0x5318, 0x02);
cam_i2c_write(axi_iic, device_addr, 0x5380, 0x01);
cam_i2c_write(axi_iic, device_addr, 0x5381, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5382, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5383, 0x4e);
cam_i2c_write(axi_iic, device_addr, 0x5384, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5385, 0x0f);
cam_i2c_write(axi_iic, device_addr, 0x5386, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5387, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5388, 0x01);
cam_i2c_write(axi_iic, device_addr, 0x5389, 0x15);
cam_i2c_write(axi_iic, device_addr, 0x538a, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x538b, 0x31);
cam_i2c_write(axi_iic, device_addr, 0x538c, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x538d, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x538e, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x538f, 0x0f);
cam_i2c_write(axi_iic, device_addr, 0x5390, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5391, 0xab);
cam_i2c_write(axi_iic, device_addr, 0x5392, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5393, 0xa2);
cam_i2c_write(axi_iic, device_addr, 0x5394, 0x08);
cam_i2c_write(axi_iic, device_addr, 0x5480, 0x14);
cam_i2c_write(axi_iic, device_addr, 0x5481, 0x21);
cam_i2c_write(axi_iic, device_addr, 0x5482, 0x36);
cam_i2c_write(axi_iic, device_addr, 0x5483, 0x57);
cam_i2c_write(axi_iic, device_addr, 0x5484, 0x65);
cam_i2c_write(axi_iic, device_addr, 0x5485, 0x71);
cam_i2c_write(axi_iic, device_addr, 0x5486, 0x7d);
cam_i2c_write(axi_iic, device_addr, 0x5487, 0x87);
cam_i2c_write(axi_iic, device_addr, 0x5488, 0x91);
cam_i2c_write(axi_iic, device_addr, 0x5489, 0x9a);
cam_i2c_write(axi_iic, device_addr, 0x548a, 0xaa);
cam_i2c_write(axi_iic, device_addr, 0x548b, 0xb8);
cam_i2c_write(axi_iic, device_addr, 0x548c, 0xcd);
cam_i2c_write(axi_iic, device_addr, 0x548d, 0xdd);
cam_i2c_write(axi_iic, device_addr, 0x548e, 0xea);
cam_i2c_write(axi_iic, device_addr, 0x548f, 0x10);
cam_i2c_write(axi_iic, device_addr, 0x5490, 0x05);
cam_i2c_write(axi_iic, device_addr, 0x5491, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5492, 0x04);
cam_i2c_write(axi_iic, device_addr, 0x5493, 0x20);
cam_i2c_write(axi_iic, device_addr, 0x5494, 0x03);
cam_i2c_write(axi_iic, device_addr, 0x5495, 0x60);
cam_i2c_write(axi_iic, device_addr, 0x5496, 0x02);
cam_i2c_write(axi_iic, device_addr, 0x5497, 0xb8);
cam_i2c_write(axi_iic, device_addr, 0x5498, 0x02);
cam_i2c_write(axi_iic, device_addr, 0x5499, 0x86);
cam_i2c_write(axi_iic, device_addr, 0x549a, 0x02);
cam_i2c_write(axi_iic, device_addr, 0x549b, 0x5b);
cam_i2c_write(axi_iic, device_addr, 0x549c, 0x02);
cam_i2c_write(axi_iic, device_addr, 0x549d, 0x3b);
cam_i2c_write(axi_iic, device_addr, 0x549e, 0x02);
cam_i2c_write(axi_iic, device_addr, 0x549f, 0x1c);
cam_i2c_write(axi_iic, device_addr, 0x54a0, 0x02);
cam_i2c_write(axi_iic, device_addr, 0x54a1, 0x04);
cam_i2c_write(axi_iic, device_addr, 0x54a2, 0x01);
cam_i2c_write(axi_iic, device_addr, 0x54a3, 0xed);
cam_i2c_write(axi_iic, device_addr, 0x54a4, 0x01);
cam_i2c_write(axi_iic, device_addr, 0x54a5, 0xc5);
cam_i2c_write(axi_iic, device_addr, 0x54a6, 0x01);
cam_i2c_write(axi_iic, device_addr, 0x54a7, 0xa5);
cam_i2c_write(axi_iic, device_addr, 0x54a8, 0x01);
cam_i2c_write(axi_iic, device_addr, 0x54a9, 0x6c);
cam_i2c_write(axi_iic, device_addr, 0x54aa, 0x01);
cam_i2c_write(axi_iic, device_addr, 0x54ab, 0x41);
cam_i2c_write(axi_iic, device_addr, 0x54ac, 0x01);
cam_i2c_write(axi_iic, device_addr, 0x54ad, 0x20);
cam_i2c_write(axi_iic, device_addr, 0x54ae, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x54af, 0x16);
cam_i2c_write(axi_iic, device_addr, 0x3406, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5192, 0x04); // 0x04
cam_i2c_write(axi_iic, device_addr, 0x5191, 0xf8); // 0xf8
cam_i2c_write(axi_iic, device_addr, 0x5193, 0x70);
cam_i2c_write(axi_iic, device_addr, 0x5194, 0xf0);
cam_i2c_write(axi_iic, device_addr, 0x5195, 0xf0);
cam_i2c_write(axi_iic, device_addr, 0x518d, 0x3d);
cam_i2c_write(axi_iic, device_addr, 0x518f, 0x54);
cam_i2c_write(axi_iic, device_addr, 0x518e, 0x3d);
cam_i2c_write(axi_iic, device_addr, 0x5190, 0x54);
cam_i2c_write(axi_iic, device_addr, 0x518b, 0xc0);
cam_i2c_write(axi_iic, device_addr, 0x518c, 0xbd);
cam_i2c_write(axi_iic, device_addr, 0x5187, 0x18);
cam_i2c_write(axi_iic, device_addr, 0x5188, 0x18);
cam_i2c_write(axi_iic, device_addr, 0x5189, 0x6e);
cam_i2c_write(axi_iic, device_addr, 0x518a, 0x68);
cam_i2c_write(axi_iic, device_addr, 0x5186, 0x1c);
cam_i2c_write(axi_iic, device_addr, 0x5181, 0x50);
cam_i2c_write(axi_iic, device_addr, 0x5184, 0x25);
cam_i2c_write(axi_iic, device_addr, 0x5182, 0x11);
cam_i2c_write(axi_iic, device_addr, 0x5183, 0x14);
cam_i2c_write(axi_iic, device_addr, 0x5184, 0x25);
cam_i2c_write(axi_iic, device_addr, 0x5185, 0x24);
cam_i2c_write(axi_iic, device_addr, 0x5025, 0x82);
cam_i2c_write(axi_iic, device_addr, 0x5583, 0x40);
cam_i2c_write(axi_iic, device_addr, 0x5584, 0x40);
cam_i2c_write(axi_iic, device_addr, 0x5580, 0x02); // 0x02
cam_i2c_write(axi_iic, device_addr, 0x3633, 0x07);
cam_i2c_write(axi_iic, device_addr, 0x3702, 0x10);
cam_i2c_write(axi_iic, device_addr, 0x3703, 0xb2);
cam_i2c_write(axi_iic, device_addr, 0x3704, 0x18);
cam_i2c_write(axi_iic, device_addr, 0x370b, 0x40);
cam_i2c_write(axi_iic, device_addr, 0x370d, 0x02);
cam_i2c_write(axi_iic, device_addr, 0x3620, 0x52);
cam_i2c_write(axi_iic, device_addr, 0x3c00, 0x04);
cam_i2c_write(axi_iic, device_addr, 0x5001, 0xFF);
cam_i2c_write(axi_iic, device_addr, 0x5282, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5300, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5301, 0x20);
cam_i2c_write(axi_iic, device_addr, 0x5302, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5303, 0x7c);
cam_i2c_write(axi_iic, device_addr, 0x530c, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x530d, 0x10);
cam_i2c_write(axi_iic, device_addr, 0x530e, 0x20);
cam_i2c_write(axi_iic, device_addr, 0x530f, 0x80);
cam_i2c_write(axi_iic, device_addr, 0x5310, 0x20);
cam_i2c_write(axi_iic, device_addr, 0x5311, 0x80);
cam_i2c_write(axi_iic, device_addr, 0x5308, 0x20);
cam_i2c_write(axi_iic, device_addr, 0x5309, 0x40);
cam_i2c_write(axi_iic, device_addr, 0x5304, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5305, 0x30);
cam_i2c_write(axi_iic, device_addr, 0x5306, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5307, 0x80);
cam_i2c_write(axi_iic, device_addr, 0x5314, 0x08);
cam_i2c_write(axi_iic, device_addr, 0x5315, 0x20);
cam_i2c_write(axi_iic, device_addr, 0x5319, 0x30);
cam_i2c_write(axi_iic, device_addr, 0x5316, 0x10);
cam_i2c_write(axi_iic, device_addr, 0x5317, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5318, 0x02);
cam_i2c_write(axi_iic, device_addr, 0x5500, 0x10);
cam_i2c_write(axi_iic, device_addr, 0x5502, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5503, 0x06);
cam_i2c_write(axi_iic, device_addr, 0x5504, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5505, 0x7f);
cam_i2c_write(axi_iic, device_addr, 0x5025, 0x80);
cam_i2c_write(axi_iic, device_addr, 0x5300, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5301, 0x20);
cam_i2c_write(axi_iic, device_addr, 0x5302, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5303, 0x7c);
cam_i2c_write(axi_iic, device_addr, 0x530c, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x530d, 0x0c);
cam_i2c_write(axi_iic, device_addr, 0x530e, 0x20);
cam_i2c_write(axi_iic, device_addr, 0x530f, 0x80);
cam_i2c_write(axi_iic, device_addr, 0x5310, 0x20);
cam_i2c_write(axi_iic, device_addr, 0x5311, 0x80);
cam_i2c_write(axi_iic, device_addr, 0x5308, 0x20);
cam_i2c_write(axi_iic, device_addr, 0x5309, 0x40);
cam_i2c_write(axi_iic, device_addr, 0x5304, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5305, 0x30);
cam_i2c_write(axi_iic, device_addr, 0x5306, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5307, 0x80);
cam_i2c_write(axi_iic, device_addr, 0x5314, 0x08);
cam_i2c_write(axi_iic, device_addr, 0x5315, 0x20);
cam_i2c_write(axi_iic, device_addr, 0x5319, 0x30);
cam_i2c_write(axi_iic, device_addr, 0x5316, 0x10);
cam_i2c_write(axi_iic, device_addr, 0x5317, 0x08);
cam_i2c_write(axi_iic, device_addr, 0x5318, 0x02);
cam_i2c_write(axi_iic, device_addr, 0x5380, 0x01);
cam_i2c_write(axi_iic, device_addr, 0x5381, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5382, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5383, 0x1f);
cam_i2c_write(axi_iic, device_addr, 0x5384, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5385, 0x06);
cam_i2c_write(axi_iic, device_addr, 0x5386, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5387, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5388, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5389, 0xE1);
cam_i2c_write(axi_iic, device_addr, 0x538A, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x538B, 0x2B);
cam_i2c_write(axi_iic, device_addr, 0x538C, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x538D, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x538E, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x538F, 0x10);
cam_i2c_write(axi_iic, device_addr, 0x5390, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5391, 0xB3);
cam_i2c_write(axi_iic, device_addr, 0x5392, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5393, 0xA6);
cam_i2c_write(axi_iic, device_addr, 0x5394, 0x08);
cam_i2c_write(axi_iic, device_addr, 0x5480, 0xd);
cam_i2c_write(axi_iic, device_addr, 0x5481, 0x18);
cam_i2c_write(axi_iic, device_addr, 0x5482, 0x2a);
cam_i2c_write(axi_iic, device_addr, 0x5483, 0x49);
cam_i2c_write(axi_iic, device_addr, 0x5484, 0x56);
cam_i2c_write(axi_iic, device_addr, 0x5485, 0x62);
cam_i2c_write(axi_iic, device_addr, 0x5486, 0x6c);
cam_i2c_write(axi_iic, device_addr, 0x5487, 0x76);
cam_i2c_write(axi_iic, device_addr, 0x5488, 0x80);
cam_i2c_write(axi_iic, device_addr, 0x5489, 0x88);
cam_i2c_write(axi_iic, device_addr, 0x548a, 0x96);
cam_i2c_write(axi_iic, device_addr, 0x548b, 0xa2);
cam_i2c_write(axi_iic, device_addr, 0x548c, 0xb8);
cam_i2c_write(axi_iic, device_addr, 0x548d, 0xcc);
cam_i2c_write(axi_iic, device_addr, 0x548e, 0xe0);
cam_i2c_write(axi_iic, device_addr, 0x548f, 0x10);
cam_i2c_write(axi_iic, device_addr, 0x5490, 0x3);
cam_i2c_write(axi_iic, device_addr, 0x5491, 0x40);
cam_i2c_write(axi_iic, device_addr, 0x5492, 0x3);
cam_i2c_write(axi_iic, device_addr, 0x5493, 0x0);
cam_i2c_write(axi_iic, device_addr, 0x5494, 0x2);
cam_i2c_write(axi_iic, device_addr, 0x5495, 0xa0);
cam_i2c_write(axi_iic, device_addr, 0x5496, 0x2);
cam_i2c_write(axi_iic, device_addr, 0x5497, 0x48);
cam_i2c_write(axi_iic, device_addr, 0x5498, 0x2);
cam_i2c_write(axi_iic, device_addr, 0x5499, 0x26);
cam_i2c_write(axi_iic, device_addr, 0x549a, 0x2);
cam_i2c_write(axi_iic, device_addr, 0x549b, 0xb);
cam_i2c_write(axi_iic, device_addr, 0x549c, 0x1);
cam_i2c_write(axi_iic, device_addr, 0x549d, 0xee);
cam_i2c_write(axi_iic, device_addr, 0x549e, 0x1);
cam_i2c_write(axi_iic, device_addr, 0x549f, 0xd8);
cam_i2c_write(axi_iic, device_addr, 0x54a0, 0x1);
cam_i2c_write(axi_iic, device_addr, 0x54a1, 0xc7);
cam_i2c_write(axi_iic, device_addr, 0x54a2, 0x1);
cam_i2c_write(axi_iic, device_addr, 0x54a3, 0xb3);
cam_i2c_write(axi_iic, device_addr, 0x54a4, 0x1);
cam_i2c_write(axi_iic, device_addr, 0x54a5, 0x90);
cam_i2c_write(axi_iic, device_addr, 0x54a6, 0x1);
cam_i2c_write(axi_iic, device_addr, 0x54a7, 0x62);
cam_i2c_write(axi_iic, device_addr, 0x54a8, 0x1);
cam_i2c_write(axi_iic, device_addr, 0x54a9, 0x27);
cam_i2c_write(axi_iic, device_addr, 0x54aa, 0x01);
cam_i2c_write(axi_iic, device_addr, 0x54ab, 0x09);
cam_i2c_write(axi_iic, device_addr, 0x54ac, 0x01);
cam_i2c_write(axi_iic, device_addr, 0x54ad, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x54ae, 0x0);
cam_i2c_write(axi_iic, device_addr, 0x54af, 0x40);
cam_i2c_write(axi_iic, device_addr, 0x54b0, 0x1);
cam_i2c_write(axi_iic, device_addr, 0x54b1, 0x20);
cam_i2c_write(axi_iic, device_addr, 0x54b2, 0x1);
cam_i2c_write(axi_iic, device_addr, 0x54b3, 0x40);
cam_i2c_write(axi_iic, device_addr, 0x54b4, 0x0);
cam_i2c_write(axi_iic, device_addr, 0x54b5, 0xf0);
cam_i2c_write(axi_iic, device_addr, 0x54b6, 0x1);
cam_i2c_write(axi_iic, device_addr, 0x54b7, 0xdf);
cam_i2c_write(axi_iic, device_addr, 0x5583, 0x5d);
cam_i2c_write(axi_iic, device_addr, 0x5584, 0x5d);
cam_i2c_write(axi_iic, device_addr, 0x5580, 0x06);
cam_i2c_write(axi_iic, device_addr, 0x5587, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5588, 0x20);
cam_i2c_write(axi_iic, device_addr, 0x558a, 0x09);
cam_i2c_write(axi_iic, device_addr, 0x5589, 0x10);
cam_i2c_write(axi_iic, device_addr, 0x5000, 0xcf);
cam_i2c_write(axi_iic, device_addr, 0x5800, 0x48);
cam_i2c_write(axi_iic, device_addr, 0x5801, 0x31);
cam_i2c_write(axi_iic, device_addr, 0x5802, 0x21);
cam_i2c_write(axi_iic, device_addr, 0x5803, 0x1b);
cam_i2c_write(axi_iic, device_addr, 0x5804, 0x1a);
cam_i2c_write(axi_iic, device_addr, 0x5805, 0x1e);
cam_i2c_write(axi_iic, device_addr, 0x5806, 0x29);
cam_i2c_write(axi_iic, device_addr, 0x5807, 0x38);
cam_i2c_write(axi_iic, device_addr, 0x5808, 0x26);
cam_i2c_write(axi_iic, device_addr, 0x5809, 0x17);
cam_i2c_write(axi_iic, device_addr, 0x580a, 0x11);
cam_i2c_write(axi_iic, device_addr, 0x580b, 0xe);
cam_i2c_write(axi_iic, device_addr, 0x580c, 0xd);
cam_i2c_write(axi_iic, device_addr, 0x580d, 0xe);
cam_i2c_write(axi_iic, device_addr, 0x580e, 0x13);
cam_i2c_write(axi_iic, device_addr, 0x580f, 0x1a);
cam_i2c_write(axi_iic, device_addr, 0x5810, 0x15);
cam_i2c_write(axi_iic, device_addr, 0x5811, 0xd);
cam_i2c_write(axi_iic, device_addr, 0x5812, 0x8);
cam_i2c_write(axi_iic, device_addr, 0x5813, 0x5);
cam_i2c_write(axi_iic, device_addr, 0x5814, 0x4);
cam_i2c_write(axi_iic, device_addr, 0x5815, 0x5);
cam_i2c_write(axi_iic, device_addr, 0x5816, 0x9);
cam_i2c_write(axi_iic, device_addr, 0x5817, 0xd);
cam_i2c_write(axi_iic, device_addr, 0x5818, 0x11);
cam_i2c_write(axi_iic, device_addr, 0x5819, 0xa);
cam_i2c_write(axi_iic, device_addr, 0x581a, 0x4);
cam_i2c_write(axi_iic, device_addr, 0x581b, 0x0);
cam_i2c_write(axi_iic, device_addr, 0x581c, 0x0);
cam_i2c_write(axi_iic, device_addr, 0x581d, 0x1);
cam_i2c_write(axi_iic, device_addr, 0x581e, 0x6);
cam_i2c_write(axi_iic, device_addr, 0x581f, 0x9);
cam_i2c_write(axi_iic, device_addr, 0x5820, 0x12);
cam_i2c_write(axi_iic, device_addr, 0x5821, 0xb);
cam_i2c_write(axi_iic, device_addr, 0x5822, 0x4);
cam_i2c_write(axi_iic, device_addr, 0x5823, 0x0);
cam_i2c_write(axi_iic, device_addr, 0x5824, 0x0);
cam_i2c_write(axi_iic, device_addr, 0x5825, 0x1);
cam_i2c_write(axi_iic, device_addr, 0x5826, 0x6);
cam_i2c_write(axi_iic, device_addr, 0x5827, 0xa);
cam_i2c_write(axi_iic, device_addr, 0x5828, 0x17);
cam_i2c_write(axi_iic, device_addr, 0x5829, 0xf);
cam_i2c_write(axi_iic, device_addr, 0x582a, 0x9);
cam_i2c_write(axi_iic, device_addr, 0x582b, 0x6);
cam_i2c_write(axi_iic, device_addr, 0x582c, 0x5);
cam_i2c_write(axi_iic, device_addr, 0x582d, 0x6);
cam_i2c_write(axi_iic, device_addr, 0x582e, 0xa);
cam_i2c_write(axi_iic, device_addr, 0x582f, 0xe);
cam_i2c_write(axi_iic, device_addr, 0x5830, 0x28);
cam_i2c_write(axi_iic, device_addr, 0x5831, 0x1a);
cam_i2c_write(axi_iic, device_addr, 0x5832, 0x11);
cam_i2c_write(axi_iic, device_addr, 0x5833, 0xe);
cam_i2c_write(axi_iic, device_addr, 0x5834, 0xe);
cam_i2c_write(axi_iic, device_addr, 0x5835, 0xf);
cam_i2c_write(axi_iic, device_addr, 0x5836, 0x15);
cam_i2c_write(axi_iic, device_addr, 0x5837, 0x1d);
cam_i2c_write(axi_iic, device_addr, 0x5838, 0x6e);
cam_i2c_write(axi_iic, device_addr, 0x5839, 0x39);
cam_i2c_write(axi_iic, device_addr, 0x583a, 0x27);
cam_i2c_write(axi_iic, device_addr, 0x583b, 0x1f);
cam_i2c_write(axi_iic, device_addr, 0x583c, 0x1e);
cam_i2c_write(axi_iic, device_addr, 0x583d, 0x23);
cam_i2c_write(axi_iic, device_addr, 0x583e, 0x2f);
cam_i2c_write(axi_iic, device_addr, 0x583f, 0x41);
cam_i2c_write(axi_iic, device_addr, 0x5840, 0xe);
cam_i2c_write(axi_iic, device_addr, 0x5841, 0xc);
cam_i2c_write(axi_iic, device_addr, 0x5842, 0xd);
cam_i2c_write(axi_iic, device_addr, 0x5843, 0xc);
cam_i2c_write(axi_iic, device_addr, 0x5844, 0xc);
cam_i2c_write(axi_iic, device_addr, 0x5845, 0xc);
cam_i2c_write(axi_iic, device_addr, 0x5846, 0xc);
cam_i2c_write(axi_iic, device_addr, 0x5847, 0xc);
cam_i2c_write(axi_iic, device_addr, 0x5848, 0xd);
cam_i2c_write(axi_iic, device_addr, 0x5849, 0xe);
cam_i2c_write(axi_iic, device_addr, 0x584a, 0xe);
cam_i2c_write(axi_iic, device_addr, 0x584b, 0xa);
cam_i2c_write(axi_iic, device_addr, 0x584c, 0xe);
cam_i2c_write(axi_iic, device_addr, 0x584d, 0xe);
cam_i2c_write(axi_iic, device_addr, 0x584e, 0x10);
cam_i2c_write(axi_iic, device_addr, 0x584f, 0x10);
cam_i2c_write(axi_iic, device_addr, 0x5850, 0x11);
cam_i2c_write(axi_iic, device_addr, 0x5851, 0xa);
cam_i2c_write(axi_iic, device_addr, 0x5852, 0xf);
cam_i2c_write(axi_iic, device_addr, 0x5853, 0xe);
cam_i2c_write(axi_iic, device_addr, 0x5854, 0x10);
cam_i2c_write(axi_iic, device_addr, 0x5855, 0x10);
cam_i2c_write(axi_iic, device_addr, 0x5856, 0x10);
cam_i2c_write(axi_iic, device_addr, 0x5857, 0xa);
cam_i2c_write(axi_iic, device_addr, 0x5858, 0xe);
cam_i2c_write(axi_iic, device_addr, 0x5859, 0xe);
cam_i2c_write(axi_iic, device_addr, 0x585a, 0xf);
cam_i2c_write(axi_iic, device_addr, 0x585b, 0xf);
cam_i2c_write(axi_iic, device_addr, 0x585c, 0xf);
cam_i2c_write(axi_iic, device_addr, 0x585d, 0xa);
cam_i2c_write(axi_iic, device_addr, 0x585e, 0x9);
cam_i2c_write(axi_iic, device_addr, 0x585f, 0xd);
cam_i2c_write(axi_iic, device_addr, 0x5860, 0xc);
cam_i2c_write(axi_iic, device_addr, 0x5861, 0xb);
cam_i2c_write(axi_iic, device_addr, 0x5862, 0xd);
cam_i2c_write(axi_iic, device_addr, 0x5863, 0x7);
cam_i2c_write(axi_iic, device_addr, 0x5864, 0x17);
cam_i2c_write(axi_iic, device_addr, 0x5865, 0x14);
cam_i2c_write(axi_iic, device_addr, 0x5866, 0x18);
cam_i2c_write(axi_iic, device_addr, 0x5867, 0x18);
cam_i2c_write(axi_iic, device_addr, 0x5868, 0x16);
cam_i2c_write(axi_iic, device_addr, 0x5869, 0x12);
cam_i2c_write(axi_iic, device_addr, 0x586a, 0x1b);
cam_i2c_write(axi_iic, device_addr, 0x586b, 0x1a);
cam_i2c_write(axi_iic, device_addr, 0x586c, 0x16);
cam_i2c_write(axi_iic, device_addr, 0x586d, 0x16);
cam_i2c_write(axi_iic, device_addr, 0x586e, 0x18);
cam_i2c_write(axi_iic, device_addr, 0x586f, 0x1f);
cam_i2c_write(axi_iic, device_addr, 0x5870, 0x1c);
cam_i2c_write(axi_iic, device_addr, 0x5871, 0x16);
cam_i2c_write(axi_iic, device_addr, 0x5872, 0x10);
cam_i2c_write(axi_iic, device_addr, 0x5873, 0xf);
cam_i2c_write(axi_iic, device_addr, 0x5874, 0x13);
cam_i2c_write(axi_iic, device_addr, 0x5875, 0x1c);
cam_i2c_write(axi_iic, device_addr, 0x5876, 0x1e);
cam_i2c_write(axi_iic, device_addr, 0x5877, 0x17);
cam_i2c_write(axi_iic, device_addr, 0x5878, 0x11);
cam_i2c_write(axi_iic, device_addr, 0x5879, 0x11);
cam_i2c_write(axi_iic, device_addr, 0x587a, 0x14);
cam_i2c_write(axi_iic, device_addr, 0x587b, 0x1e);
cam_i2c_write(axi_iic, device_addr, 0x587c, 0x1c);
cam_i2c_write(axi_iic, device_addr, 0x587d, 0x1c);
cam_i2c_write(axi_iic, device_addr, 0x587e, 0x1a);
cam_i2c_write(axi_iic, device_addr, 0x587f, 0x1a);
cam_i2c_write(axi_iic, device_addr, 0x5880, 0x1b);
cam_i2c_write(axi_iic, device_addr, 0x5881, 0x1f);
cam_i2c_write(axi_iic, device_addr, 0x5882, 0x14);
cam_i2c_write(axi_iic, device_addr, 0x5883, 0x1a);
cam_i2c_write(axi_iic, device_addr, 0x5884, 0x1d);
cam_i2c_write(axi_iic, device_addr, 0x5885, 0x1e);
cam_i2c_write(axi_iic, device_addr, 0x5886, 0x1a);
cam_i2c_write(axi_iic, device_addr, 0x5887, 0x1a);
cam_i2c_write(axi_iic, device_addr, 0x528a, 0x02);
cam_i2c_write(axi_iic, device_addr, 0x528b, 0x06);
cam_i2c_write(axi_iic, device_addr, 0x528c, 0x20);
cam_i2c_write(axi_iic, device_addr, 0x528d, 0x30);
cam_i2c_write(axi_iic, device_addr, 0x528e, 0x40);
cam_i2c_write(axi_iic, device_addr, 0x528f, 0x50);
cam_i2c_write(axi_iic, device_addr, 0x5290, 0x60);
cam_i2c_write(axi_iic, device_addr, 0x5292, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5293, 0x02);
cam_i2c_write(axi_iic, device_addr, 0x5294, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5295, 0x04);
cam_i2c_write(axi_iic, device_addr, 0x5296, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5297, 0x08);
cam_i2c_write(axi_iic, device_addr, 0x5298, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5299, 0x10);
cam_i2c_write(axi_iic, device_addr, 0x529a, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x529b, 0x20);
cam_i2c_write(axi_iic, device_addr, 0x529c, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x529d, 0x28);
cam_i2c_write(axi_iic, device_addr, 0x529e, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x529f, 0x30);
cam_i2c_write(axi_iic, device_addr, 0x5282, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5680, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5681, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5682, 0x05);
cam_i2c_write(axi_iic, device_addr, 0x5683, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5684, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5685, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5686, 0x03);
cam_i2c_write(axi_iic, device_addr, 0x5687, 0xc0);
cam_i2c_write(axi_iic, device_addr, 0x5180, 0xff);
cam_i2c_write(axi_iic, device_addr, 0x5181, 0x52);
cam_i2c_write(axi_iic, device_addr, 0x5182, 0x11);
cam_i2c_write(axi_iic, device_addr, 0x5183, 0x14);
cam_i2c_write(axi_iic, device_addr, 0x5184, 0x25);
cam_i2c_write(axi_iic, device_addr, 0x5185, 0x24);
cam_i2c_write(axi_iic, device_addr, 0x5186, 0x14);
cam_i2c_write(axi_iic, device_addr, 0x5187, 0x14);
cam_i2c_write(axi_iic, device_addr, 0x5188, 0x14);
cam_i2c_write(axi_iic, device_addr, 0x5189, 0x80);
cam_i2c_write(axi_iic, device_addr, 0x518a, 0x60);
cam_i2c_write(axi_iic, device_addr, 0x518b, 0xa2);
cam_i2c_write(axi_iic, device_addr, 0x518c, 0x9c);
cam_i2c_write(axi_iic, device_addr, 0x518d, 0x36);
cam_i2c_write(axi_iic, device_addr, 0x518e, 0x34);
cam_i2c_write(axi_iic, device_addr, 0x518f, 0x54);
cam_i2c_write(axi_iic, device_addr, 0x5190, 0x4c);
cam_i2c_write(axi_iic, device_addr, 0x5191, 0xf8);
cam_i2c_write(axi_iic, device_addr, 0x5192, 0x04);
cam_i2c_write(axi_iic, device_addr, 0x5193, 0x70);
cam_i2c_write(axi_iic, device_addr, 0x5194, 0xf0);
cam_i2c_write(axi_iic, device_addr, 0x5195, 0xf0);
cam_i2c_write(axi_iic, device_addr, 0x5196, 0x03);
cam_i2c_write(axi_iic, device_addr, 0x5197, 0x01);
cam_i2c_write(axi_iic, device_addr, 0x5198, 0x05);
cam_i2c_write(axi_iic, device_addr, 0x5199, 0x2f);
cam_i2c_write(axi_iic, device_addr, 0x519a, 0x04);
cam_i2c_write(axi_iic, device_addr, 0x519b, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x519c, 0x06);
cam_i2c_write(axi_iic, device_addr, 0x519d, 0xa0);
cam_i2c_write(axi_iic, device_addr, 0x519e, 0xa0);
cam_i2c_write(axi_iic, device_addr, 0x3a0f, 0x3c);
cam_i2c_write(axi_iic, device_addr, 0x3a10, 0x30);
cam_i2c_write(axi_iic, device_addr, 0x3a1b, 0x3c);
cam_i2c_write(axi_iic, device_addr, 0x3a1e, 0x30);
cam_i2c_write(axi_iic, device_addr, 0x3a11, 0x70);
cam_i2c_write(axi_iic, device_addr, 0x3a1f, 0x10);
cam_i2c_write(axi_iic, device_addr, 0x3800, 0x1);
cam_i2c_write(axi_iic, device_addr, 0x3801, 0x50);
cam_i2c_write(axi_iic, device_addr, 0x3802, 0x0);
cam_i2c_write(axi_iic, device_addr, 0x3803, 0x8);
cam_i2c_write(axi_iic, device_addr, 0x3804, 0x5);
cam_i2c_write(axi_iic, device_addr, 0x3805, 0x0);
cam_i2c_write(axi_iic, device_addr, 0x3806, 0x3);
cam_i2c_write(axi_iic, device_addr, 0x3807, 0xc0);
cam_i2c_write(axi_iic, device_addr, 0x3808, 0x3);
cam_i2c_write(axi_iic, device_addr, 0x3809, 0x20);
cam_i2c_write(axi_iic, device_addr, 0x380a, 0x2);
cam_i2c_write(axi_iic, device_addr, 0x380b, 0x58);
cam_i2c_write(axi_iic, device_addr, 0x380c, 0xc);
cam_i2c_write(axi_iic, device_addr, 0x380d, 0x80);
cam_i2c_write(axi_iic, device_addr, 0x380e, 0x3);
cam_i2c_write(axi_iic, device_addr, 0x380f, 0xe8);
cam_i2c_write(axi_iic, device_addr, 0x5001, 0x7f);
cam_i2c_write(axi_iic, device_addr, 0x5680, 0x0);
cam_i2c_write(axi_iic, device_addr, 0x5681, 0x0);
cam_i2c_write(axi_iic, device_addr, 0x5682, 0x5);
cam_i2c_write(axi_iic, device_addr, 0x5683, 0x0);
cam_i2c_write(axi_iic, device_addr, 0x5684, 0x0);
cam_i2c_write(axi_iic, device_addr, 0x5685, 0x0);
cam_i2c_write(axi_iic, device_addr, 0x5686, 0x3);
cam_i2c_write(axi_iic, device_addr, 0x5687, 0xc0);
cam_i2c_write(axi_iic, device_addr, 0x5687, 0xc0);
cam_i2c_write(axi_iic, device_addr, 0x3815, 0x02);
cam_i2c_write(axi_iic, device_addr, 0x3503, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x3818, 0x81); // No Mirror
cam_i2c_write(axi_iic, device_addr, 0x3621, 0xa7);
cam_i2c_write(axi_iic, device_addr, 0x4740, 0x21);
cam_i2c_write(axi_iic, device_addr, 0x501e, 0x2a);
cam_i2c_write(axi_iic, device_addr, 0x5002, 0x78);
cam_i2c_write(axi_iic, device_addr, 0x501f, 0x01);
cam_i2c_write(axi_iic, device_addr, 0x4300, 0x61);
return(0);
}
XVflip_dma_write_Set_fb0(&XVfilp_dma_write_ap, (u32)CAMERA_DATA_DMA_ADDR0);
XVflip_dma_write_Set_fb1(&XVfilp_dma_write_ap, (u32)CAMERA_DATA_DMA_ADDR0);
XVflip_dma_write_Set_fb2(&XVfilp_dma_write_ap, (u32)CAMERA_DATA_DMA_ADDR0);
XDma2axis_3buf_Set_fb0(&XDma2s3b_ap, (u32)CAMERA_DATA_DMA_ADDR0);
XDma2axis_3buf_Set_fb1(&XDma2s3b_ap, (u32)CAMERA_DATA_DMA_ADDR0);
XDma2axis_3buf_Set_fb2(&XDma2s3b_ap, (u32)CAMERA_DATA_DMA_ADDR0);
XDma2axis_3buf_Set_mode(&XDma2s3b_ap, 0); // DMA_WRITE_MODE
// cam_disp.c
// 2022/08/01 by marsee
//
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include "xil_io.h"
#include "xparameters.h"
#include "xvflip_dma_write.h"
#include "xdma2axis_3buf.h"
#define CAMERA_DATA_DMA_ADDR0 0x10000000
#define CAMERA_DATA_DMA_ADDR1 0x10080000
#define CAMERA_DATA_DMA_ADDR2 0x10100000
#define HORIZONTAL_PIXELS 800
#define VERTICAL_LINES 600
int cam_reg_set(volatile unsigned *axi_iic, unsigned int device_addr);
void cam_i2c_init(volatile uint32_t *ov5642_axi_iic) {
ov5642_axi_iic[64] = 0x2; // reset tx fifo ,address is 0x100, i2c_control_reg
ov5642_axi_iic[64] = 0x1; // enable i2c
}
void cam_i2x_write_sync(void) {
// unsigned c;
// c = *cam_i2c_rx_fifo;
// while ((c & 0x84) != 0x80)
// c = *cam_i2c_rx_fifo; // No Bus Busy and TX_FIFO_Empty = 1
usleep(1000);
}
void cam_i2c_write(volatile uint32_t *ov5642_axi_iic, uint32_t device_addr, uint32_t write_addr, uint32_t write_data){
ov5642_axi_iic[66] = 0x100 | (device_addr & 0xfe); // Slave IIC Write Address, address is 0x108, i2c_tx_fifo
ov5642_axi_iic[66] = (write_addr >> 8) & 0xff; // address upper byte
ov5642_axi_iic[66] = write_addr & 0xff; // address lower byte
ov5642_axi_iic[66] = 0x200 | (write_data & 0xff); // data
cam_i2x_write_sync();
}
int main(){
XVflip_dma_write XVfilp_dma_write_ap;
XDma2axis_3buf XDma2s3b_ap;
int inbyte_in;
XVflip_dma_write_Initialize(&XVfilp_dma_write_ap, 0);
XDma2axis_3buf_Initialize(&XDma2s3b_ap, 0);
XVflip_dma_write_Set_fb0(&XVfilp_dma_write_ap, (u32)CAMERA_DATA_DMA_ADDR0);
XVflip_dma_write_Set_fb1(&XVfilp_dma_write_ap, (u32)CAMERA_DATA_DMA_ADDR1);
XVflip_dma_write_Set_fb2(&XVfilp_dma_write_ap, (u32)CAMERA_DATA_DMA_ADDR2);
XDma2axis_3buf_Set_fb0(&XDma2s3b_ap, (u32)CAMERA_DATA_DMA_ADDR0);
XDma2axis_3buf_Set_fb1(&XDma2s3b_ap, (u32)CAMERA_DATA_DMA_ADDR1);
XDma2axis_3buf_Set_fb2(&XDma2s3b_ap, (u32)CAMERA_DATA_DMA_ADDR2);
XDma2axis_3buf_Set_mode(&XDma2s3b_ap, 0); // DMA_WRITE_MODE
// vflip_dma_write start
XVflip_dma_write_Start(&XVfilp_dma_write_ap);
XVflip_dma_write_EnableAutoRestart(&XVfilp_dma_write_ap);
// CMOS Camera initialize, ov5642
cam_i2c_init((volatile uint32_t *)XPAR_AXI_IIC_0_BASEADDR);
cam_reg_set((volatile uint32_t *)(XPAR_AXI_IIC_0_BASEADDR), (uint32_t)0x78); // OV5642 register set
Xil_Out32(XPAR_PARACAM_INF_AXIS_0_BASEADDR, CAMERA_DATA_DMA_ADDR0); // ov5642 AXI4-Stream Start
Xil_Out32((XPAR_PARACAM_INF_AXIS_0_BASEADDR+4), 0);
// bitmap_disp_cont_axis start
Xil_Out32(XPAR_BITMAP_DISP_CONT_AXIS_0_BASEADDR, CAMERA_DATA_DMA_ADDR0); // dummy address, start
// DMA2axis start
XDma2axis_3buf_Start(&XDma2s3b_ap);
XDma2axis_3buf_EnableAutoRestart(&XDma2s3b_ap);
printf("The display stops when you press any key.");
fflush(stdout);
inbyte_in = inbyte();
printf("\n"); fflush(stdout);
// Display Stopped
XDma2axis_3buf_DisableAutoRestart(&XDma2s3b_ap);
while(XDma2axis_3buf_IsIdle(&XDma2s3b_ap)==0);
printf("The display resumes when you press any key.");
fflush(stdout);
inbyte_in = inbyte();
printf("\n"); fflush(stdout);
// DMA2axis resumes
XDma2axis_3buf_Start(&XDma2s3b_ap);
XDma2axis_3buf_EnableAutoRestart(&XDma2s3b_ap);
return(0);
}
int cam_reg_set(volatile unsigned *axi_iic, unsigned int device_addr){
cam_i2c_write(axi_iic, device_addr, 0x3103, 0x93);
cam_i2c_write(axi_iic, device_addr, 0x3008, 0x82);
cam_i2c_write(axi_iic, device_addr, 0x3017, 0x7f);
cam_i2c_write(axi_iic, device_addr, 0x3018, 0xfc);
cam_i2c_write(axi_iic, device_addr, 0x3810, 0xc2);
cam_i2c_write(axi_iic, device_addr, 0x3615, 0xf0);
cam_i2c_write(axi_iic, device_addr, 0x3000, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x3001, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x3002, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x3003, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x3000, 0xf8);
cam_i2c_write(axi_iic, device_addr, 0x3001, 0x48);
cam_i2c_write(axi_iic, device_addr, 0x3002, 0x5c);
cam_i2c_write(axi_iic, device_addr, 0x3003, 0x02);
cam_i2c_write(axi_iic, device_addr, 0x3004, 0x07);
cam_i2c_write(axi_iic, device_addr, 0x3005, 0xb7);
cam_i2c_write(axi_iic, device_addr, 0x3006, 0x43);
cam_i2c_write(axi_iic, device_addr, 0x3007, 0x37);
cam_i2c_write(axi_iic, device_addr, 0x3011, 0x08); // 0x08 - 15fps, 0x10 - 30fps
cam_i2c_write(axi_iic, device_addr, 0x3010, 0x10);
cam_i2c_write(axi_iic, device_addr, 0x460c, 0x22);
cam_i2c_write(axi_iic, device_addr, 0x3815, 0x04);
cam_i2c_write(axi_iic, device_addr, 0x370d, 0x06);
cam_i2c_write(axi_iic, device_addr, 0x370c, 0xa0);
cam_i2c_write(axi_iic, device_addr, 0x3602, 0xfc);
cam_i2c_write(axi_iic, device_addr, 0x3612, 0xff);
cam_i2c_write(axi_iic, device_addr, 0x3634, 0xc0);
cam_i2c_write(axi_iic, device_addr, 0x3613, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x3605, 0x7c);
cam_i2c_write(axi_iic, device_addr, 0x3621, 0x09);
cam_i2c_write(axi_iic, device_addr, 0x3622, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x3604, 0x40);
cam_i2c_write(axi_iic, device_addr, 0x3603, 0xa7);
cam_i2c_write(axi_iic, device_addr, 0x3603, 0x27);
cam_i2c_write(axi_iic, device_addr, 0x4000, 0x21);
cam_i2c_write(axi_iic, device_addr, 0x401d, 0x02);
cam_i2c_write(axi_iic, device_addr, 0x3600, 0x54);
cam_i2c_write(axi_iic, device_addr, 0x3605, 0x04);
cam_i2c_write(axi_iic, device_addr, 0x3606, 0x3f);
cam_i2c_write(axi_iic, device_addr, 0x3c01, 0x80);
cam_i2c_write(axi_iic, device_addr, 0x5000, 0x4f);
cam_i2c_write(axi_iic, device_addr, 0x5020, 0x04);
cam_i2c_write(axi_iic, device_addr, 0x5181, 0x79);
cam_i2c_write(axi_iic, device_addr, 0x5182, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5185, 0x22);
cam_i2c_write(axi_iic, device_addr, 0x5197, 0x01);
cam_i2c_write(axi_iic, device_addr, 0x5001, 0xff);
cam_i2c_write(axi_iic, device_addr, 0x5500, 0x0a);
cam_i2c_write(axi_iic, device_addr, 0x5504, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5505, 0x7f);
cam_i2c_write(axi_iic, device_addr, 0x5080, 0x08);
cam_i2c_write(axi_iic, device_addr, 0x300e, 0x18);
cam_i2c_write(axi_iic, device_addr, 0x4610, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x471d, 0x05);
cam_i2c_write(axi_iic, device_addr, 0x4708, 0x06);
cam_i2c_write(axi_iic, device_addr, 0x3710, 0x10);
cam_i2c_write(axi_iic, device_addr, 0x3632, 0x41);
cam_i2c_write(axi_iic, device_addr, 0x3702, 0x40);
cam_i2c_write(axi_iic, device_addr, 0x3620, 0x37);
cam_i2c_write(axi_iic, device_addr, 0x3631, 0x01);
cam_i2c_write(axi_iic, device_addr, 0x3808, 0x02);
cam_i2c_write(axi_iic, device_addr, 0x3809, 0x80);
cam_i2c_write(axi_iic, device_addr, 0x380a, 0x01);
cam_i2c_write(axi_iic, device_addr, 0x380b, 0xe0);
cam_i2c_write(axi_iic, device_addr, 0x380e, 0x07);
cam_i2c_write(axi_iic, device_addr, 0x380f, 0xd0);
cam_i2c_write(axi_iic, device_addr, 0x501f, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5000, 0x4f);
cam_i2c_write(axi_iic, device_addr, 0x4300, 0x61); // RGB565
cam_i2c_write(axi_iic, device_addr, 0x3503, 0x07);
cam_i2c_write(axi_iic, device_addr, 0x3501, 0x73);
cam_i2c_write(axi_iic, device_addr, 0x3502, 0x80);
cam_i2c_write(axi_iic, device_addr, 0x350b, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x3503, 0x07);
cam_i2c_write(axi_iic, device_addr, 0x3824, 0x11);
cam_i2c_write(axi_iic, device_addr, 0x3501, 0x1e);
cam_i2c_write(axi_iic, device_addr, 0x3502, 0x80);
cam_i2c_write(axi_iic, device_addr, 0x350b, 0x7f);
cam_i2c_write(axi_iic, device_addr, 0x380c, 0x0c);
cam_i2c_write(axi_iic, device_addr, 0x380d, 0x80);
cam_i2c_write(axi_iic, device_addr, 0x380e, 0x03);
cam_i2c_write(axi_iic, device_addr, 0x380f, 0xe8);
cam_i2c_write(axi_iic, device_addr, 0x3a0d, 0x04);
cam_i2c_write(axi_iic, device_addr, 0x3a0e, 0x03);
cam_i2c_write(axi_iic, device_addr, 0x3818, 0xc1);
cam_i2c_write(axi_iic, device_addr, 0x3705, 0xdb);
cam_i2c_write(axi_iic, device_addr, 0x370a, 0x81);
cam_i2c_write(axi_iic, device_addr, 0x3801, 0x80);
cam_i2c_write(axi_iic, device_addr, 0x3621, 0xc7);
cam_i2c_write(axi_iic, device_addr, 0x3801, 0x50);
cam_i2c_write(axi_iic, device_addr, 0x3803, 0x08);
cam_i2c_write(axi_iic, device_addr, 0x3827, 0x08);
cam_i2c_write(axi_iic, device_addr, 0x3810, 0xc0);
cam_i2c_write(axi_iic, device_addr, 0x3804, 0x05);
cam_i2c_write(axi_iic, device_addr, 0x3805, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5682, 0x05);
cam_i2c_write(axi_iic, device_addr, 0x5683, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x3806, 0x03);
cam_i2c_write(axi_iic, device_addr, 0x3807, 0xc0);
cam_i2c_write(axi_iic, device_addr, 0x5686, 0x03);
cam_i2c_write(axi_iic, device_addr, 0x5687, 0xc0);
cam_i2c_write(axi_iic, device_addr, 0x3a00, 0x78);
cam_i2c_write(axi_iic, device_addr, 0x3a1a, 0x04);
cam_i2c_write(axi_iic, device_addr, 0x3a13, 0x30);
cam_i2c_write(axi_iic, device_addr, 0x3a18, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x3a19, 0x7c);
cam_i2c_write(axi_iic, device_addr, 0x3a08, 0x12);
cam_i2c_write(axi_iic, device_addr, 0x3a09, 0xc0);
cam_i2c_write(axi_iic, device_addr, 0x3a0a, 0x0f);
cam_i2c_write(axi_iic, device_addr, 0x3a0b, 0xa0);
cam_i2c_write(axi_iic, device_addr, 0x3004, 0xff);
cam_i2c_write(axi_iic, device_addr, 0x350c, 0x07);
cam_i2c_write(axi_iic, device_addr, 0x350d, 0xd0);
cam_i2c_write(axi_iic, device_addr, 0x3500, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x3501, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x3502, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x350a, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x350b, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x3503, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x528a, 0x02);
cam_i2c_write(axi_iic, device_addr, 0x528b, 0x04);
cam_i2c_write(axi_iic, device_addr, 0x528c, 0x08);
cam_i2c_write(axi_iic, device_addr, 0x528d, 0x08);
cam_i2c_write(axi_iic, device_addr, 0x528e, 0x08);
cam_i2c_write(axi_iic, device_addr, 0x528f, 0x10);
cam_i2c_write(axi_iic, device_addr, 0x5290, 0x10);
cam_i2c_write(axi_iic, device_addr, 0x5292, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5293, 0x02);
cam_i2c_write(axi_iic, device_addr, 0x5294, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5295, 0x02);
cam_i2c_write(axi_iic, device_addr, 0x5296, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5297, 0x02);
cam_i2c_write(axi_iic, device_addr, 0x5298, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5299, 0x02);
cam_i2c_write(axi_iic, device_addr, 0x529a, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x529b, 0x02);
cam_i2c_write(axi_iic, device_addr, 0x529c, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x529d, 0x02);
cam_i2c_write(axi_iic, device_addr, 0x529e, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x529f, 0x02);
cam_i2c_write(axi_iic, device_addr, 0x3a0f, 0x3c);
cam_i2c_write(axi_iic, device_addr, 0x3a10, 0x30);
cam_i2c_write(axi_iic, device_addr, 0x3a1b, 0x3c);
cam_i2c_write(axi_iic, device_addr, 0x3a1e, 0x30);
cam_i2c_write(axi_iic, device_addr, 0x3a11, 0x70);
cam_i2c_write(axi_iic, device_addr, 0x3a1f, 0x10);
cam_i2c_write(axi_iic, device_addr, 0x3030, 0x0b);
cam_i2c_write(axi_iic, device_addr, 0x3a02, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x3a03, 0x7d);
cam_i2c_write(axi_iic, device_addr, 0x3a04, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x3a14, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x3a15, 0x7d);
cam_i2c_write(axi_iic, device_addr, 0x3a16, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x3a00, 0x78);
cam_i2c_write(axi_iic, device_addr, 0x3a08, 0x09);
cam_i2c_write(axi_iic, device_addr, 0x3a09, 0x60);
cam_i2c_write(axi_iic, device_addr, 0x3a0a, 0x07);
cam_i2c_write(axi_iic, device_addr, 0x3a0b, 0xd0);
cam_i2c_write(axi_iic, device_addr, 0x3a0d, 0x08);
cam_i2c_write(axi_iic, device_addr, 0x3a0e, 0x06);
cam_i2c_write(axi_iic, device_addr, 0x5193, 0x70);
cam_i2c_write(axi_iic, device_addr, 0x3620, 0x57);
cam_i2c_write(axi_iic, device_addr, 0x3703, 0x98);
cam_i2c_write(axi_iic, device_addr, 0x3704, 0x1c);
cam_i2c_write(axi_iic, device_addr, 0x589b, 0x04);
cam_i2c_write(axi_iic, device_addr, 0x589a, 0xc5);
cam_i2c_write(axi_iic, device_addr, 0x528a, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x528b, 0x02);
cam_i2c_write(axi_iic, device_addr, 0x528c, 0x08);
cam_i2c_write(axi_iic, device_addr, 0x528d, 0x10);
cam_i2c_write(axi_iic, device_addr, 0x528e, 0x20);
cam_i2c_write(axi_iic, device_addr, 0x528f, 0x28);
cam_i2c_write(axi_iic, device_addr, 0x5290, 0x30);
cam_i2c_write(axi_iic, device_addr, 0x5292, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5293, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5294, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5295, 0x02);
cam_i2c_write(axi_iic, device_addr, 0x5296, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5297, 0x08);
cam_i2c_write(axi_iic, device_addr, 0x5298, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5299, 0x10);
cam_i2c_write(axi_iic, device_addr, 0x529a, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x529b, 0x20);
cam_i2c_write(axi_iic, device_addr, 0x529c, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x529d, 0x28);
cam_i2c_write(axi_iic, device_addr, 0x529e, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x529f, 0x30);
cam_i2c_write(axi_iic, device_addr, 0x5282, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5300, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5301, 0x20);
cam_i2c_write(axi_iic, device_addr, 0x5302, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5303, 0x7c);
cam_i2c_write(axi_iic, device_addr, 0x530c, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x530d, 0x0c);
cam_i2c_write(axi_iic, device_addr, 0x530e, 0x20);
cam_i2c_write(axi_iic, device_addr, 0x530f, 0x80);
cam_i2c_write(axi_iic, device_addr, 0x5310, 0x20);
cam_i2c_write(axi_iic, device_addr, 0x5311, 0x80);
cam_i2c_write(axi_iic, device_addr, 0x5308, 0x20);
cam_i2c_write(axi_iic, device_addr, 0x5309, 0x40);
cam_i2c_write(axi_iic, device_addr, 0x5304, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5305, 0x30);
cam_i2c_write(axi_iic, device_addr, 0x5306, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5307, 0x80);
cam_i2c_write(axi_iic, device_addr, 0x5314, 0x08);
cam_i2c_write(axi_iic, device_addr, 0x5315, 0x20);
cam_i2c_write(axi_iic, device_addr, 0x5319, 0x30);
cam_i2c_write(axi_iic, device_addr, 0x5316, 0x10);
cam_i2c_write(axi_iic, device_addr, 0x5317, 0x08);
cam_i2c_write(axi_iic, device_addr, 0x5318, 0x02);
cam_i2c_write(axi_iic, device_addr, 0x5380, 0x01);
cam_i2c_write(axi_iic, device_addr, 0x5381, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5382, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5383, 0x4e);
cam_i2c_write(axi_iic, device_addr, 0x5384, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5385, 0x0f);
cam_i2c_write(axi_iic, device_addr, 0x5386, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5387, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5388, 0x01);
cam_i2c_write(axi_iic, device_addr, 0x5389, 0x15);
cam_i2c_write(axi_iic, device_addr, 0x538a, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x538b, 0x31);
cam_i2c_write(axi_iic, device_addr, 0x538c, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x538d, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x538e, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x538f, 0x0f);
cam_i2c_write(axi_iic, device_addr, 0x5390, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5391, 0xab);
cam_i2c_write(axi_iic, device_addr, 0x5392, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5393, 0xa2);
cam_i2c_write(axi_iic, device_addr, 0x5394, 0x08);
cam_i2c_write(axi_iic, device_addr, 0x5480, 0x14);
cam_i2c_write(axi_iic, device_addr, 0x5481, 0x21);
cam_i2c_write(axi_iic, device_addr, 0x5482, 0x36);
cam_i2c_write(axi_iic, device_addr, 0x5483, 0x57);
cam_i2c_write(axi_iic, device_addr, 0x5484, 0x65);
cam_i2c_write(axi_iic, device_addr, 0x5485, 0x71);
cam_i2c_write(axi_iic, device_addr, 0x5486, 0x7d);
cam_i2c_write(axi_iic, device_addr, 0x5487, 0x87);
cam_i2c_write(axi_iic, device_addr, 0x5488, 0x91);
cam_i2c_write(axi_iic, device_addr, 0x5489, 0x9a);
cam_i2c_write(axi_iic, device_addr, 0x548a, 0xaa);
cam_i2c_write(axi_iic, device_addr, 0x548b, 0xb8);
cam_i2c_write(axi_iic, device_addr, 0x548c, 0xcd);
cam_i2c_write(axi_iic, device_addr, 0x548d, 0xdd);
cam_i2c_write(axi_iic, device_addr, 0x548e, 0xea);
cam_i2c_write(axi_iic, device_addr, 0x548f, 0x10);
cam_i2c_write(axi_iic, device_addr, 0x5490, 0x05);
cam_i2c_write(axi_iic, device_addr, 0x5491, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5492, 0x04);
cam_i2c_write(axi_iic, device_addr, 0x5493, 0x20);
cam_i2c_write(axi_iic, device_addr, 0x5494, 0x03);
cam_i2c_write(axi_iic, device_addr, 0x5495, 0x60);
cam_i2c_write(axi_iic, device_addr, 0x5496, 0x02);
cam_i2c_write(axi_iic, device_addr, 0x5497, 0xb8);
cam_i2c_write(axi_iic, device_addr, 0x5498, 0x02);
cam_i2c_write(axi_iic, device_addr, 0x5499, 0x86);
cam_i2c_write(axi_iic, device_addr, 0x549a, 0x02);
cam_i2c_write(axi_iic, device_addr, 0x549b, 0x5b);
cam_i2c_write(axi_iic, device_addr, 0x549c, 0x02);
cam_i2c_write(axi_iic, device_addr, 0x549d, 0x3b);
cam_i2c_write(axi_iic, device_addr, 0x549e, 0x02);
cam_i2c_write(axi_iic, device_addr, 0x549f, 0x1c);
cam_i2c_write(axi_iic, device_addr, 0x54a0, 0x02);
cam_i2c_write(axi_iic, device_addr, 0x54a1, 0x04);
cam_i2c_write(axi_iic, device_addr, 0x54a2, 0x01);
cam_i2c_write(axi_iic, device_addr, 0x54a3, 0xed);
cam_i2c_write(axi_iic, device_addr, 0x54a4, 0x01);
cam_i2c_write(axi_iic, device_addr, 0x54a5, 0xc5);
cam_i2c_write(axi_iic, device_addr, 0x54a6, 0x01);
cam_i2c_write(axi_iic, device_addr, 0x54a7, 0xa5);
cam_i2c_write(axi_iic, device_addr, 0x54a8, 0x01);
cam_i2c_write(axi_iic, device_addr, 0x54a9, 0x6c);
cam_i2c_write(axi_iic, device_addr, 0x54aa, 0x01);
cam_i2c_write(axi_iic, device_addr, 0x54ab, 0x41);
cam_i2c_write(axi_iic, device_addr, 0x54ac, 0x01);
cam_i2c_write(axi_iic, device_addr, 0x54ad, 0x20);
cam_i2c_write(axi_iic, device_addr, 0x54ae, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x54af, 0x16);
cam_i2c_write(axi_iic, device_addr, 0x3406, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5192, 0x04); // 0x04
cam_i2c_write(axi_iic, device_addr, 0x5191, 0xf8); // 0xf8
cam_i2c_write(axi_iic, device_addr, 0x5193, 0x70);
cam_i2c_write(axi_iic, device_addr, 0x5194, 0xf0);
cam_i2c_write(axi_iic, device_addr, 0x5195, 0xf0);
cam_i2c_write(axi_iic, device_addr, 0x518d, 0x3d);
cam_i2c_write(axi_iic, device_addr, 0x518f, 0x54);
cam_i2c_write(axi_iic, device_addr, 0x518e, 0x3d);
cam_i2c_write(axi_iic, device_addr, 0x5190, 0x54);
cam_i2c_write(axi_iic, device_addr, 0x518b, 0xc0);
cam_i2c_write(axi_iic, device_addr, 0x518c, 0xbd);
cam_i2c_write(axi_iic, device_addr, 0x5187, 0x18);
cam_i2c_write(axi_iic, device_addr, 0x5188, 0x18);
cam_i2c_write(axi_iic, device_addr, 0x5189, 0x6e);
cam_i2c_write(axi_iic, device_addr, 0x518a, 0x68);
cam_i2c_write(axi_iic, device_addr, 0x5186, 0x1c);
cam_i2c_write(axi_iic, device_addr, 0x5181, 0x50);
cam_i2c_write(axi_iic, device_addr, 0x5184, 0x25);
cam_i2c_write(axi_iic, device_addr, 0x5182, 0x11);
cam_i2c_write(axi_iic, device_addr, 0x5183, 0x14);
cam_i2c_write(axi_iic, device_addr, 0x5184, 0x25);
cam_i2c_write(axi_iic, device_addr, 0x5185, 0x24);
cam_i2c_write(axi_iic, device_addr, 0x5025, 0x82);
cam_i2c_write(axi_iic, device_addr, 0x5583, 0x40);
cam_i2c_write(axi_iic, device_addr, 0x5584, 0x40);
cam_i2c_write(axi_iic, device_addr, 0x5580, 0x02); // 0x02
cam_i2c_write(axi_iic, device_addr, 0x3633, 0x07);
cam_i2c_write(axi_iic, device_addr, 0x3702, 0x10);
cam_i2c_write(axi_iic, device_addr, 0x3703, 0xb2);
cam_i2c_write(axi_iic, device_addr, 0x3704, 0x18);
cam_i2c_write(axi_iic, device_addr, 0x370b, 0x40);
cam_i2c_write(axi_iic, device_addr, 0x370d, 0x02);
cam_i2c_write(axi_iic, device_addr, 0x3620, 0x52);
cam_i2c_write(axi_iic, device_addr, 0x3c00, 0x04);
cam_i2c_write(axi_iic, device_addr, 0x5001, 0xFF);
cam_i2c_write(axi_iic, device_addr, 0x5282, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5300, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5301, 0x20);
cam_i2c_write(axi_iic, device_addr, 0x5302, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5303, 0x7c);
cam_i2c_write(axi_iic, device_addr, 0x530c, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x530d, 0x10);
cam_i2c_write(axi_iic, device_addr, 0x530e, 0x20);
cam_i2c_write(axi_iic, device_addr, 0x530f, 0x80);
cam_i2c_write(axi_iic, device_addr, 0x5310, 0x20);
cam_i2c_write(axi_iic, device_addr, 0x5311, 0x80);
cam_i2c_write(axi_iic, device_addr, 0x5308, 0x20);
cam_i2c_write(axi_iic, device_addr, 0x5309, 0x40);
cam_i2c_write(axi_iic, device_addr, 0x5304, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5305, 0x30);
cam_i2c_write(axi_iic, device_addr, 0x5306, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5307, 0x80);
cam_i2c_write(axi_iic, device_addr, 0x5314, 0x08);
cam_i2c_write(axi_iic, device_addr, 0x5315, 0x20);
cam_i2c_write(axi_iic, device_addr, 0x5319, 0x30);
cam_i2c_write(axi_iic, device_addr, 0x5316, 0x10);
cam_i2c_write(axi_iic, device_addr, 0x5317, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5318, 0x02);
cam_i2c_write(axi_iic, device_addr, 0x5500, 0x10);
cam_i2c_write(axi_iic, device_addr, 0x5502, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5503, 0x06);
cam_i2c_write(axi_iic, device_addr, 0x5504, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5505, 0x7f);
cam_i2c_write(axi_iic, device_addr, 0x5025, 0x80);
cam_i2c_write(axi_iic, device_addr, 0x5300, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5301, 0x20);
cam_i2c_write(axi_iic, device_addr, 0x5302, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5303, 0x7c);
cam_i2c_write(axi_iic, device_addr, 0x530c, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x530d, 0x0c);
cam_i2c_write(axi_iic, device_addr, 0x530e, 0x20);
cam_i2c_write(axi_iic, device_addr, 0x530f, 0x80);
cam_i2c_write(axi_iic, device_addr, 0x5310, 0x20);
cam_i2c_write(axi_iic, device_addr, 0x5311, 0x80);
cam_i2c_write(axi_iic, device_addr, 0x5308, 0x20);
cam_i2c_write(axi_iic, device_addr, 0x5309, 0x40);
cam_i2c_write(axi_iic, device_addr, 0x5304, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5305, 0x30);
cam_i2c_write(axi_iic, device_addr, 0x5306, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5307, 0x80);
cam_i2c_write(axi_iic, device_addr, 0x5314, 0x08);
cam_i2c_write(axi_iic, device_addr, 0x5315, 0x20);
cam_i2c_write(axi_iic, device_addr, 0x5319, 0x30);
cam_i2c_write(axi_iic, device_addr, 0x5316, 0x10);
cam_i2c_write(axi_iic, device_addr, 0x5317, 0x08);
cam_i2c_write(axi_iic, device_addr, 0x5318, 0x02);
cam_i2c_write(axi_iic, device_addr, 0x5380, 0x01);
cam_i2c_write(axi_iic, device_addr, 0x5381, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5382, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5383, 0x1f);
cam_i2c_write(axi_iic, device_addr, 0x5384, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5385, 0x06);
cam_i2c_write(axi_iic, device_addr, 0x5386, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5387, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5388, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5389, 0xE1);
cam_i2c_write(axi_iic, device_addr, 0x538A, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x538B, 0x2B);
cam_i2c_write(axi_iic, device_addr, 0x538C, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x538D, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x538E, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x538F, 0x10);
cam_i2c_write(axi_iic, device_addr, 0x5390, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5391, 0xB3);
cam_i2c_write(axi_iic, device_addr, 0x5392, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5393, 0xA6);
cam_i2c_write(axi_iic, device_addr, 0x5394, 0x08);
cam_i2c_write(axi_iic, device_addr, 0x5480, 0xd);
cam_i2c_write(axi_iic, device_addr, 0x5481, 0x18);
cam_i2c_write(axi_iic, device_addr, 0x5482, 0x2a);
cam_i2c_write(axi_iic, device_addr, 0x5483, 0x49);
cam_i2c_write(axi_iic, device_addr, 0x5484, 0x56);
cam_i2c_write(axi_iic, device_addr, 0x5485, 0x62);
cam_i2c_write(axi_iic, device_addr, 0x5486, 0x6c);
cam_i2c_write(axi_iic, device_addr, 0x5487, 0x76);
cam_i2c_write(axi_iic, device_addr, 0x5488, 0x80);
cam_i2c_write(axi_iic, device_addr, 0x5489, 0x88);
cam_i2c_write(axi_iic, device_addr, 0x548a, 0x96);
cam_i2c_write(axi_iic, device_addr, 0x548b, 0xa2);
cam_i2c_write(axi_iic, device_addr, 0x548c, 0xb8);
cam_i2c_write(axi_iic, device_addr, 0x548d, 0xcc);
cam_i2c_write(axi_iic, device_addr, 0x548e, 0xe0);
cam_i2c_write(axi_iic, device_addr, 0x548f, 0x10);
cam_i2c_write(axi_iic, device_addr, 0x5490, 0x3);
cam_i2c_write(axi_iic, device_addr, 0x5491, 0x40);
cam_i2c_write(axi_iic, device_addr, 0x5492, 0x3);
cam_i2c_write(axi_iic, device_addr, 0x5493, 0x0);
cam_i2c_write(axi_iic, device_addr, 0x5494, 0x2);
cam_i2c_write(axi_iic, device_addr, 0x5495, 0xa0);
cam_i2c_write(axi_iic, device_addr, 0x5496, 0x2);
cam_i2c_write(axi_iic, device_addr, 0x5497, 0x48);
cam_i2c_write(axi_iic, device_addr, 0x5498, 0x2);
cam_i2c_write(axi_iic, device_addr, 0x5499, 0x26);
cam_i2c_write(axi_iic, device_addr, 0x549a, 0x2);
cam_i2c_write(axi_iic, device_addr, 0x549b, 0xb);
cam_i2c_write(axi_iic, device_addr, 0x549c, 0x1);
cam_i2c_write(axi_iic, device_addr, 0x549d, 0xee);
cam_i2c_write(axi_iic, device_addr, 0x549e, 0x1);
cam_i2c_write(axi_iic, device_addr, 0x549f, 0xd8);
cam_i2c_write(axi_iic, device_addr, 0x54a0, 0x1);
cam_i2c_write(axi_iic, device_addr, 0x54a1, 0xc7);
cam_i2c_write(axi_iic, device_addr, 0x54a2, 0x1);
cam_i2c_write(axi_iic, device_addr, 0x54a3, 0xb3);
cam_i2c_write(axi_iic, device_addr, 0x54a4, 0x1);
cam_i2c_write(axi_iic, device_addr, 0x54a5, 0x90);
cam_i2c_write(axi_iic, device_addr, 0x54a6, 0x1);
cam_i2c_write(axi_iic, device_addr, 0x54a7, 0x62);
cam_i2c_write(axi_iic, device_addr, 0x54a8, 0x1);
cam_i2c_write(axi_iic, device_addr, 0x54a9, 0x27);
cam_i2c_write(axi_iic, device_addr, 0x54aa, 0x01);
cam_i2c_write(axi_iic, device_addr, 0x54ab, 0x09);
cam_i2c_write(axi_iic, device_addr, 0x54ac, 0x01);
cam_i2c_write(axi_iic, device_addr, 0x54ad, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x54ae, 0x0);
cam_i2c_write(axi_iic, device_addr, 0x54af, 0x40);
cam_i2c_write(axi_iic, device_addr, 0x54b0, 0x1);
cam_i2c_write(axi_iic, device_addr, 0x54b1, 0x20);
cam_i2c_write(axi_iic, device_addr, 0x54b2, 0x1);
cam_i2c_write(axi_iic, device_addr, 0x54b3, 0x40);
cam_i2c_write(axi_iic, device_addr, 0x54b4, 0x0);
cam_i2c_write(axi_iic, device_addr, 0x54b5, 0xf0);
cam_i2c_write(axi_iic, device_addr, 0x54b6, 0x1);
cam_i2c_write(axi_iic, device_addr, 0x54b7, 0xdf);
cam_i2c_write(axi_iic, device_addr, 0x5583, 0x5d);
cam_i2c_write(axi_iic, device_addr, 0x5584, 0x5d);
cam_i2c_write(axi_iic, device_addr, 0x5580, 0x06);
cam_i2c_write(axi_iic, device_addr, 0x5587, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5588, 0x20);
cam_i2c_write(axi_iic, device_addr, 0x558a, 0x09);
cam_i2c_write(axi_iic, device_addr, 0x5589, 0x10);
cam_i2c_write(axi_iic, device_addr, 0x5000, 0xcf);
cam_i2c_write(axi_iic, device_addr, 0x5800, 0x48);
cam_i2c_write(axi_iic, device_addr, 0x5801, 0x31);
cam_i2c_write(axi_iic, device_addr, 0x5802, 0x21);
cam_i2c_write(axi_iic, device_addr, 0x5803, 0x1b);
cam_i2c_write(axi_iic, device_addr, 0x5804, 0x1a);
cam_i2c_write(axi_iic, device_addr, 0x5805, 0x1e);
cam_i2c_write(axi_iic, device_addr, 0x5806, 0x29);
cam_i2c_write(axi_iic, device_addr, 0x5807, 0x38);
cam_i2c_write(axi_iic, device_addr, 0x5808, 0x26);
cam_i2c_write(axi_iic, device_addr, 0x5809, 0x17);
cam_i2c_write(axi_iic, device_addr, 0x580a, 0x11);
cam_i2c_write(axi_iic, device_addr, 0x580b, 0xe);
cam_i2c_write(axi_iic, device_addr, 0x580c, 0xd);
cam_i2c_write(axi_iic, device_addr, 0x580d, 0xe);
cam_i2c_write(axi_iic, device_addr, 0x580e, 0x13);
cam_i2c_write(axi_iic, device_addr, 0x580f, 0x1a);
cam_i2c_write(axi_iic, device_addr, 0x5810, 0x15);
cam_i2c_write(axi_iic, device_addr, 0x5811, 0xd);
cam_i2c_write(axi_iic, device_addr, 0x5812, 0x8);
cam_i2c_write(axi_iic, device_addr, 0x5813, 0x5);
cam_i2c_write(axi_iic, device_addr, 0x5814, 0x4);
cam_i2c_write(axi_iic, device_addr, 0x5815, 0x5);
cam_i2c_write(axi_iic, device_addr, 0x5816, 0x9);
cam_i2c_write(axi_iic, device_addr, 0x5817, 0xd);
cam_i2c_write(axi_iic, device_addr, 0x5818, 0x11);
cam_i2c_write(axi_iic, device_addr, 0x5819, 0xa);
cam_i2c_write(axi_iic, device_addr, 0x581a, 0x4);
cam_i2c_write(axi_iic, device_addr, 0x581b, 0x0);
cam_i2c_write(axi_iic, device_addr, 0x581c, 0x0);
cam_i2c_write(axi_iic, device_addr, 0x581d, 0x1);
cam_i2c_write(axi_iic, device_addr, 0x581e, 0x6);
cam_i2c_write(axi_iic, device_addr, 0x581f, 0x9);
cam_i2c_write(axi_iic, device_addr, 0x5820, 0x12);
cam_i2c_write(axi_iic, device_addr, 0x5821, 0xb);
cam_i2c_write(axi_iic, device_addr, 0x5822, 0x4);
cam_i2c_write(axi_iic, device_addr, 0x5823, 0x0);
cam_i2c_write(axi_iic, device_addr, 0x5824, 0x0);
cam_i2c_write(axi_iic, device_addr, 0x5825, 0x1);
cam_i2c_write(axi_iic, device_addr, 0x5826, 0x6);
cam_i2c_write(axi_iic, device_addr, 0x5827, 0xa);
cam_i2c_write(axi_iic, device_addr, 0x5828, 0x17);
cam_i2c_write(axi_iic, device_addr, 0x5829, 0xf);
cam_i2c_write(axi_iic, device_addr, 0x582a, 0x9);
cam_i2c_write(axi_iic, device_addr, 0x582b, 0x6);
cam_i2c_write(axi_iic, device_addr, 0x582c, 0x5);
cam_i2c_write(axi_iic, device_addr, 0x582d, 0x6);
cam_i2c_write(axi_iic, device_addr, 0x582e, 0xa);
cam_i2c_write(axi_iic, device_addr, 0x582f, 0xe);
cam_i2c_write(axi_iic, device_addr, 0x5830, 0x28);
cam_i2c_write(axi_iic, device_addr, 0x5831, 0x1a);
cam_i2c_write(axi_iic, device_addr, 0x5832, 0x11);
cam_i2c_write(axi_iic, device_addr, 0x5833, 0xe);
cam_i2c_write(axi_iic, device_addr, 0x5834, 0xe);
cam_i2c_write(axi_iic, device_addr, 0x5835, 0xf);
cam_i2c_write(axi_iic, device_addr, 0x5836, 0x15);
cam_i2c_write(axi_iic, device_addr, 0x5837, 0x1d);
cam_i2c_write(axi_iic, device_addr, 0x5838, 0x6e);
cam_i2c_write(axi_iic, device_addr, 0x5839, 0x39);
cam_i2c_write(axi_iic, device_addr, 0x583a, 0x27);
cam_i2c_write(axi_iic, device_addr, 0x583b, 0x1f);
cam_i2c_write(axi_iic, device_addr, 0x583c, 0x1e);
cam_i2c_write(axi_iic, device_addr, 0x583d, 0x23);
cam_i2c_write(axi_iic, device_addr, 0x583e, 0x2f);
cam_i2c_write(axi_iic, device_addr, 0x583f, 0x41);
cam_i2c_write(axi_iic, device_addr, 0x5840, 0xe);
cam_i2c_write(axi_iic, device_addr, 0x5841, 0xc);
cam_i2c_write(axi_iic, device_addr, 0x5842, 0xd);
cam_i2c_write(axi_iic, device_addr, 0x5843, 0xc);
cam_i2c_write(axi_iic, device_addr, 0x5844, 0xc);
cam_i2c_write(axi_iic, device_addr, 0x5845, 0xc);
cam_i2c_write(axi_iic, device_addr, 0x5846, 0xc);
cam_i2c_write(axi_iic, device_addr, 0x5847, 0xc);
cam_i2c_write(axi_iic, device_addr, 0x5848, 0xd);
cam_i2c_write(axi_iic, device_addr, 0x5849, 0xe);
cam_i2c_write(axi_iic, device_addr, 0x584a, 0xe);
cam_i2c_write(axi_iic, device_addr, 0x584b, 0xa);
cam_i2c_write(axi_iic, device_addr, 0x584c, 0xe);
cam_i2c_write(axi_iic, device_addr, 0x584d, 0xe);
cam_i2c_write(axi_iic, device_addr, 0x584e, 0x10);
cam_i2c_write(axi_iic, device_addr, 0x584f, 0x10);
cam_i2c_write(axi_iic, device_addr, 0x5850, 0x11);
cam_i2c_write(axi_iic, device_addr, 0x5851, 0xa);
cam_i2c_write(axi_iic, device_addr, 0x5852, 0xf);
cam_i2c_write(axi_iic, device_addr, 0x5853, 0xe);
cam_i2c_write(axi_iic, device_addr, 0x5854, 0x10);
cam_i2c_write(axi_iic, device_addr, 0x5855, 0x10);
cam_i2c_write(axi_iic, device_addr, 0x5856, 0x10);
cam_i2c_write(axi_iic, device_addr, 0x5857, 0xa);
cam_i2c_write(axi_iic, device_addr, 0x5858, 0xe);
cam_i2c_write(axi_iic, device_addr, 0x5859, 0xe);
cam_i2c_write(axi_iic, device_addr, 0x585a, 0xf);
cam_i2c_write(axi_iic, device_addr, 0x585b, 0xf);
cam_i2c_write(axi_iic, device_addr, 0x585c, 0xf);
cam_i2c_write(axi_iic, device_addr, 0x585d, 0xa);
cam_i2c_write(axi_iic, device_addr, 0x585e, 0x9);
cam_i2c_write(axi_iic, device_addr, 0x585f, 0xd);
cam_i2c_write(axi_iic, device_addr, 0x5860, 0xc);
cam_i2c_write(axi_iic, device_addr, 0x5861, 0xb);
cam_i2c_write(axi_iic, device_addr, 0x5862, 0xd);
cam_i2c_write(axi_iic, device_addr, 0x5863, 0x7);
cam_i2c_write(axi_iic, device_addr, 0x5864, 0x17);
cam_i2c_write(axi_iic, device_addr, 0x5865, 0x14);
cam_i2c_write(axi_iic, device_addr, 0x5866, 0x18);
cam_i2c_write(axi_iic, device_addr, 0x5867, 0x18);
cam_i2c_write(axi_iic, device_addr, 0x5868, 0x16);
cam_i2c_write(axi_iic, device_addr, 0x5869, 0x12);
cam_i2c_write(axi_iic, device_addr, 0x586a, 0x1b);
cam_i2c_write(axi_iic, device_addr, 0x586b, 0x1a);
cam_i2c_write(axi_iic, device_addr, 0x586c, 0x16);
cam_i2c_write(axi_iic, device_addr, 0x586d, 0x16);
cam_i2c_write(axi_iic, device_addr, 0x586e, 0x18);
cam_i2c_write(axi_iic, device_addr, 0x586f, 0x1f);
cam_i2c_write(axi_iic, device_addr, 0x5870, 0x1c);
cam_i2c_write(axi_iic, device_addr, 0x5871, 0x16);
cam_i2c_write(axi_iic, device_addr, 0x5872, 0x10);
cam_i2c_write(axi_iic, device_addr, 0x5873, 0xf);
cam_i2c_write(axi_iic, device_addr, 0x5874, 0x13);
cam_i2c_write(axi_iic, device_addr, 0x5875, 0x1c);
cam_i2c_write(axi_iic, device_addr, 0x5876, 0x1e);
cam_i2c_write(axi_iic, device_addr, 0x5877, 0x17);
cam_i2c_write(axi_iic, device_addr, 0x5878, 0x11);
cam_i2c_write(axi_iic, device_addr, 0x5879, 0x11);
cam_i2c_write(axi_iic, device_addr, 0x587a, 0x14);
cam_i2c_write(axi_iic, device_addr, 0x587b, 0x1e);
cam_i2c_write(axi_iic, device_addr, 0x587c, 0x1c);
cam_i2c_write(axi_iic, device_addr, 0x587d, 0x1c);
cam_i2c_write(axi_iic, device_addr, 0x587e, 0x1a);
cam_i2c_write(axi_iic, device_addr, 0x587f, 0x1a);
cam_i2c_write(axi_iic, device_addr, 0x5880, 0x1b);
cam_i2c_write(axi_iic, device_addr, 0x5881, 0x1f);
cam_i2c_write(axi_iic, device_addr, 0x5882, 0x14);
cam_i2c_write(axi_iic, device_addr, 0x5883, 0x1a);
cam_i2c_write(axi_iic, device_addr, 0x5884, 0x1d);
cam_i2c_write(axi_iic, device_addr, 0x5885, 0x1e);
cam_i2c_write(axi_iic, device_addr, 0x5886, 0x1a);
cam_i2c_write(axi_iic, device_addr, 0x5887, 0x1a);
cam_i2c_write(axi_iic, device_addr, 0x528a, 0x02);
cam_i2c_write(axi_iic, device_addr, 0x528b, 0x06);
cam_i2c_write(axi_iic, device_addr, 0x528c, 0x20);
cam_i2c_write(axi_iic, device_addr, 0x528d, 0x30);
cam_i2c_write(axi_iic, device_addr, 0x528e, 0x40);
cam_i2c_write(axi_iic, device_addr, 0x528f, 0x50);
cam_i2c_write(axi_iic, device_addr, 0x5290, 0x60);
cam_i2c_write(axi_iic, device_addr, 0x5292, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5293, 0x02);
cam_i2c_write(axi_iic, device_addr, 0x5294, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5295, 0x04);
cam_i2c_write(axi_iic, device_addr, 0x5296, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5297, 0x08);
cam_i2c_write(axi_iic, device_addr, 0x5298, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5299, 0x10);
cam_i2c_write(axi_iic, device_addr, 0x529a, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x529b, 0x20);
cam_i2c_write(axi_iic, device_addr, 0x529c, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x529d, 0x28);
cam_i2c_write(axi_iic, device_addr, 0x529e, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x529f, 0x30);
cam_i2c_write(axi_iic, device_addr, 0x5282, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5680, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5681, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5682, 0x05);
cam_i2c_write(axi_iic, device_addr, 0x5683, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5684, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5685, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x5686, 0x03);
cam_i2c_write(axi_iic, device_addr, 0x5687, 0xc0);
cam_i2c_write(axi_iic, device_addr, 0x5180, 0xff);
cam_i2c_write(axi_iic, device_addr, 0x5181, 0x52);
cam_i2c_write(axi_iic, device_addr, 0x5182, 0x11);
cam_i2c_write(axi_iic, device_addr, 0x5183, 0x14);
cam_i2c_write(axi_iic, device_addr, 0x5184, 0x25);
cam_i2c_write(axi_iic, device_addr, 0x5185, 0x24);
cam_i2c_write(axi_iic, device_addr, 0x5186, 0x14);
cam_i2c_write(axi_iic, device_addr, 0x5187, 0x14);
cam_i2c_write(axi_iic, device_addr, 0x5188, 0x14);
cam_i2c_write(axi_iic, device_addr, 0x5189, 0x80);
cam_i2c_write(axi_iic, device_addr, 0x518a, 0x60);
cam_i2c_write(axi_iic, device_addr, 0x518b, 0xa2);
cam_i2c_write(axi_iic, device_addr, 0x518c, 0x9c);
cam_i2c_write(axi_iic, device_addr, 0x518d, 0x36);
cam_i2c_write(axi_iic, device_addr, 0x518e, 0x34);
cam_i2c_write(axi_iic, device_addr, 0x518f, 0x54);
cam_i2c_write(axi_iic, device_addr, 0x5190, 0x4c);
cam_i2c_write(axi_iic, device_addr, 0x5191, 0xf8);
cam_i2c_write(axi_iic, device_addr, 0x5192, 0x04);
cam_i2c_write(axi_iic, device_addr, 0x5193, 0x70);
cam_i2c_write(axi_iic, device_addr, 0x5194, 0xf0);
cam_i2c_write(axi_iic, device_addr, 0x5195, 0xf0);
cam_i2c_write(axi_iic, device_addr, 0x5196, 0x03);
cam_i2c_write(axi_iic, device_addr, 0x5197, 0x01);
cam_i2c_write(axi_iic, device_addr, 0x5198, 0x05);
cam_i2c_write(axi_iic, device_addr, 0x5199, 0x2f);
cam_i2c_write(axi_iic, device_addr, 0x519a, 0x04);
cam_i2c_write(axi_iic, device_addr, 0x519b, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x519c, 0x06);
cam_i2c_write(axi_iic, device_addr, 0x519d, 0xa0);
cam_i2c_write(axi_iic, device_addr, 0x519e, 0xa0);
cam_i2c_write(axi_iic, device_addr, 0x3a0f, 0x3c);
cam_i2c_write(axi_iic, device_addr, 0x3a10, 0x30);
cam_i2c_write(axi_iic, device_addr, 0x3a1b, 0x3c);
cam_i2c_write(axi_iic, device_addr, 0x3a1e, 0x30);
cam_i2c_write(axi_iic, device_addr, 0x3a11, 0x70);
cam_i2c_write(axi_iic, device_addr, 0x3a1f, 0x10);
cam_i2c_write(axi_iic, device_addr, 0x3800, 0x1);
cam_i2c_write(axi_iic, device_addr, 0x3801, 0x50);
cam_i2c_write(axi_iic, device_addr, 0x3802, 0x0);
cam_i2c_write(axi_iic, device_addr, 0x3803, 0x8);
cam_i2c_write(axi_iic, device_addr, 0x3804, 0x5);
cam_i2c_write(axi_iic, device_addr, 0x3805, 0x0);
cam_i2c_write(axi_iic, device_addr, 0x3806, 0x3);
cam_i2c_write(axi_iic, device_addr, 0x3807, 0xc0);
cam_i2c_write(axi_iic, device_addr, 0x3808, 0x3);
cam_i2c_write(axi_iic, device_addr, 0x3809, 0x20);
cam_i2c_write(axi_iic, device_addr, 0x380a, 0x2);
cam_i2c_write(axi_iic, device_addr, 0x380b, 0x58);
cam_i2c_write(axi_iic, device_addr, 0x380c, 0xc);
cam_i2c_write(axi_iic, device_addr, 0x380d, 0x80);
cam_i2c_write(axi_iic, device_addr, 0x380e, 0x3);
cam_i2c_write(axi_iic, device_addr, 0x380f, 0xe8);
cam_i2c_write(axi_iic, device_addr, 0x5001, 0x7f);
cam_i2c_write(axi_iic, device_addr, 0x5680, 0x0);
cam_i2c_write(axi_iic, device_addr, 0x5681, 0x0);
cam_i2c_write(axi_iic, device_addr, 0x5682, 0x5);
cam_i2c_write(axi_iic, device_addr, 0x5683, 0x0);
cam_i2c_write(axi_iic, device_addr, 0x5684, 0x0);
cam_i2c_write(axi_iic, device_addr, 0x5685, 0x0);
cam_i2c_write(axi_iic, device_addr, 0x5686, 0x3);
cam_i2c_write(axi_iic, device_addr, 0x5687, 0xc0);
cam_i2c_write(axi_iic, device_addr, 0x5687, 0xc0);
cam_i2c_write(axi_iic, device_addr, 0x3815, 0x02);
cam_i2c_write(axi_iic, device_addr, 0x3503, 0x00);
cam_i2c_write(axi_iic, device_addr, 0x3818, 0x81); // No Mirror
cam_i2c_write(axi_iic, device_addr, 0x3621, 0xa7);
cam_i2c_write(axi_iic, device_addr, 0x4740, 0x21);
cam_i2c_write(axi_iic, device_addr, 0x501e, 0x2a);
cam_i2c_write(axi_iic, device_addr, 0x5002, 0x78);
cam_i2c_write(axi_iic, device_addr, 0x501f, 0x01);
cam_i2c_write(axi_iic, device_addr, 0x4300, 0x61);
return(0);
}
#include <ap_int.h>
int sum_of_squares(ap_int<8> x, ap_int<8> y,
ap_int<17> *result){
*result = x*x + y*y;
return(0);
}
#include <ap_int.h>
int sum_of_squares(ap_int<8> x, ap_int<8> y, ap_int<17> *result);
int main(){
ap_int<8> x;
ap_int<8> y;
ap_int<17> result;
for(x=0, y=1; x<10; x++, y++){
sum_of_squares(x, y, &result);
std::cout << "x = " << x << " y = " << y << " result = "
<< result << std::endl;
if(result != (x*x + y*y))
return(1);
}
return(0);
}
// sums_test.c
// 2019/08/16 : by marsee
// x の入力の時に999を入力すると終了する
//
#include <stdio.h>
#include "xsum_of_squares.h"
int main(){
XSum_of_squares XSums_ap;
XSum_of_squares_Config *XSums_apPtr;
int val;
// Look Up the device configuration
XSums_apPtr = XSum_of_squares_LookupConfig(0);
if (!XSums_apPtr){
fprintf(stderr, "XSum_of_squares configuration failed.\n");
return(-1);
}
// Initialize the Device
int XSums_status = XSum_of_squares_CfgInitialize(&XSums_ap, XSums_apPtr);
if (XSums_status != XST_SUCCESS){
fprintf(stderr, "Could not Initialize XSum_of_squares\n");
return(-1);
}
while(1){
printf("\n\rx = ");
scanf("%d", &val);
if(val == 999)
break;
XSum_of_squares_Set_x(&XSums_ap, val);
printf("\n\ry = ");
scanf("%d", &val);
XSum_of_squares_Set_y(&XSums_ap, val);
while(!XSum_of_squares_IsIdle(&XSums_ap)) ;
XSum_of_squares_Start(&XSums_ap);
while(!XSum_of_squares_IsDone(&XSums_ap)) ;
printf("\n\rresult = %d\n\r", (int)XSum_of_squares_Get_result(&XSums_ap));
}
return(0);
}
set_property PACKAGE_PIN H16 [get_ports TMDS_Clk_p_0]
set_property PACKAGE_PIN D19 [get_ports {TMDS_Data_p_0[0]}]
set_property PACKAGE_PIN C20 [get_ports {TMDS_Data_p_0[1]}]
set_property PACKAGE_PIN B19 [get_ports {TMDS_Data_p_0[2]}]
set_property IOSTANDARD TMDS_33 [get_ports TMDS_Clk_p_0]
set_property IOSTANDARD TMDS_33 [get_ports {TMDS_Data_p_0[2]}]
set_property IOSTANDARD TMDS_33 [get_ports {TMDS_Data_p_0[1]}]
set_property IOSTANDARD TMDS_33 [get_ports {TMDS_Data_p_0[0]}]
set_property PACKAGE_PIN T14 [get_ports {cam_data[7]}]
set_property IOSTANDARD LVCMOS33 [get_ports {cam_data[7]}]
set_property IOSTANDARD LVCMOS33 [get_ports {cam_data[6]}]
set_property IOSTANDARD LVCMOS33 [get_ports {cam_data[5]}]
set_property IOSTANDARD LVCMOS33 [get_ports {cam_data[4]}]
set_property IOSTANDARD LVCMOS33 [get_ports {cam_data[3]}]
set_property IOSTANDARD LVCMOS33 [get_ports {cam_data[2]}]
set_property IOSTANDARD LVCMOS33 [get_ports {cam_data[1]}]
set_property IOSTANDARD LVCMOS33 [get_ports {cam_data[0]}]
set_property PACKAGE_PIN U14 [get_ports {cam_data[6]}]
set_property PACKAGE_PIN T15 [get_ports {cam_data[5]}]
set_property PACKAGE_PIN U15 [get_ports {cam_data[4]}]
set_property PACKAGE_PIN P14 [get_ports {cam_data[3]}]
set_property PACKAGE_PIN V17 [get_ports {cam_data[2]}]
set_property PACKAGE_PIN R14 [get_ports {cam_data[1]}]
set_property PACKAGE_PIN V18 [get_ports {cam_data[0]}]
set_property IOSTANDARD LVCMOS33 [get_ports iic_scl_io]
set_property IOSTANDARD LVCMOS33 [get_ports iic_sda_io]
set_property IOSTANDARD LVCMOS33 [get_ports href]
set_property IOSTANDARD LVCMOS33 [get_ports pclk]
set_property IOSTANDARD LVCMOS33 [get_ports standby]
set_property IOSTANDARD LVCMOS33 [get_ports vsync]
set_property IOSTANDARD LVCMOS33 [get_ports xck]
set_property PACKAGE_PIN V15 [get_ports iic_scl_io]
set_property PACKAGE_PIN W14 [get_ports iic_sda_io]
set_property PACKAGE_PIN W15 [get_ports vsync]
set_property PACKAGE_PIN Y14 [get_ports href]
set_property PACKAGE_PIN T11 [get_ports standby]
set_property PACKAGE_PIN T10 [get_ports pclk]
set_property PACKAGE_PIN U12 [get_ports xck]
set_property CLOCK_DEDICATED_ROUTE FALSE [get_nets pclk_IBUF]
set_property PULLUP true [get_ports iic_scl_io]
set_property PULLUP true [get_ports iic_sda_io]
日 | 月 | 火 | 水 | 木 | 金 | 土 |
---|---|---|---|---|---|---|
- | 1 | 2 | 3 | 4 | 5 | 6 |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 | 31 | - | - | - |