GSaha567/seq_level_training_data
052
1text,length,is_long_context,metric_val,label_metric2"/*****************************************************************************3* Copyright (c) Future Technology Devices International 20154* propriety of Future Technology devices International.5*6* Software License Agreement7*8* This code is provided as an example only and is not guaranteed by FTDI. 9* FTDI accept no responsibility for any issues resulting from its use. 10* The developer of the final application incorporating any parts of this 11* sample project is responsible for ensuring its safe and correct operation 12* and for any consequences resulting from its use.13*****************************************************************************/14/**15* @file FT_App_Gauges.c16* @brief Sample application to demonstrate FT800 primitives and built-in widgets17 18version 3.2 - July/29/2015 - Added support for FT90x and FT80x platforms.19version 3.1 - Jun/13/2014 - Application now uses x position as the input for FT801 platform.20Version 3.0 - Support for FT801 platform.21Version 2.0 - Support for FT800 emulator platform.22Version 1.1 - QVGA updated to two Gauge application.23Version 1.0 - Final version based on the requirements.24Version 0.1 - Intial draft of the release notes25 26*27*/28 29#include <stdio.h>30#include <Arduino.h>31#include <EEPROM.h>32#include <SPI.h>33#include <avr/pgmspace.h>34#include ""FT_Platform.h""35 36#include ""Ft_Gauge_Digit.h""37#define SAMAPP_DELAY_BTW_APIS (1000)38#define SAMAPP_ENABLE_DELAY() Ft_Gpu_Hal_Sleep(SAMAPP_DELAY_BTW_APIS)39#define SAMAPP_ENABLE_DELAY_VALUE(x) Ft_Gpu_Hal_Sleep(x)40 41#define F16(s) ((ft_int32_t)((s) * 65536))42#define SQ(v) (v*v)43 44 45 46/* Global variables for display resolution to support various display panels */47/* Default is WQVGA - 480x272 */48ft_int16_t FT_DispWidth = 480;49ft_int16_t FT_DispHeight = 272;50ft_int16_t FT_DispHCycle = 548;51ft_int16_t FT_DispHOffset = 43;52ft_int16_t FT_DispHSync0 = 0;53ft_int16_t FT_DispHSync1 = 41;54ft_int16_t FT_DispVCycle = 292;55ft_int16_t FT_DispVOffset = 12;56ft_int16_t FT_DispVSync0 = 0;57ft_int16_t FT_DispVSync1 = 10;58ft_uint8_t FT_DispPCLK = 5;59ft_char8_t FT_DispSwizzle = 0;60ft_char8_t FT_DispPCLKPol = 1;61ft_char8_t FT_DispCSpread = 1;62ft_char8_t FT_DispDither = 1;63 64/* Global used for buffer optimization */65Ft_Gpu_Hal_Context_t host,*phost;66 67 68ft_uint32_t Ft_CmdBuffer_Index;69ft_uint32_t Ft_DlBuffer_Index;70 71#ifdef BUFFER_OPTIMIZATION72ft_uint8_t Ft_DlBuffer[FT_DL_SIZE];73ft_uint8_t Ft_CmdBuffer[FT_CMD_FIFO_SIZE];74#endif75/* Boot up for FT800 followed by graphics primitive sample cases */76/* Initial boot up DL - make the back ground green color */77const ft_uint8_t FT_DLCODE_BOOTUP[12] = 78{79 0,0,0,2,//GPU instruction CLEAR_COLOR_RGB80 7,0,0,38, //GPU instruction CLEAR81 82 0,0,0,0, //GPU instruction DISPLAY83};84ft_void_t Ft_App_WrCoCmd_Buffer(Ft_Gpu_Hal_Context_t *phost,ft_uint32_t cmd)85{86#ifdef BUFFER_OPTIMIZATION87 /* Copy the command instruction into buffer */88 ft_uint32_t *pBuffcmd;89 pBuffcmd =(ft_uint32_t*)&Ft_CmdBuffer[Ft_CmdBuffer_Index];90 *pBuffcmd = cmd;91#endif92#ifdef ARDUINO_PLATFORM93 Ft_Gpu_Hal_WrCmd32(phost,cmd);94#endif95#ifdef FT900_PLATFORM96 Ft_Gpu_Hal_WrCmd32(phost,cmd);97#endif98 /* Increment the command index */99 Ft_CmdBuffer_Index += FT_CMD_SIZE; 100}101 102ft_void_t Ft_App_WrDlCmd_Buffer(Ft_Gpu_Hal_Context_t *phost,ft_uint32_t cmd)103{104#ifdef BUFFER_OPTIMIZATION 105 /* Copy the command instruction into buffer */106 ft_uint32_t *pBuffcmd;107 pBuffcmd =(ft_uint32_t*)&Ft_DlBuffer[Ft_DlBuffer_Index];108 *pBuffcmd = cmd;109#endif110 111#ifdef ARDUINO_PLATFORM112 Ft_Gpu_Hal_Wr32(phost,(RAM_DL+Ft_DlBuffer_Index),cmd);113#endif114#ifdef FT900_PLATFORM115 Ft_Gpu_Hal_Wr32(phost,(RAM_DL+Ft_DlBuffer_Index),cmd);116#endif117 /* Increment the command index */118 Ft_DlBuffer_Index += FT_CMD_SIZE; 119}120 121ft_void_t Ft_App_WrCoStr_Buffer(Ft_Gpu_Hal_Context_t *phost,const ft_char8_t *s)122{123#ifdef BUFFER_OPTIMIZATION 124 ft_uint16_t length = 0;125 length = strlen(s) + 1;//last for the null termination126 127 strcpy(&Ft_CmdBuffer[Ft_CmdBuffer_Index],s); 128 129 /* increment the length and align it by 4 bytes */130 Ft_CmdBuffer_Index += ((length + 3) & ~3); 131#endif 132}133 134ft_void_t Ft_App_Flush_DL_Buffer(Ft_Gpu_Hal_Context_t *phost)135{136#ifdef BUFFER_OPTIMIZATION 137 if (Ft_DlBuffer_Index > 0)138 Ft_Gpu_Hal_WrMem(phost,RAM_DL,Ft_DlBuffer,Ft_DlBuffer_Index);139#endif 140 Ft_DlBuffer_Index = 0;141 142}143 144ft_void_t Ft_App_Flush_Co_Buffer(Ft_Gpu_Hal_Context_t *phost)145{146#ifdef BUFFER_OPTIMIZATION 147 if (Ft_CmdBuffer_Index > 0)148 Ft_Gpu_Hal_WrCmdBuf(phost,Ft_CmdBuffer,Ft_CmdBuffer_Index);149#endif 150 Ft_CmdBuffer_Index = 0;151}152 153 154/* API to give fadeout effect by changing the display PWM from 100 till 0 */155ft_void_t SAMAPP_fadeout()156{157 ft_int32_t i;158 159 for (i = 100; i >= 0; i -= 3) 160 {161 Ft_Gpu_Hal_Wr8(phost,REG_PWM_DUTY,i);162 163 Ft_Gpu_Hal_Sleep(2);//sleep for 2 ms164 }165}166 167/* API to perform display fadein effect by changing the display PWM from 0 till 100 and finally 128 */168ft_void_t SAMAPP_fadein()169{170 ft_int32_t i;171 172 for (i = 0; i <=100 ; i += 3) 173 {174 Ft_Gpu_Hal_Wr8(phost,REG_PWM_DUTY,i);175 Ft_Gpu_Hal_Sleep(2);//sleep for 2 ms176 }177 /* Finally make the PWM 100% */178 i = 128;179 Ft_Gpu_Hal_Wr8(phost,REG_PWM_DUTY,i);180}181#define SAMAPP_ENABLE_APIS_SET0182#ifdef SAMAPP_ENABLE_APIS_SET0183 184/* Optimized implementation of sin and cos table - precision is 16 bit */185FT_PROGMEM ft_prog_uint16_t sintab[] = {186 0, 402, 804, 1206, 1607, 2009, 2410, 2811, 3211, 3611, 4011, 4409, 4807, 5205, 5601, 5997, 6392, 187 6786, 7179, 7571, 7961, 8351, 8739, 9126, 9511, 9895, 10278, 10659, 11038, 11416, 11792, 12166, 12539,188 12909, 13278, 13645, 14009, 14372, 14732, 15090, 15446, 15799, 16150, 16499, 16845, 17189, 17530, 17868,189 18204, 18537, 18867, 19194, 19519, 19840, 20159, 20474, 20787, 21096, 21402, 21705, 22004, 22301, 22594, 190 22883, 23169, 23452, 23731, 24006, 24278, 24546, 24811, 25072, 25329, 25582, 25831, 26077, 26318, 26556, 26789, 191 27019, 27244, 27466, 27683, 27896, 28105, 28309, 28510, 28706, 28897, 29085, 29268, 29446, 29621, 29790, 29955, 192 30116, 30272, 30424, 30571, 30713, 30851, 30984, 31113, 31236, 31356, 31470, 31580, 31684, 31785, 31880, 31970, 193 32056, 32137, 32213, 32284, 32350, 32412, 32468, 32520, 32567, 32609, 32646, 32678, 32705, 32727, 32744, 32757, 194 32764, 32767, 32764};195 196ft_int16_t qsin(ft_uint16_t a)197{198 ft_uint8_t f;199 ft_int16_t s0,s1;200 201 if (a & 32768)202 return -qsin(a & 32767);203 if (a & 16384)204 a = 32768 - a;205 f = a & 127;206 s0 = ft_pgm_read_word(sintab + (a >> 7));207 s1 = ft_pgm_read_word(sintab + (a >> 7) + 1);208 return (s0 + ((ft_int32_t)f * (s1 - s0) >> 7));209}210 211/* cos funtion */212ft_int16_t qcos(ft_uint16_t a)213{214 return (qsin(a + 16384));215}216#endif217 218/* API to check the status of previous DLSWAP and perform DLSWAP of new DL */219/* Check for the status of previous DLSWAP and if still not done wait for few ms and check again */220ft_void_t SAMAPP_GPU_DLSwap(ft_uint8_t DL_Swap_Type)221{222 ft_uint8_t Swap_Type = DLSWAP_FRAME,Swap_Done = DLSWAP_FRAME;223 224 if(DL_Swap_Type == DLSWAP_LINE)225 {226 Swap_Type = DLSWAP_LINE;227 }228 229 /* Perform a new DL swap */230 Ft_Gpu_Hal_Wr8(phost,REG_DLSWAP,Swap_Type);231 232 /* Wait till the swap is done */233 while(Swap_Done)234 {235 Swap_Done = Ft_Gpu_Hal_Rd8(phost,REG_DLSWAP);236 237 if(DLSWAP_DONE != Swap_Done)238 {239 Ft_Gpu_Hal_Sleep(10);//wait for 10ms240 }241 } 242}243 244ft_void_t Ft_BootupConfig()245{246 Ft_Gpu_Hal_Powercycle(phost,FT_TRUE);247 248 /* Access address 0 to wake up the FT800 */249 Ft_Gpu_HostCommand(phost,FT_GPU_ACTIVE_M);250 Ft_Gpu_Hal_Sleep(20);251 252 /* Set the clk to external clock */253#if (!defined(ME800A_HV35R) && !defined(ME810A_HV35R))254 Ft_Gpu_HostCommand(phost,FT_GPU_EXTERNAL_OSC);255 Ft_Gpu_Hal_Sleep(100);256#endif257 258 {259 ft_uint8_t chipid;260 //Read Register ID to check if FT800 is ready.261 chipid = Ft_Gpu_Hal_Rd8(phost, REG_ID);262 while(chipid != 0x7C)263 {264 chipid = Ft_Gpu_Hal_Rd8(phost, REG_ID);265 ft_delay(100);266 }267 #if defined(MSVC_PLATFORM) || defined (FT900_PLATFORM)268 printf(""VC1 register ID after wake up %x\\n"",chipid);269 #endif270 }271 /* Configuration of LCD display */272#ifdef DISPLAY_RESOLUTION_QVGA273 /* Values specific to QVGA LCD display */274 FT_DispWidth = 320;275 FT_DispHeight = 240;276 FT_DispHCycle = 408;277 FT_DispHOffset = 70;278 FT_DispHSync0 = 0;279 FT_DispHSync1 = 10;280 FT_DispVCycle = 263;281 FT_DispVOffset = 13;282 FT_DispVSync0 = 0;283 FT_DispVSync1 = 2;284 FT_DispPCLK = 8;285 FT_DispSwizzle = 2;286 FT_DispPCLKPol = 0;287 FT_DispCSpread = 1;288 FT_DispDither = 1;289 290#endif291#ifdef DISPLAY_RESOLUTION_WVGA292 /* Values specific to QVGA LCD display */293 FT_DispWidth = 800;294 FT_DispHeight = 480;295 FT_DispHCycle = 928;296 FT_DispHOffset = 88;297 FT_DispHSync0 = 0;298 FT_DispHSync1 = 48;299 FT_DispVCycle = 525;300 FT_DispVOffset = 32;301 FT_DispVSync0 = 0;302 FT_DispVSync1 = 3;303 FT_DispPCLK = 2;304 FT_DispSwizzle = 0;305 FT_DispPCLKPol = 1;306 FT_DispCSpread = 0;307 FT_DispDither = 1;308#endif309#ifdef DISPLAY_RESOLUTION_HVGA_PORTRAIT310 /* Values specific to HVGA LCD display */311 312 FT_DispWidth = 320;313 FT_DispHeight = 480;314 FT_DispHCycle = 400;315 FT_DispHOffset = 40;316 FT_DispHSync0 = 0;317 FT_DispHSync1 = 10;318 FT_DispVCycle = 500;319 FT_DispVOffset = 10;320 FT_DispVSync0 = 0;321 FT_DispVSync1 = 5;322 FT_DispPCLK = 4;323 FT_DispSwizzle = 2;324 FT_DispPCLKPol = 1;325 FT_DispCSpread = 1;326 FT_DispDither = 1;327 328#ifdef ME810A_HV35R329 FT_DispPCLK = 5;330#endif331 332#endif333 334#if (defined(ME800A_HV35R) || defined(ME810A_HV35R))335 /* After recognizing the type of chip, perform the trimming if necessary */336 Ft_Gpu_ClockTrimming(phost,LOW_FREQ_BOUND);337#endif338 339 Ft_Gpu_Hal_Wr16(phost, REG_HCYCLE, FT_DispHCycle);340 Ft_Gpu_Hal_Wr16(phost, REG_HOFFSET, FT_DispHOffset);341 Ft_Gpu_Hal_Wr16(phost, REG_HSYNC0, FT_DispHSync0);342 Ft_Gpu_Hal_Wr16(phost, REG_HSYNC1, FT_DispHSync1);343 Ft_Gpu_Hal_Wr16(phost, REG_VCYCLE, FT_DispVCycle);344 Ft_Gpu_Hal_Wr16(phost, REG_VOFFSET, FT_DispVOffset);345 Ft_Gpu_Hal_Wr16(phost, REG_VSYNC0, FT_DispVSync0);346 Ft_Gpu_Hal_Wr16(phost, REG_VSYNC1, FT_DispVSync1);347 Ft_Gpu_Hal_Wr8(phost, REG_SWIZZLE, FT_DispSwizzle);348 Ft_Gpu_Hal_Wr8(phost, REG_PCLK_POL, FT_DispPCLKPol);349 Ft_Gpu_Hal_Wr16(phost, REG_HSIZE, FT_DispWidth);350 Ft_Gpu_Hal_Wr16(phost, REG_VSIZE, FT_DispHeight);351 Ft_Gpu_Hal_Wr16(phost, REG_CSPREAD, FT_DispCSpread);352 Ft_Gpu_Hal_Wr16(phost, REG_DITHER, FT_DispDither);353 354#if (defined(FT_800_ENABLE) || defined(FT_810_ENABLE) ||defined(FT_812_ENABLE))355 /* Touch configuration - configure the resistance value to 1200 - this value is specific to customer requirement and derived by experiment */356 Ft_Gpu_Hal_Wr16(phost, REG_TOUCH_RZTHRESH,RESISTANCE_THRESHOLD);357#endif358 Ft_Gpu_Hal_Wr8(phost, REG_GPIO_DIR,0xff);359 Ft_Gpu_Hal_Wr8(phost, REG_GPIO,0xff);360 361 362 /*It is optional to clear the screen here*/363 Ft_Gpu_Hal_WrMem(phost, RAM_DL,(ft_uint8_t *)FT_DLCODE_BOOTUP,sizeof(FT_DLCODE_BOOTUP));364 Ft_Gpu_Hal_Wr8(phost, REG_DLSWAP,DLSWAP_FRAME);365 366 367 Ft_Gpu_Hal_Wr8(phost, REG_PCLK,FT_DispPCLK);//after this display is visible on the LCD368 369 370#ifdef ENABLE_ILI9488_HVGA_PORTRAIT371 /* to cross check reset pin */372 Ft_Gpu_Hal_Wr8(phost, REG_GPIO,0xff);373 ft_delay(120);374 Ft_Gpu_Hal_Wr8(phost, REG_GPIO,0x7f);375 ft_delay(120);376 Ft_Gpu_Hal_Wr8(phost, REG_GPIO,0xff);377 378 ILI9488_Bootup();379 380 /* Reconfigure the SPI to communicate with FT8xx */381#ifdef FT900_PLATFORM382 printf(""after ILI9488 bootup \\n"");383 //spi384 // Initialize SPIM HW385 sys_enable(sys_device_spi_master);386 gpio_function(27, pad_spim_sck); /* GPIO27 to SPIM_CLK */387 gpio_function(28, pad_spim_ss0); /* GPIO28 as CS */388 gpio_function(29, pad_spim_mosi); /* GPIO29 to SPIM_MOSI */389 gpio_function(30, pad_spim_miso); /* GPIO30 to SPIM_MISO */390 391 gpio_write(28, 1);392 spi_init(SPIM, spi_dir_master, spi_mode_0, 4);393#endif394 395 396#endif397 398 /* make the spi to quad mode - addition 2 bytes for silicon */399#ifdef FT_81X_ENABLE400 /* api to set quad and numbe of dummy bytes */401#ifdef ENABLE_SPI_QUAD402 Ft_Gpu_Hal_SetSPI(phost,FT_GPU_SPI_QUAD_CHANNEL,FT_GPU_SPI_TWODUMMY);403#elif ENABLE_SPI_DUAL404 Ft_Gpu_Hal_SetSPI(phost,FT_GPU_SPI_DUAL_CHANNEL,FT_GPU_SPI_TWODUMMY);405#else406 Ft_Gpu_Hal_SetSPI(phost,FT_GPU_SPI_SINGLE_CHANNEL,FT_GPU_SPI_ONEDUMMY);407#endif408 409#endif410 411#ifdef FT900_PLATFORM412 /* Change clock frequency to 25mhz */413 spi_init(SPIM, spi_dir_master, spi_mode_0, 4);414 415#if (defined(ENABLE_SPI_QUAD))416 /* Initialize IO2 and IO3 pad/pin for dual and quad settings */417 gpio_function(31, pad_spim_io2);418 gpio_function(32, pad_spim_io3);419 gpio_write(31, 1);420 gpio_write(32, 1);421#endif422 /* Enable FIFO of QSPI */423 spi_option(SPIM,spi_option_fifo_size,64);424 spi_option(SPIM,spi_option_fifo,1);425 spi_option(SPIM,spi_option_fifo_receive_trigger,1);426#endif427 428#ifdef ENABLE_SPI_QUAD429#ifdef FT900_PLATFORM430 spi_option(SPIM,spi_option_bus_width,4);431#endif432#elif ENABLE_SPI_DUAL 433#ifdef FT900_PLATFORM434 spi_option(SPIM,spi_option_bus_width,2);435#endif436#else437#ifdef FT900_PLATFORM438 spi_option(SPIM,spi_option_bus_width,1);439#endif440 441 442#endif443 444 445phost->ft_cmd_fifo_wp = Ft_Gpu_Hal_Rd16(phost,REG_CMD_WRITE);446 447}448 449 450 451 452 453/*****************************************************************************/454/* Example code to display few points at various offsets with various colors */455 456 457 458/* Boot up for FT800 followed by graphics primitive sample cases */459/* Initial boot up DL - make the back ground green color */460 461 462static ft_int32_t ox;463static ft_uint8_t noofch=0;464 465/*deflated icons*/466static ft_uint8_t home_star_icon[] = {0x78,0x9C,0xE5,0x94,0xBF,0x4E,0xC2,0x40,0x1C,0xC7,0x7F,0x2D,0x04,0x8B,0x20,0x45,0x76,0x14,0x67,0xA3,0xF1,0x0D,0x64,0x75,0xD2,0xD5,0x09,0x27,0x17,0x13,0xE1,0x0D,0xE4,0x0D,0x78,0x04,0x98,0x5D,0x30,0x26,0x0E,0x4A,0xA2,0x3E,0x82,0x0E,0x8E,0x82,0xC1,0x38,0x62,0x51,0x0C,0x0A,0x42,0x7F,0xDE,0xB5,0x77,0xB4,0x77,0x17,0x28,0x21,0x26,0x46,0xFD,0x26,0xCD,0xE5,0xD3,0x7C,0xFB,0xBB,0xFB,0xFD,0xB9,0x02,0xCC,0xA4,0xE8,0x99,0x80,0x61,0xC4,0x8A,0x9F,0xCB,0x6F,0x31,0x3B,0xE3,0x61,0x7A,0x98,0x84,0x7C,0x37,0xF6,0xFC,0xC8,0xDD,0x45,0x00,0xDD,0xBA,0xC4,0x77,0xE6,0xEE,0x40,0xEC,0x0E,0xE6,0x91,0xF1,0xD2,0x00,0x42,0x34,0x5E,0xCE,0xE5,0x08,0x16,0xA0,0x84,0x68,0x67,0xB4,0x86,0xC3,0xD5,0x26,0x2C,0x20,0x51,0x17,0xA2,0xB8,0x03,0xB0,0xFE,0x49,0xDD,0x54,0x15,0xD8,0xEE,0x73,0x37,0x95,0x9D,0xD4,0x1A,0xB7,0xA5,0x26,0xC4,0x91,0xA9,0x0B,0x06,0xEE,0x72,0xB7,0xFB,0xC5,0x16,0x80,0xE9,0xF1,0x07,0x8D,0x3F,0x15,0x5F,0x1C,0x0B,0xFC,0x0A,0x90,0xF0,0xF3,0x09,0xA9,0x90,0xC4,0xC6,0x37,0xB0,0x93,0xBF,0xE1,0x71,0xDB,0xA9,0xD7,0x41,0xAD,0x46,0xEA,0x19,0xA9,0xD5,0xCE,0x93,0xB3,0x35,0x73,0x0A,0x69,0x59,0x91,0xC3,0x0F,0x22,0x1B,0x1D,0x91,0x13,0x3D,0x91,0x73,0x43,0xF1,0x6C,0x55,0xDA,0x3A,0x4F,0xBA,0x25,0xCE,0x4F,0x04,0xF1,0xC5,0xCF,0x71,0xDA,0x3C,0xD7,0xB9,0xB2,0x48,0xB4,0x89,0x38,0x20,0x4B,0x2A,0x95,0x0C,0xD5,0xEF,0x5B,0xAD,0x96,0x45,0x8A,0x41,0x96,0x7A,0x1F,0x60,0x0D,0x7D,0x22,0x75,0x82,0x2B,0x0F,0xFB,0xCE,0x51,0x3D,0x2E,0x3A,0x21,0xF3,0x1C,0xD9,0x38,0x86,0x2C,0xC6,0x05,0xB6,0x7B,0x9A,0x8F,0x0F,0x97,0x1B,0x72,0x6F,0x1C,0xEB,0xAE,0xFF,0xDA,0x97,0x0D,0xBA,0x43,0x32,0xCA,0x66,0x34,0x3D,0x54,0xCB,0x24,0x9B,0x43,0xF2,0x70,0x3E,0x42,0xBB,0xA0,0x95,0x11,0x37,0x46,0xE1,0x4F,0x49,0xC5,0x1B,0xFC,0x3C,0x3A,0x3E,0xD1,0x65,0x0E,0x6F,0x58,0xF8,0x9E,0x5B,0xDB,0x55,0xB6,0x41,0x34,0xCB,0xBE,0xDB,0x87,0x5F,0xA9,0xD1,0x85,0x6B,0xB3,0x17,0x9C,0x61,0x0C,0x9B,0xA2,0x5D,0x61,0x10,0xED,0x2A,0x9B,0xA2,0x5D,0x61,0x10,0xED,0x2A,0x9B,0xA2,0x5D,0x61,0x10,0xED,0x2A,0x9B,0xED,0xC9,0xFC,0xDF,0x14,0x54,0x8F,0x80,0x7A,0x06,0xF5,0x23,0xA0,0x9F,0x41,0xF3,0x10,0x30,0x4F,0x41,0xF3,0x18,0x30,0xCF,0xCA,0xFC,0xFF,0x35,0xC9,0x79,0xC9,0x89,0xFA,0x33,0xD7,0x1D,0xF6,0x5E,0x84,0x5C,0x56,0x6E,0xA7,0xDA,0x1E,0xF9,0xFA,0xAB,0xF5,0x97,0xFF,0x2F,0xED,0x89,0x7E,0x29,0x9E,0xB4,0x9F,0x74,0x1E,0x69,0xDA,0xA4,0x9F,0x81,0x94,0xEF,0x4F,0xF6,0xF9,0x0B,0xF4,0x65,0x51,0x08};467 468 469 470 471 472#define WRITE2CMD(a) Ft_Gpu_Hal_WrCmdBufFromFlash(phost,a,sizeof(a))473 474 475static void polarxy(ft_int32_t r, ft_uint16_t th, ft_int32_t *x, ft_int32_t *y)476{477 *x = (16 * (FT_DispWidth/(2*noofch)) + (((long)r * qsin(th)) >> 11) + 16 * ox);478 *y = (16 * 300 - (((long)r * qcos(th)) >> 11));479}480 481 482void vertex(ft_int32_t x, ft_int32_t y)483{484 Ft_App_WrCoCmd_Buffer(phost,VERTEX2F(x,y));485}486 487 488static void polar(ft_int32_t r, ft_uint16_t th)489{490 ft_int32_t x, y;491 polarxy(r, th, &x, &y);492 vertex(x, y);493}494 495ft_uint16_t da(ft_int32_t i)496{497 return (i - 45) * 32768L / 360;498}499 500static void cs(ft_uint8_t i)501{502 switch (i)503 {504 case 0: Ft_App_WrCoCmd_Buffer(phost,COLOR_RGB(200,255,200)); break;505 case 60: Ft_App_WrCoCmd_Buffer(phost,COLOR_RGB(255,255,0)); break;506 case 80: Ft_App_WrCoCmd_Buffer(phost,COLOR_RGB(255,0,0)); break;507 }508}509 510/// draw the gauges511 512void Gauges()513{514 ft_uint16_t w,h,n, a,th,size_d,temp[1024],tval;515 ft_int32_t rval,tgt;516 ft_uint8_t i,bi,z,buff[512];517 ft_int32_t x,y,tx,ty,o,dt;518 ft_int16_t xvalue,yvalue;519#ifdef FT_801_ENABLE520 ft_int32_t val=0;521#else522 ft_int16_t val=0;523#endif524 w = 220; h = 130;525 noofch = 1;526 dt =50;527 #ifdef DISPLAY_RESOLUTION_WQVGA528 noofch = 2;529 dt = 10;530 #endif531 532// clear GRAM 533 Ft_Gpu_CoCmd_Dlstart(phost); 534 Ft_Gpu_CoCmd_MemSet(phost,0,0,10*1024); 535 Ft_App_Flush_Co_Buffer(phost);536 Ft_Gpu_Hal_WaitCmdfifo_empty(phost);537// load the deflated icons to GRAM via J1538 Ft_Gpu_Hal_WrCmd32(phost,CMD_INFLATE);539 Ft_Gpu_Hal_WrCmd32(phost,20*1024L);540 WRITE2CMD(digits);541 542 Ft_Gpu_CoCmd_Dlstart(phost);543 Ft_Gpu_CoCmd_SetFont(phost,13,20*1024l);544 Ft_App_WrCoCmd_Buffer(phost,BITMAP_HANDLE(13));545#ifdef DISPLAY_RESOLUTION_QVGA546 Ft_App_WrCoCmd_Buffer(phost,BITMAP_SOURCE(20480L+144 - (32L*(21*60))));547 Ft_App_WrCoCmd_Buffer(phost,BITMAP_LAYOUT(L4,21,60));548 Ft_App_WrCoCmd_Buffer(phost,BITMAP_SIZE(NEAREST, BORDER, BORDER, 42, 60));549#else550 Ft_App_WrCoCmd_Buffer(phost,BITMAP_SOURCE(20480L+144 - (32L*(31*87))));551 Ft_App_WrCoCmd_Buffer(phost,BITMAP_LAYOUT(L4,31,87));552 Ft_App_WrCoCmd_Buffer(phost,BITMAP_SIZE(NEAREST, BORDER, BORDER, 62, 87));553 #endif 554 Ft_App_WrCoCmd_Buffer(phost,DISPLAY());555 Ft_Gpu_CoCmd_Swap(phost);556 Ft_App_Flush_Co_Buffer(phost);557 Ft_Gpu_Hal_WaitCmdfifo_empty(phost); 558 559// Construct the Gauge background 560 561 Ft_Gpu_CoCmd_Dlstart(phost); // dl = 0;562 Ft_App_WrCoCmd_Buffer(phost,CLEAR_COLOR_RGB(55,55,55));563 Ft_App_WrCoCmd_Buffer(phost,CLEAR(1,1,1));564 Ft_App_WrCoCmd_Buffer(phost,CLEAR_COLOR_RGB(0,0,0));565// Ft_App_WrCoCmd_Buffer(phost,BEGIN(BITMAPS));566// Ft_App_WrCoCmd_Buffer(phost,VERTEX2II(0,0,2,0));567 y = 10;568 for(z=0;z<(FT_DispWidth/w);z++)569 {570 ox = 240*z; 571 Ft_App_WrCoCmd_Buffer(phost,SCISSOR_XY(ox+dt,y));572 Ft_App_WrCoCmd_Buffer(phost,SCISSOR_SIZE(w,h));573 Ft_App_WrCoCmd_Buffer(phost,CLEAR(1,1,1)); 574 Ft_App_WrCoCmd_Buffer(phost,BEGIN(LINES));575 Ft_App_WrCoCmd_Buffer(phost,LINE_WIDTH(10));576 for (bi = 0; bi < 81; bi += 10) 577 {578 cs(bi);579 for ( i = 2; i < 10; i += 2) 580 {581 a = da(bi + i);582 polar(220, a);583 polar(240, a);584 }585 }586 587 Ft_App_WrCoCmd_Buffer(phost,LINE_WIDTH(16));588 for (i = 0; i < 91; i += 10)589 {590 cs(i);591 a = da(i);592 polar(220, a);593 polar(250, a);594 }595 Ft_App_WrCoCmd_Buffer(phost,COLOR_RGB(255,255,255));596 for (i = 0; i < 91; i += 10)597 {598 a = da(i);599 polarxy(260, a, &tx, &ty);600 Ft_Gpu_CoCmd_Number(phost,tx >> 4, ty >> 4,26,OPT_CENTER, i);601 }602 ox = (FT_DispWidth/(2*noofch))+(z*(FT_DispWidth/2));603 if(z==1)Ft_Gpu_CoCmd_Text(phost,ox,h-10,28,OPT_CENTERX,""Random""); 604#if defined FT_801_ENABLE605 if(z==0)Ft_Gpu_CoCmd_Text(phost,ox,h-10,28,OPT_CENTERX,""X Position"");606#else607 if(z==0)Ft_Gpu_CoCmd_Text(phost,ox,h-10,28,OPT_CENTERX,""Resistance"");608#endif609 }610 Ft_App_Flush_Co_Buffer(phost);611 Ft_Gpu_Hal_WaitCmdfifo_empty(phost);612// copy the displaylist from DLRAM to GRAM 613 ft_uint16_t dloffset;614 dloffset = Ft_Gpu_Hal_Rd16(phost,REG_CMD_DL); 615 616 Ft_Gpu_Hal_WrCmd32(phost,CMD_MEMCPY);617 Ft_Gpu_Hal_WrCmd32(phost,100000L);618 Ft_Gpu_Hal_WrCmd32(phost,RAM_DL);619 Ft_Gpu_Hal_WrCmd32(phost,dloffset);620 y = 10+120+20;621 rval=0,tgt = 4500;622 do623 {624 // Start the New Displaylist625 Ft_Gpu_CoCmd_Dlstart(phost); 626 Ft_Gpu_CoCmd_Append(phost,100000L,dloffset); 627 for(z=0;z<(FT_DispWidth/w);z++)628 {629 ox = (FT_DispWidth/2)*z;630 if(z==0)631 {632 #ifdef FT_801_ENABLE633 val = Ft_Gpu_Hal_Rd32(phost,REG_CTOUCH_TOUCH0_XY); 634 xvalue = ((val>>16));635 636 if(xvalue!=-32768) 637 { 638 val = (xvalue * 899.0 / FT_DispWidth);639 }else640 val = 0;641 642 #else643 val = Ft_Gpu_Hal_Rd32(phost,REG_TOUCH_RZ); 644 #endif 645 val = 10*min(899,val); 646 }else 647 if(z==1)648 {649 int d = (tgt - rval) / 16;650 rval += d;651 if (ft_random(60) == 0)652 tgt = ft_random(9000L);653 val = rval;654 }655 // Scissor the Value display position 656 Ft_App_WrCoCmd_Buffer(phost,SCISSOR_XY(ox+dt,10));657 Ft_App_WrCoCmd_Buffer(phost,SCISSOR_SIZE(w,120));658 Ft_App_WrCoCmd_Buffer(phost,COLOR_RGB(255,255,255));659 Ft_App_WrCoCmd_Buffer(phost,BEGIN(LINES));660 Ft_App_WrCoCmd_Buffer(phost,LINE_WIDTH(10));661 th = ((ft_uint16_t)val - 4500L) * 32768L / 36000L;662 for (o = -5; o < 6; o++) 663 {664 polar(170, th + (o << 5));665 polar(235, th);666 }667 Ft_App_WrCoCmd_Buffer(phost,SCISSOR_XY(ox+dt,y));668 Ft_App_WrCoCmd_Buffer(phost,SCISSOR_SIZE(w,(ft_uint16_t)(FT_DispHeight*0.36)));669 Ft_App_WrCoCmd_Buffer(phost,CLEAR(1,1,1));670 Ft_App_WrCoCmd_Buffer(phost,COLOR_RGB(255,0,0));671 Ft_Gpu_CoCmd_Number(phost,ox+dt+10,160,13,2,val/100); 672 Ft_Gpu_CoCmd_Text(phost,ox+dt+96,160,13,0,""."");673 Ft_Gpu_CoCmd_Number(phost,ox+dt+106,160,13,2,val%100);674 }675 Ft_App_WrCoCmd_Buffer(phost,DISPLAY());676 Ft_Gpu_CoCmd_Swap(phost);677 Ft_App_Flush_Co_Buffer(phost);678 Ft_Gpu_Hal_WaitCmdfifo_empty(phost); 679 }680 while(1);681}682 683/********API to return the assigned TAG value when penup,for the primitives/widgets******/684static ft_uint8_t sk=0;685ft_uint8_t Read_Keys()686{687 static ft_uint8_t Read_tag=0,temp_tag=0,ret_tag=0; 688 Read_tag = Ft_Gpu_Hal_Rd8(phost,REG_TOUCH_TAG);689 ret_tag = NULL;690 if(Read_tag!=NULL) // Allow if the Key is released691 {692 if(temp_tag!=Read_tag)693 {694 temp_tag = Read_tag; 695 sk = Read_tag; // Load the Read tag to temp variable 696 } 697 }698 else699 {700 if(temp_tag!=0)701 {702 ret_tag = temp_tag;703 } 704 sk = 0;705 }706 return ret_tag;707}708/***********************API used to SET the ICON******************************************/709/*Refer the code flow in the flowchart availble in the Application Note */710 711ft_void_t home_setup()712{713 /*Icon file is deflated use J1 Command to inflate the file and write into the GRAM*/714 Ft_Gpu_Hal_WrCmd32(phost,CMD_INFLATE);715 Ft_Gpu_Hal_WrCmd32(phost,250*1024L);716 Ft_Gpu_Hal_WrCmdBuf(phost,home_star_icon,sizeof(home_star_icon));717 /*Set the Bitmap properties for the ICONS*/ 718 Ft_Gpu_CoCmd_Dlstart(phost); // start719 Ft_App_WrCoCmd_Buffer(phost,CLEAR(1,1,1));720 Ft_App_WrCoCmd_Buffer(phost,COLOR_RGB(255, 255, 255));721 Ft_App_WrCoCmd_Buffer(phost,BITMAP_HANDLE(13)); // handle for background stars722 Ft_App_WrCoCmd_Buffer(phost,BITMAP_SOURCE(250*1024L)); // Starting address in gram723 Ft_App_WrCoCmd_Buffer(phost,BITMAP_LAYOUT(L4, 16, 32)); // format 724 Ft_App_WrCoCmd_Buffer(phost,BITMAP_SIZE(NEAREST, REPEAT, REPEAT, 512, 512 ));725 Ft_App_WrCoCmd_Buffer(phost,BITMAP_HANDLE(14)); // handle for background stars726 Ft_App_WrCoCmd_Buffer(phost,BITMAP_SOURCE(250*1024L)); // Starting address in gram727 Ft_App_WrCoCmd_Buffer(phost,BITMAP_LAYOUT(L4, 16, 32)); // format 728 Ft_App_WrCoCmd_Buffer(phost,BITMAP_SIZE(NEAREST, BORDER, BORDER, 32, 32 ));729 Ft_App_WrCoCmd_Buffer(phost,DISPLAY());730 Ft_Gpu_CoCmd_Swap(phost);731 Ft_App_Flush_Co_Buffer(phost);732 Ft_Gpu_Hal_WaitCmdfifo_empty(phost);733}734 735 736char* const info[] PROGMEM = { ""FT800 Gauges Application"",737 738 ""APP to demonstrate interactive Gauges,"",739 ""using Lines & custom Font.""740 }; 741 742 743 744ft_void_t Info()745{746 ft_uint16_t dloffset = 0,z;747 Ft_CmdBuffer_Index = 0;748 749 750 // Touch Screen Calibration751 Ft_Gpu_CoCmd_Dlstart(phost); 752 Ft_App_WrCoCmd_Buffer(phost,CLEAR(1,1,1));753 Ft_App_WrCoCmd_Buffer(phost,COLOR_RGB(255,255,255));754 Ft_Gpu_CoCmd_Text(phost,FT_DispWidth/2,FT_DispHeight/2,26,OPT_CENTERX|OPT_CENTERY,""Please tap on a dot"");755 Ft_Gpu_CoCmd_Calibrate(phost,0);756 Ft_App_Flush_Co_Buffer(phost);757 Ft_Gpu_Hal_WaitCmdfifo_empty(phost);758 // Ftdi Logo animation 759 Ft_Gpu_CoCmd_Logo(phost);760 Ft_App_Flush_Co_Buffer(phost);761 Ft_Gpu_Hal_WaitCmdfifo_empty(phost);762 while(0!=Ft_Gpu_Hal_Rd16(phost,REG_CMD_READ)); 763 dloffset = Ft_Gpu_Hal_Rd16(phost,REG_CMD_DL);764 //Copy the Displaylist from DL RAM to GRAM765 dloffset -=4;766#ifdef FT_81X_ENABLE767 dloffset -= 2*4;//remove two more instructions in case of 81x768#endif769 770 Ft_Gpu_Hal_WrCmd32(phost,CMD_MEMCPY);771 Ft_Gpu_Hal_WrCmd32(phost,100000L);772 Ft_Gpu_Hal_WrCmd32(phost,RAM_DL);773 Ft_Gpu_Hal_WrCmd32(phost,dloffset);774 //Enter into Info Screen775 do776 {777 Ft_Gpu_CoCmd_Dlstart(phost); 778 Ft_Gpu_CoCmd_Append(phost,100000L,dloffset);779 //Reset the BITMAP properties used during Logo animation780 Ft_App_WrCoCmd_Buffer(phost,BITMAP_TRANSFORM_A(256));781 Ft_App_WrCoCmd_Buffer(phost,BITMAP_TRANSFORM_A(256));782 Ft_App_WrCoCmd_Buffer(phost,BITMAP_TRANSFORM_B(0));783 Ft_App_WrCoCmd_Buffer(phost,BITMAP_TRANSFORM_C(0));784 Ft_App_WrCoCmd_Buffer(phost,BITMAP_TRANSFORM_D(0));785 Ft_App_WrCoCmd_Buffer(phost,BITMAP_TRANSFORM_E(256));786 Ft_App_WrCoCmd_Buffer(phost,BITMAP_TRANSFORM_F(0)); 787 Ft_App_WrCoCmd_Buffer(phost,SAVE_CONTEXT()); 788 //Display the information with transparent Logo using Edge Strip 789 Ft_App_WrCoCmd_Buffer(phost,COLOR_RGB(219,180,150));790 Ft_App_WrCoCmd_Buffer(phost,COLOR_A(220));791 Ft_App_WrCoCmd_Buffer(phost,BEGIN(EDGE_STRIP_A));792 Ft_App_WrCoCmd_Buffer(phost,VERTEX2F(0,FT_DispHeight*16));793 Ft_App_WrCoCmd_Buffer(phost,VERTEX2F(FT_DispWidth*16,FT_DispHeight*16));794 Ft_App_WrCoCmd_Buffer(phost,COLOR_A(255));795 Ft_App_WrCoCmd_Buffer(phost,RESTORE_CONTEXT()); 796 Ft_App_WrCoCmd_Buffer(phost,COLOR_RGB(0,0,0));797 // INFORMATION 798 Ft_Gpu_CoCmd_Text(phost,FT_DispWidth/2,20,28,OPT_CENTERX|OPT_CENTERY,(char*)pgm_read_word(&info[0]));799 Ft_Gpu_CoCmd_Text(phost,FT_DispWidth/2,60,26,OPT_CENTERX|OPT_CENTERY,(char*)pgm_read_word(&info[1]));800 Ft_Gpu_CoCmd_Text(phost,FT_DispWidth/2,90,26,OPT_CENTERX|OPT_CENTERY,(char*)pgm_read_word(&info[2])); 801 // Ft_Gpu_CoCmd_Text(phost,FT_DispWidth/2,120,26,OPT_CENTERX|OPT_CENTERY,(char*)pgm_read_word(&info[3])); 802 Ft_Gpu_CoCmd_Text(phost,FT_DispWidth/2,FT_DispHeight-30,26,OPT_CENTERX|OPT_CENTERY,""Click to play"");803 //Check the Play key and change the color804 if(sk!='P')805 Ft_App_WrCoCmd_Buffer(phost,COLOR_RGB(255,255,255));806 else807 Ft_App_WrCoCmd_Buffer(phost,COLOR_RGB(100,100,100));808 Ft_App_WrCoCmd_Buffer(phost,BEGIN(FTPOINTS)); 809 Ft_App_WrCoCmd_Buffer(phost,POINT_SIZE(20*16));810 Ft_App_WrCoCmd_Buffer(phost,TAG('P'));811 Ft_App_WrCoCmd_Buffer(phost,VERTEX2F((FT_DispWidth/2)*16,(FT_DispHeight-60)*16));812 Ft_App_WrCoCmd_Buffer(phost,COLOR_RGB(180,35,35));813 Ft_App_WrCoCmd_Buffer(phost,BEGIN(BITMAPS));814 Ft_App_WrCoCmd_Buffer(phost,VERTEX2II((FT_DispWidth/2)-14,(FT_DispHeight-75),14,4));815 Ft_App_WrCoCmd_Buffer(phost,DISPLAY());816 Ft_Gpu_CoCmd_Swap(phost);817 Ft_App_Flush_Co_Buffer(phost);818 Ft_Gpu_Hal_WaitCmdfifo_empty(phost);819 }while(Read_Keys()!='P');820 /* wait until Play key is not pressed*/ 821}822 823 824 825 826#if defined MSVC_PLATFORM | defined FT900_PLATFORM827/* Main entry point */828ft_int32_t main(ft_int32_t argc,ft_char8_t *argv[])829#endif830#if defined(ARDUINO_PLATFORM)||defined(MSVC_FT800EMU)831ft_void_t setup()832#endif833{834 835 ft_uint8_t chipid;836#ifdef FT900_PLATFORM837 FT900_Config();838#endif839 Ft_Gpu_HalInit_t halinit;840 841 halinit.TotalChannelNum = 1;842 843 844 Ft_Gpu_Hal_Init(&halinit);845 host.hal_config.channel_no = 0;846 host.hal_config.pdn_pin_no = FT800_PD_N;847 host.hal_config.spi_cs_pin_no = FT800_SEL_PIN;848#ifdef MSVC_PLATFORM_SPI849 host.hal_config.spi_clockrate_khz = 12000; //in KHz850#endif851#ifdef ARDUINO_PLATFORM_SPI852 host.hal_config.spi_clockrate_khz = 4000; //in KHz853#endif854 Ft_Gpu_Hal_Open(&host);855 856 phost = &host;857 858 Ft_BootupConfig();859 860#if ((defined FT900_PLATFORM) || defined(MSVC_PLATFORM))861 printf(""\\n reg_touch_rz =0x%x "", Ft_Gpu_Hal_Rd16(phost, REG_TOUCH_RZ));862 printf(""\\n reg_touch_rzthresh =0x%x "", Ft_Gpu_Hal_Rd32(phost, REG_TOUCH_RZTHRESH));863 printf(""\\n reg_touch_tag_xy=0x%x"",Ft_Gpu_Hal_Rd32(phost, REG_TOUCH_TAG_XY));864 printf(""\\n reg_touch_tag=0x%x"",Ft_Gpu_Hal_Rd32(phost, REG_TOUCH_TAG));865#endif866 867 /*It is optional to clear the screen here*/ 868 Ft_Gpu_Hal_WrMem(phost, RAM_DL,(ft_uint8_t *)FT_DLCODE_BOOTUP,sizeof(FT_DLCODE_BOOTUP));869 Ft_Gpu_Hal_Wr8(phost, REG_DLSWAP,DLSWAP_FRAME);870 871 Ft_Gpu_Hal_Sleep(1000);//Show the booting up screen.872 873 874 home_setup();875 Info();876 Gauges(); 877 /* Close all the opened handles */878 Ft_Gpu_Hal_Close(phost);879 Ft_Gpu_Hal_DeInit();880#ifdef MSVC_PLATFORM881 return 0;882#endif883}884 885void loop()886{887}888 889 890 891/* Nothing beyond this */892 893 894 895 896 897/* Nothing beyond this */898",12389,False,2238.4069768180534,median899"cmd_/home/chenxiang/f-stack/dpdk/build/build/kernel/linux/kni/kni_net.o := gcc -Wp,-MMD,/home/chenxiang/f-stack/dpdk/build/build/kernel/linux/kni/.kni_net.o.d -nostdinc -isystem /usr/lib/gcc/x86_64-linux-gnu/7/include -I./arch/x86/include -I./arch/x86/include/generated -I./include -I./arch/x86/include/uapi -I./arch/x86/include/generated/uapi -I./include/uapi -I./include/generated/uapi -include ./include/linux/kconfig.h -include ./include/linux/compiler_types.h -D__KERNEL__ -Wall -Wundef -Werror=strict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -fshort-wchar -fno-PIE -Werror=implicit-function-declaration -Werror=implicit-int -Wno-format-security -std=gnu89 -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -mno-avx -m64 -falign-jumps=1 -falign-loops=1 -mno-80387 -mno-fp-ret-in-387 -mpreferred-stack-boundary=3 -mskip-rax-setup -mtune=generic -mno-red-zone -mcmodel=kernel -DCONFIG_X86_X32_ABI -Wno-sign-compare -fno-asynchronous-unwind-tables -mindirect-branch=thunk-extern -mindirect-branch-register -fno-jump-tables -fno-delete-null-pointer-checks -Wno-frame-address -Wno-format-truncation -Wno-format-overflow -O2 --param=allow-store-data-races=0 -Wframe-larger-than=1024 -fstack-protector-strong -Wno-unused-but-set-variable -Wimplicit-fallthrough -Wno-unused-const-variable -fno-omit-frame-pointer -fno-optimize-sibling-calls -fno-var-tracking-assignments -pg -mrecord-mcount -mfentry -DCC_USING_FENTRY -Wdeclaration-after-statement -Wvla -Wno-pointer-sign -Wno-array-bounds -Wno-stringop-overflow -Wno-restrict -Wno-maybe-uninitialized -fno-strict-overflow -fno-merge-all-constants -fmerge-constants -fno-stack-check -fconserve-stack -Werror=date-time -Werror=incompatible-pointer-types -Werror=designated-init -I/home/chenxiang/f-stack/dpdk/kernel/linux/kni --param max-inline-insns-single=50 -I/home/chenxiang/f-stack/dpdk/build/include -include /home/chenxiang/f-stack/dpdk/build/include/rte_config.h -Wall -Werror -DUBUNTU_RELEASE_CODE=1604 -D""UBUNTU_KERNEL_CODE=UBUNTU_KERNEL_VERSION(5,9,0,050900,1)"" -DMODULE -DKBUILD_BASENAME='""kni_net""' -DKBUILD_MODNAME='""rte_kni""' -c -o /home/chenxiang/f-stack/dpdk/build/build/kernel/linux/kni/kni_net.o /home/chenxiang/f-stack/dpdk/build/build/kernel/linux/kni/kni_net.c900 901source_/home/chenxiang/f-stack/dpdk/build/build/kernel/linux/kni/kni_net.o := /home/chenxiang/f-stack/dpdk/build/build/kernel/linux/kni/kni_net.c902 903deps_/home/chenxiang/f-stack/dpdk/build/build/kernel/linux/kni/kni_net.o := \\904 include/linux/kconfig.h \\905 $(wildcard include/config/cc/version/text.h) \\906 $(wildcard include/config/cpu/big/endian.h) \\907 $(wildcard include/config/booger.h) \\908 $(wildcard include/config/foo.h) \\909 include/linux/compiler_types.h \\910 $(wildcard include/config/have/arch/compiler/h.h) \\911 $(wildcard include/config/enable/must/check.h) \\912 $(wildcard include/config/cc/has/asm/inline.h) \\913 include/linux/compiler_attributes.h \\914 include/linux/compiler-gcc.h \\915 $(wildcard include/config/retpoline.h) \\916 $(wildcard include/config/arch/use/builtin/bswap.h) \\917 /home/chenxiang/f-stack/dpdk/build/include/rte_config.h \\918 include/linux/device.h \\919 $(wildcard include/config/debug/devres.h) \\920 $(wildcard include/config/prove/locking.h) \\921 $(wildcard include/config/energy/model.h) \\922 $(wildcard include/config/generic/msi/irq/domain.h) \\923 $(wildcard include/config/pinctrl.h) \\924 $(wildcard include/config/generic/msi/irq.h) \\925 $(wildcard include/config/dma/ops.h) \\926 $(wildcard include/config/dma/declare/coherent.h) \\927 $(wildcard include/config/dma/cma.h) \\928 $(wildcard include/config/numa.h) \\929 $(wildcard include/config/arch/has/sync/dma/for/device.h) \\930 $(wildcard include/config/arch/has/sync/dma/for/cpu.h) \\931 $(wildcard include/config/arch/has/sync/dma/for/cpu/all.h) \\932 $(wildcard include/config/dma/ops/bypass.h) \\933 $(wildcard include/config/srcu.h) \\934 $(wildcard include/config/pm/sleep.h) \\935 $(wildcard include/config/of.h) \\936 $(wildcard include/config/devtmpfs.h) \\937 $(wildcard include/config/sysfs/deprecated.h) \\938 include/linux/dev_printk.h \\939 $(wildcard include/config/printk.h) \\940 $(wildcard include/config/dynamic/debug.h) \\941 $(wildcard include/config/dynamic/debug/core.h) \\942 include/linux/compiler.h \\943 $(wildcard include/config/trace/branch/profiling.h) \\944 $(wildcard include/config/profile/all/branches.h) \\945 $(wildcard include/config/stack/validation.h) \\946 include/linux/compiler_types.h \\947 arch/x86/include/generated/asm/rwonce.h \\948 include/asm-generic/rwonce.h \\949 include/linux/kasan-checks.h \\950 $(wildcard include/config/kasan.h) \\951 include/linux/types.h \\952 $(wildcard include/config/have/uid16.h) \\953 $(wildcard include/config/uid16.h) \\954 $(wildcard include/config/arch/dma/addr/t/64bit.h) \\955 $(wildcard include/config/phys/addr/t/64bit.h) \\956 $(wildcard include/config/64bit.h) \\957 include/uapi/linux/types.h \\958 arch/x86/include/generated/uapi/asm/types.h \\959 include/uapi/asm-generic/types.h \\960 include/asm-generic/int-ll64.h \\961 include/uapi/asm-generic/int-ll64.h \\962 arch/x86/include/uapi/asm/bitsperlong.h \\963 include/asm-generic/bitsperlong.h \\964 include/uapi/asm-generic/bitsperlong.h \\965 include/uapi/linux/posix_types.h \\966 include/linux/stddef.h \\967 include/uapi/linux/stddef.h \\968 arch/x86/include/asm/posix_types.h \\969 $(wildcard include/config/x86/32.h) \\970 arch/x86/include/uapi/asm/posix_types_64.h \\971 include/uapi/asm-generic/posix_types.h \\972 include/linux/kcsan-checks.h \\973 $(wildcard include/config/kcsan.h) \\974 $(wildcard include/config/kcsan/ignore/atomics.h) \\975 include/linux/ratelimit.h \\976 include/linux/ratelimit_types.h \\977 include/linux/bits.h \\978 include/linux/const.h \\979 include/vdso/const.h \\980 include/uapi/linux/const.h \\981 include/vdso/bits.h \\982 include/linux/build_bug.h \\983 include/uapi/linux/param.h \\984 arch/x86/include/generated/uapi/asm/param.h \\985 include/asm-generic/param.h \\986 $(wildcard include/config/hz.h) \\987 include/uapi/asm-generic/param.h \\988 include/linux/spinlock_types.h \\989 $(wildcard include/config/smp.h) \\990 $(wildcard include/config/debug/spinlock.h) \\991 $(wildcard include/config/debug/lock/alloc.h) \\992 arch/x86/include/asm/spinlock_types.h \\993 include/asm-generic/qspinlock_types.h \\994 $(wildcard include/config/nr/cpus.h) \\995 include/asm-generic/qrwlock_types.h \\996 arch/x86/include/uapi/asm/byteorder.h \\997 include/linux/byteorder/little_endian.h \\998 include/uapi/linux/byteorder/little_endian.h \\999 include/linux/swab.h \\1000 include/uapi/linux/swab.h \\1001 arch/x86/include/uapi/asm/swab.h \\1002 include/linux/byteorder/generic.h \\1003 include/linux/lockdep_types.h \\1004 $(wildcard include/config/prove/raw/lock/nesting.h) \\1005 $(wildcard include/config/preempt/lock.h) \\1006 $(wildcard include/config/lockdep.h) \\1007 $(wildcard include/config/lock/stat.h) \\1008 include/linux/rwlock_types.h \\1009 include/linux/sched.h \\1010 $(wildcard include/config/debug/atomic/sleep.h) \\1011 $(wildcard include/config/virt/cpu/accounting/native.h) \\1012 $(wildcard include/config/sched/info.h) \\1013 $(wildcard include/config/schedstats.h) \\1014 $(wildcard include/config/fair/group/sched.h) \\1015 $(wildcard include/config/rt/group/sched.h) \\1016 $(wildcard include/config/uclamp/task.h) \\1017 $(wildcard include/config/uclamp/buckets/count.h) \\1018 $(wildcard include/config/thread/info/in/task.h) \\1019 $(wildcard include/config/cgroup/sched.h) \\1020 $(wildcard include/config/preempt/notifiers.h) \\1021 $(wildcard include/config/blk/dev/io/trace.h) \\1022 $(wildcard include/config/preempt/rcu.h) \\1023 $(wildcard include/config/tasks/rcu.h) \\1024 $(wildcard include/config/tasks/trace/rcu.h) \\1025 $(wildcard include/config/psi.h) \\1026 $(wildcard include/config/memcg.h) \\1027 $(wildcard include/config/compat/brk.h) \\1028 $(wildcard include/config/cgroups.h) \\1029 $(wildcard include/config/blk/cgroup.h) \\1030 $(wildcard include/config/stackprotector.h) \\1031 $(wildcard include/config/arch/has/scaled/cputime.h) \\1032 $(wildcard include/config/virt/cpu/accounting/gen.h) \\1033 $(wildcard include/config/no/hz/full.h) \\1034 $(wildcard include/config/posix/cputimers.h) \\1035 $(wildcard include/config/posix/cpu/timers/task/work.h) \\1036 $(wildcard include/config/keys.h) \\1037 $(wildcard include/config/sysvipc.h) \\1038 $(wildcard include/config/detect/hung/task.h) \\1039 $(wildcard include/config/audit.h) \\1040 $(wildcard include/config/auditsyscall.h) \\1041 $(wildcard include/config/rt/mutexes.h) \\1042 $(wildcard include/config/debug/mutexes.h) \\1043 $(wildcard include/config/trace/irqflags.h) \\1044 $(wildcard include/config/ubsan.h) \\1045 $(wildcard include/config/block.h) \\1046 $(wildcard include/config/compaction.h) \\1047 $(wildcard include/config/task/xacct.h) \\1048 $(wildcard include/config/cpusets.h) \\1049 $(wildcard include/config/x86/cpu/resctrl.h) \\1050 $(wildcard include/config/futex.h) \\1051 $(wildcard include/config/compat.h) \\1052 $(wildcard include/config/perf/events.h) \\1053 $(wildcard include/config/debug/preempt.h) \\1054 $(wildcard include/config/numa/balancing.h) \\1055 $(wildcard include/config/rseq.h) \\1056 $(wildcard include/config/task/delay/acct.h) \\1057 $(wildcard include/config/fault/injection.h) \\1058 $(wildcard include/config/latencytop.h) \\1059 $(wildcard include/config/function/graph/tracer.h) \\1060 $(wildcard include/config/tracing.h) \\1061 $(wildcard include/config/kcov.h) \\1062 $(wildcard include/config/uprobes.h) \\1063 $(wildcard include/config/bcache.h) \\1064 $(wildcard include/config/mmu.h) \\1065 $(wildcard include/config/vmap/stack.h) \\1066 $(wildcard include/config/livepatch.h) \\1067 $(wildcard include/config/security.h) \\1068 $(wildcard include/config/gcc/plugin/stackleak.h) \\1069 $(wildcard include/config/x86/mce.h) \\1070 $(wildcard include/config/arch/task/struct/on/stack.h) \\1071 $(wildcard include/config/preemption.h) \\1072 $(wildcard include/config/debug/rseq.h) \\1073 include/uapi/linux/sched.h \\1074 arch/x86/include/asm/current.h \\1075 arch/x86/include/asm/percpu.h \\1076 $(wildcard include/config/x86/64.h) \\1077 $(wildcard include/config/x86/64/smp.h) \\1078 $(wildcard include/config/x86/cmpxchg64.h) \\1079 include/linux/kernel.h \\1080 $(wildcard include/config/preempt/voluntary.h) \\1081 $(wildcard include/config/preempt/rt.h) \\1082 $(wildcard include/config/panic/timeout.h) \\1083 $(wildcard include/config/ftrace/mcount/record.h) \\1084 include/linux/limits.h \\1085 include/uapi/linux/limits.h \\1086 include/vdso/limits.h \\1087 include/linux/linkage.h \\1088 $(wildcard include/config/arch/use/sym/annotations.h) \\1089 include/linux/stringify.h \\1090 include/linux/export.h \\1091 $(wildcard include/config/modversions.h) \\1092 $(wildcard include/config/module/rel/crcs.h) \\1093 $(wildcard include/config/have/arch/prel32/relocations.h) \\1094 $(wildcard include/config/modules.h) \\1095 $(wildcard include/config/trim/unused/ksyms.h) \\1096 $(wildcard include/config/unused/symbols.h) \\1097 arch/x86/include/asm/linkage.h \\1098 $(wildcard include/config/x86/alignment/16.h) \\1099 include/linux/bitops.h \\1100 arch/x86/include/asm/bitops.h \\1101 $(wildcard include/config/x86/cmov.h) \\1102 arch/x86/include/asm/alternative.h \\1103 arch/x86/include/asm/asm.h \\1104 arch/x86/include/asm/rmwcc.h \\1105 $(wildcard include/config/cc/has/asm/goto.h) \\1106 arch/x86/include/asm/barrier.h \\1107 arch/x86/include/asm/nops.h \\1108 $(wildcard include/config/mk7.h) \\1109 $(wildcard include/config/x86/p6/nop.h) \\1110 include/asm-generic/barrier.h \\1111 include/asm-generic/bitops/find.h \\1112 $(wildcard include/config/generic/find/first/bit.h) \\1113 include/asm-generic/bitops/sched.h \\1114 arch/x86/include/asm/arch_hweight.h \\1115 arch/x86/include/asm/cpufeatures.h \\1116 arch/x86/include/asm/required-features.h \\1117 $(wildcard include/config/x86/minimum/cpu/family.h) \\1118 $(wildcard include/config/math/emulation.h) \\1119 $(wildcard include/config/x86/pae.h) \\1120 $(wildcard include/config/x86/use/3dnow.h) \\1121 $(wildcard include/config/matom.h) \\1122 $(wildcard include/config/paravirt.h) \\1123 arch/x86/include/asm/disabled-features.h \\1124 $(wildcard include/config/x86/smap.h) \\1125 $(wildcard include/config/x86/umip.h) \\1126 $(wildcard include/config/x86/intel/memory/protection/keys.h) \\1127 $(wildcard include/config/x86/5level.h) \\1128 $(wildcard include/config/page/table/isolation.h) \\1129 include/asm-generic/bitops/const_hweight.h \\1130 include/asm-generic/bitops/instrumented-atomic.h \\1131 include/linux/instrumented.h \\1132 include/asm-generic/bitops/instrumented-non-atomic.h \\1133 include/asm-generic/bitops/instrumented-lock.h \\1134 include/asm-generic/bitops/le.h \\1135 include/asm-generic/bitops/ext2-atomic-setbit.h \\1136 include/linux/log2.h \\1137 $(wildcard include/config/arch/has/ilog2/u32.h) \\1138 $(wildcard include/config/arch/has/ilog2/u64.h) \\1139 include/linux/typecheck.h \\1140 include/linux/printk.h \\1141 $(wildcard include/config/message/loglevel/default.h) \\1142 $(wildcard include/config/console/loglevel/default.h) \\1143 $(wildcard include/config/console/loglevel/quiet.h) \\1144 $(wildcard include/config/early/printk.h) \\1145 $(wildcard include/config/printk/nmi.h) \\1146 include/linux/init.h \\1147 $(wildcard include/config/strict/kernel/rwx.h) \\1148 $(wildcard include/config/strict/module/rwx.h) \\1149 include/linux/kern_levels.h \\1150 include/linux/cache.h \\1151 $(wildcard include/config/arch/has/cache/line/size.h) \\1152 include/uapi/linux/kernel.h \\1153 include/uapi/linux/sysinfo.h \\1154 arch/x86/include/asm/cache.h \\1155 $(wildcard include/config/x86/l1/cache/shift.h) \\1156 $(wildcard include/config/x86/internode/cache/shift.h) \\1157 $(wildcard include/config/x86/vsmp.h) \\1158 include/linux/dynamic_debug.h \\1159 $(wildcard include/config/jump/label.h) \\1160 include/linux/jump_label.h \\1161 $(wildcard include/config/have/arch/jump/label/relative.h) \\1162 arch/x86/include/asm/jump_label.h \\1163 arch/x86/include/asm/div64.h \\1164 include/asm-generic/div64.h \\1165 include/asm-generic/percpu.h \\1166 $(wildcard include/config/have/setup/per/cpu/area.h) \\1167 include/linux/threads.h \\1168 $(wildcard include/config/base/small.h) \\1169 include/linux/percpu-defs.h \\1170 $(wildcard include/config/debug/force/weak/per/cpu.h) \\1171 $(wildcard include/config/amd/mem/encrypt.h) \\1172 include/linux/pid.h \\1173 include/linux/rculist.h \\1174 $(wildcard include/config/prove/rcu/list.h) \\1175 include/linux/list.h \\1176 $(wildcard include/config/debug/list.h) \\1177 include/linux/poison.h \\1178 $(wildcard include/config/illegal/pointer/value.h) \\1179 $(wildcard include/config/page/poisoning/zero.h) \\1180 include/linux/rcupdate.h \\1181 $(wildcard include/config/rcu/stall/common.h) \\1182 $(wildcard include/config/rcu/nocb/cpu.h) \\1183 $(wildcard include/config/tasks/rcu/generic.h) \\1184 $(wildcard include/config/tasks/rcu/trace.h) \\1185 $(wildcard include/config/tasks/rude/rcu.h) \\1186 $(wildcard include/config/tree/rcu.h) \\1187 $(wildcard include/config/tiny/rcu.h) \\1188 $(wildcard include/config/debug/objects/rcu/head.h) \\1189 $(wildcard include/config/hotplug/cpu.h) \\1190 $(wildcard include/config/prove/rcu.h) \\1191 $(wildcard include/config/rcu/boost.h) \\1192 $(wildcard include/config/arch/weak/release/acquire.h) \\1193 include/linux/atomic.h \\1194 arch/x86/include/asm/atomic.h \\1195 arch/x86/include/asm/cmpxchg.h \\1196 arch/x86/include/asm/cmpxchg_64.h \\1197 arch/x86/include/asm/atomic64_64.h \\1198 include/linux/atomic-arch-fallback.h \\1199 $(wildcard include/config/generic/atomic64.h) \\1200 include/asm-generic/atomic-instrumented.h \\