<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>i.MX Processors中的主题 IPU direct display bitmap BMP</title>
    <link>https://community.nxp.com/t5/i-MX-Processors/IPU-direct-display-bitmap-BMP/m-p/167311#M4804</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I hope imx-lib the IPU direct display bitmap BMP, in accordance with the following code, the resultsSegmegtation fault.I estimate the parameters fill in error, may I ask how to fill it?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;int read_bmp_file(char* filename, unsigned char * const buffer, unsigned char** data, int* width, int* height, int* depth) &lt;BR /&gt; { &lt;BR /&gt; FILE* fd; &lt;BR /&gt; int rt; &lt;BR /&gt; int channel; &lt;BR /&gt;unsigned char* bits;&lt;/P&gt;&lt;P&gt;BITMAPFILEHEADER bmfh; &lt;BR /&gt; BITMAPINFOHEADER bmih; &lt;BR /&gt; fd = fopen(filename, "rb"); &lt;BR /&gt; if(fd == NULL) { &lt;BR /&gt; printf("NO such file %s. ", filename); &lt;BR /&gt; return -1; &lt;BR /&gt; } &lt;BR /&gt; rt = fread(buffer, 1, 10*1024*1024, fd);&lt;BR /&gt; printf("read image -&amp;gt;%d. ", rt); &lt;BR /&gt; fclose(fd); &lt;BR /&gt; printf("sizeof(bmfh)-&amp;gt;%d. ", sizeof(bmfh)); &lt;BR /&gt; printf("sizeof(bmih)-&amp;gt;%d. ", sizeof(bmih)); &lt;BR /&gt; memcpy(&amp;amp;bmfh, buffer, sizeof(bmfh)); &lt;BR /&gt; memcpy(&amp;amp;bmih, buffer + sizeof(bmfh), sizeof(bmih)); &lt;BR /&gt; if(bmfh.bfType != 19778) { &lt;BR /&gt; return -1; &lt;BR /&gt; } &lt;BR /&gt; bits = (unsigned char*) (buffer+bmfh.bfOffBits); &lt;BR /&gt; channel = bmih.biBitCount/8; &lt;BR /&gt; *depth = bmih.biBitCount; &lt;BR /&gt; *width = bmih.biWidth; &lt;BR /&gt; *height = bmih.biHeight; &lt;BR /&gt; *data = bits; &lt;BR /&gt; printf(" size(%dx%d) channel:%d --- ", *width, *height, channel); &lt;BR /&gt; return 0; &lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;int main(int argc, char *argv[])&lt;BR /&gt; {&lt;BR /&gt; int ret, test, i;&lt;BR /&gt; unsigned char *ptr;&lt;BR /&gt; ipu_lib_handle_t handle;&lt;BR /&gt; ipu_lib_input_param_t input;&lt;BR /&gt; ipu_lib_output_param_t output;&lt;BR /&gt;unsigned int w = 1440, h = 900;&lt;/P&gt;&lt;P&gt;char filename[256] = "\0"; &lt;BR /&gt; unsigned char* data; &lt;BR /&gt; unsigned char* buffer; &lt;BR /&gt;int width, height, depth;&lt;/P&gt;&lt;P&gt;printf("IPU Test\n" );&lt;/P&gt;&lt;P&gt;strcpy(filename, "24.bmp"); &lt;BR /&gt; buffer = (unsigned char*) malloc(10*1024*1024); &lt;BR /&gt; if(buffer == NULL) { &lt;BR /&gt; printf("malloc buuf fail\n");&lt;BR /&gt; return -1; &lt;BR /&gt; } &lt;BR /&gt; data = NULL; &lt;BR /&gt; read_bmp_file(filename, buffer, &amp;amp;data, &amp;amp;width, &amp;amp;height, &amp;amp;depth); &lt;BR /&gt; if(data == NULL) { &lt;BR /&gt; free(buffer); &lt;BR /&gt; return -1; &lt;BR /&gt; } &lt;BR /&gt;printf("Need DisPlay int date：width:%d,height:%d,depth:%d\n",width,height,depth);&lt;/P&gt;&lt;P&gt;memset(&amp;amp;input, 0x00, sizeof(input));&lt;BR /&gt; input.width = w;&lt;BR /&gt; input.height = h;&lt;BR /&gt; input.fmt = v4l2_fourcc('B', 'G', 'R', '3');&lt;BR /&gt; input.motion_sel = HIGH_MOTION;&lt;BR /&gt; input.input_crop_win.pos.x = 0;&lt;BR /&gt; input.input_crop_win.pos.y = 0;&lt;BR /&gt; input.input_crop_win.win_w = w;&lt;BR /&gt; input.input_crop_win.win_h = h;&lt;BR /&gt;input.user_def_paddr[0] = data;// NULL means that a buffer will be allocated&lt;/P&gt;&lt;P&gt;memset(&amp;amp;output, 0x00, sizeof(output));&lt;BR /&gt; output.width = w;&lt;BR /&gt; output.height = h;&lt;BR /&gt; output.fmt = v4l2_fourcc('B', 'G', 'R', '3');// IPU_PIX_FMT_RGB24;&lt;BR /&gt; output.rot = IPU_ROTATE_NONE;&lt;BR /&gt; output.show_to_fb = 1;&lt;BR /&gt; output.fb_disp.pos.x = 0;&lt;BR /&gt; output.fb_disp.pos.y = 0;&lt;BR /&gt; output.fb_disp.fb_num = 0;&lt;BR /&gt; output.output_win.pos.x = 0;&lt;BR /&gt; output.output_win.pos.y = 0;&lt;BR /&gt; output.output_win.win_w = w;&lt;BR /&gt; output.output_win.win_h = h;&lt;BR /&gt;output.user_def_paddr[0] = NULL;// NULL means that a buffer will be allocated&lt;/P&gt;&lt;P&gt;memset(&amp;amp;handle, 0x00, sizeof(handle));&lt;/P&gt;&lt;P&gt;ret = mxc_ipu_lib_task_init(&amp;amp;input, NULL, &amp;amp;output, OP_NORMAL_MODE,&amp;amp;handle);&lt;/P&gt;&lt;P&gt;printf("mxc_ipu_lib_task_init ret:%d"&lt;BR /&gt; " inbuf_start: 0x%X outbuf_start: 0x%X\n"&lt;BR /&gt; " ifr_size: %d ofr_size: %d\n",&lt;BR /&gt; ret,&lt;BR /&gt; (unsigned int)handle.inbuf_start[0], (unsigned int)handle.outbuf_start[0],&lt;BR /&gt;handle.ifr_size, handle.ofr_size);&lt;/P&gt;&lt;P&gt;if (ret == 0) // zero means the init worked&lt;BR /&gt; {&lt;BR /&gt; printf("DOING IPU TASK\n");&lt;BR /&gt; ret = mxc_ipu_lib_task_buf_update(&amp;amp;handle, NULL, 0, 0, NULL, NULL);&lt;BR /&gt; //ret = mxc_ipu_lib_task_buf_update(&amp;amp;handle, f-&amp;gt;fb()-&amp;gt;YCrCb.physical_base(),0,0, NULL, NULL);&lt;BR /&gt;printf("mxc_ipu_lib_task_buf_update returned:%d\n", ret);&lt;/P&gt;&lt;P&gt;// now print some outbuf contents after the task&lt;BR /&gt; ptr = (unsigned char *)handle.outbuf_start[0];&lt;BR /&gt; if (*ptr)// check for any non-zero value in output&lt;BR /&gt; printf("************* IPU DID CONVERT *************\n");// very rarely prints this!&lt;BR /&gt; printf("outbuf after: ");&lt;BR /&gt; for (i = 0; i &amp;lt; 10; i++, ptr++)printf("%02X ", *ptr);&lt;BR /&gt;printf("\n");&lt;/P&gt;&lt;P&gt;}&lt;BR /&gt; else&lt;BR /&gt; {&lt;BR /&gt; printf("mxc_ipu_lib_task_init FAILED:%d\n", ret);&lt;BR /&gt; return(0);&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;mxc_ipu_lib_task_uninit(&amp;amp;handle);&lt;BR /&gt; free(buffer); &lt;BR /&gt;return 0;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A _jive_internal="true" href="https://community.nxp.com/discussions/141-dbmp.c" target="_self"&gt;dbmp.c&lt;/A&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 08 Jun 2012 09:57:00 GMT</pubDate>
    <dc:creator>cachegxp</dc:creator>
    <dc:date>2012-06-08T09:57:00Z</dc:date>
    <item>
      <title>IPU direct display bitmap BMP</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/IPU-direct-display-bitmap-BMP/m-p/167311#M4804</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I hope imx-lib the IPU direct display bitmap BMP, in accordance with the following code, the resultsSegmegtation fault.I estimate the parameters fill in error, may I ask how to fill it?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;int read_bmp_file(char* filename, unsigned char * const buffer, unsigned char** data, int* width, int* height, int* depth) &lt;BR /&gt; { &lt;BR /&gt; FILE* fd; &lt;BR /&gt; int rt; &lt;BR /&gt; int channel; &lt;BR /&gt;unsigned char* bits;&lt;/P&gt;&lt;P&gt;BITMAPFILEHEADER bmfh; &lt;BR /&gt; BITMAPINFOHEADER bmih; &lt;BR /&gt; fd = fopen(filename, "rb"); &lt;BR /&gt; if(fd == NULL) { &lt;BR /&gt; printf("NO such file %s. ", filename); &lt;BR /&gt; return -1; &lt;BR /&gt; } &lt;BR /&gt; rt = fread(buffer, 1, 10*1024*1024, fd);&lt;BR /&gt; printf("read image -&amp;gt;%d. ", rt); &lt;BR /&gt; fclose(fd); &lt;BR /&gt; printf("sizeof(bmfh)-&amp;gt;%d. ", sizeof(bmfh)); &lt;BR /&gt; printf("sizeof(bmih)-&amp;gt;%d. ", sizeof(bmih)); &lt;BR /&gt; memcpy(&amp;amp;bmfh, buffer, sizeof(bmfh)); &lt;BR /&gt; memcpy(&amp;amp;bmih, buffer + sizeof(bmfh), sizeof(bmih)); &lt;BR /&gt; if(bmfh.bfType != 19778) { &lt;BR /&gt; return -1; &lt;BR /&gt; } &lt;BR /&gt; bits = (unsigned char*) (buffer+bmfh.bfOffBits); &lt;BR /&gt; channel = bmih.biBitCount/8; &lt;BR /&gt; *depth = bmih.biBitCount; &lt;BR /&gt; *width = bmih.biWidth; &lt;BR /&gt; *height = bmih.biHeight; &lt;BR /&gt; *data = bits; &lt;BR /&gt; printf(" size(%dx%d) channel:%d --- ", *width, *height, channel); &lt;BR /&gt; return 0; &lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;int main(int argc, char *argv[])&lt;BR /&gt; {&lt;BR /&gt; int ret, test, i;&lt;BR /&gt; unsigned char *ptr;&lt;BR /&gt; ipu_lib_handle_t handle;&lt;BR /&gt; ipu_lib_input_param_t input;&lt;BR /&gt; ipu_lib_output_param_t output;&lt;BR /&gt;unsigned int w = 1440, h = 900;&lt;/P&gt;&lt;P&gt;char filename[256] = "\0"; &lt;BR /&gt; unsigned char* data; &lt;BR /&gt; unsigned char* buffer; &lt;BR /&gt;int width, height, depth;&lt;/P&gt;&lt;P&gt;printf("IPU Test\n" );&lt;/P&gt;&lt;P&gt;strcpy(filename, "24.bmp"); &lt;BR /&gt; buffer = (unsigned char*) malloc(10*1024*1024); &lt;BR /&gt; if(buffer == NULL) { &lt;BR /&gt; printf("malloc buuf fail\n");&lt;BR /&gt; return -1; &lt;BR /&gt; } &lt;BR /&gt; data = NULL; &lt;BR /&gt; read_bmp_file(filename, buffer, &amp;amp;data, &amp;amp;width, &amp;amp;height, &amp;amp;depth); &lt;BR /&gt; if(data == NULL) { &lt;BR /&gt; free(buffer); &lt;BR /&gt; return -1; &lt;BR /&gt; } &lt;BR /&gt;printf("Need DisPlay int date：width:%d,height:%d,depth:%d\n",width,height,depth);&lt;/P&gt;&lt;P&gt;memset(&amp;amp;input, 0x00, sizeof(input));&lt;BR /&gt; input.width = w;&lt;BR /&gt; input.height = h;&lt;BR /&gt; input.fmt = v4l2_fourcc('B', 'G', 'R', '3');&lt;BR /&gt; input.motion_sel = HIGH_MOTION;&lt;BR /&gt; input.input_crop_win.pos.x = 0;&lt;BR /&gt; input.input_crop_win.pos.y = 0;&lt;BR /&gt; input.input_crop_win.win_w = w;&lt;BR /&gt; input.input_crop_win.win_h = h;&lt;BR /&gt;input.user_def_paddr[0] = data;// NULL means that a buffer will be allocated&lt;/P&gt;&lt;P&gt;memset(&amp;amp;output, 0x00, sizeof(output));&lt;BR /&gt; output.width = w;&lt;BR /&gt; output.height = h;&lt;BR /&gt; output.fmt = v4l2_fourcc('B', 'G', 'R', '3');// IPU_PIX_FMT_RGB24;&lt;BR /&gt; output.rot = IPU_ROTATE_NONE;&lt;BR /&gt; output.show_to_fb = 1;&lt;BR /&gt; output.fb_disp.pos.x = 0;&lt;BR /&gt; output.fb_disp.pos.y = 0;&lt;BR /&gt; output.fb_disp.fb_num = 0;&lt;BR /&gt; output.output_win.pos.x = 0;&lt;BR /&gt; output.output_win.pos.y = 0;&lt;BR /&gt; output.output_win.win_w = w;&lt;BR /&gt; output.output_win.win_h = h;&lt;BR /&gt;output.user_def_paddr[0] = NULL;// NULL means that a buffer will be allocated&lt;/P&gt;&lt;P&gt;memset(&amp;amp;handle, 0x00, sizeof(handle));&lt;/P&gt;&lt;P&gt;ret = mxc_ipu_lib_task_init(&amp;amp;input, NULL, &amp;amp;output, OP_NORMAL_MODE,&amp;amp;handle);&lt;/P&gt;&lt;P&gt;printf("mxc_ipu_lib_task_init ret:%d"&lt;BR /&gt; " inbuf_start: 0x%X outbuf_start: 0x%X\n"&lt;BR /&gt; " ifr_size: %d ofr_size: %d\n",&lt;BR /&gt; ret,&lt;BR /&gt; (unsigned int)handle.inbuf_start[0], (unsigned int)handle.outbuf_start[0],&lt;BR /&gt;handle.ifr_size, handle.ofr_size);&lt;/P&gt;&lt;P&gt;if (ret == 0) // zero means the init worked&lt;BR /&gt; {&lt;BR /&gt; printf("DOING IPU TASK\n");&lt;BR /&gt; ret = mxc_ipu_lib_task_buf_update(&amp;amp;handle, NULL, 0, 0, NULL, NULL);&lt;BR /&gt; //ret = mxc_ipu_lib_task_buf_update(&amp;amp;handle, f-&amp;gt;fb()-&amp;gt;YCrCb.physical_base(),0,0, NULL, NULL);&lt;BR /&gt;printf("mxc_ipu_lib_task_buf_update returned:%d\n", ret);&lt;/P&gt;&lt;P&gt;// now print some outbuf contents after the task&lt;BR /&gt; ptr = (unsigned char *)handle.outbuf_start[0];&lt;BR /&gt; if (*ptr)// check for any non-zero value in output&lt;BR /&gt; printf("************* IPU DID CONVERT *************\n");// very rarely prints this!&lt;BR /&gt; printf("outbuf after: ");&lt;BR /&gt; for (i = 0; i &amp;lt; 10; i++, ptr++)printf("%02X ", *ptr);&lt;BR /&gt;printf("\n");&lt;/P&gt;&lt;P&gt;}&lt;BR /&gt; else&lt;BR /&gt; {&lt;BR /&gt; printf("mxc_ipu_lib_task_init FAILED:%d\n", ret);&lt;BR /&gt; return(0);&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;mxc_ipu_lib_task_uninit(&amp;amp;handle);&lt;BR /&gt; free(buffer); &lt;BR /&gt;return 0;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A _jive_internal="true" href="https://community.nxp.com/discussions/141-dbmp.c" target="_self"&gt;dbmp.c&lt;/A&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 08 Jun 2012 09:57:00 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/IPU-direct-display-bitmap-BMP/m-p/167311#M4804</guid>
      <dc:creator>cachegxp</dc:creator>
      <dc:date>2012-06-08T09:57:00Z</dc:date>
    </item>
    <item>
      <title>Re: IPU direct display bitmap BMP</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/IPU-direct-display-bitmap-BMP/m-p/167312#M4805</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;In ipu unit test code, there is a similar test case "Copy test", maybe you can reference to it. (imx-test-11.09.01\test\mxc_ipudev_test\test_pattern.c)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;int copy_test(ipu_test_handle_t * test_handle)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;int ret = 0, fd_fb = 0, screen_size;&lt;BR /&gt;&amp;nbsp;struct fb_var_screeninfo fb_var;&lt;BR /&gt;&amp;nbsp;struct fb_fix_screeninfo fb_fix;&lt;BR /&gt;&amp;nbsp;void * fake_fb[1];&lt;BR /&gt;&amp;nbsp;int fake_fb_paddr[1], done_cnt = 0;&lt;/P&gt;&lt;P&gt;&amp;nbsp;if ((fd_fb = open("/dev/fb0", O_RDWR, 0)) &amp;lt; 0) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;printf("Unable to open /dev/fb0\n");&lt;BR /&gt;&amp;nbsp;&amp;nbsp;ret = -1;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;goto done;&lt;BR /&gt;&amp;nbsp;}&lt;/P&gt;&lt;P&gt;&amp;nbsp;if ( ioctl(fd_fb, FBIOGET_VSCREENINFO, &amp;amp;fb_var) &amp;lt; 0) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;printf("Get FB var info failed!\n");&lt;BR /&gt;&amp;nbsp;&amp;nbsp;ret = -1;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;goto done;&lt;BR /&gt;&amp;nbsp;}&lt;BR /&gt;&amp;nbsp;if ( ioctl(fd_fb, FBIOGET_FSCREENINFO, &amp;amp;fb_fix) &amp;lt; 0) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;printf("Get FB fix info failed!\n");&lt;BR /&gt;&amp;nbsp;&amp;nbsp;ret = -1;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;goto done;&lt;BR /&gt;&amp;nbsp;}&lt;BR /&gt;&amp;nbsp;screen_size = fb_var.yres * fb_fix.line_length;&lt;BR /&gt;&amp;nbsp;ret = dma_memory_alloc(screen_size, 1, fake_fb_paddr, fake_fb);&lt;BR /&gt;&amp;nbsp;if ( ret &amp;lt; 0) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;printf("dma_memory_alloc failed\n");&lt;BR /&gt;&amp;nbsp;&amp;nbsp;goto done;&lt;BR /&gt;&amp;nbsp;}&lt;/P&gt;&lt;P&gt;&amp;nbsp;test_handle-&amp;gt;mode = OP_NORMAL_MODE | TASK_PP_MODE;&lt;BR /&gt;&amp;nbsp;test_handle-&amp;gt;fcount = 10;&lt;BR /&gt;&amp;nbsp;test_handle-&amp;gt;input.width = fb_var.xres;&lt;BR /&gt;&amp;nbsp;test_handle-&amp;gt;input.height = fb_var.yres;&lt;BR /&gt;&amp;nbsp;test_handle-&amp;gt;output.width = fb_var.xres;&lt;BR /&gt;&amp;nbsp;test_handle-&amp;gt;output.height = fb_var.yres;&lt;BR /&gt;&amp;nbsp;if (fb_var.bits_per_pixel == 24) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;test_handle-&amp;gt;output.fmt = v4l2_fourcc('B', 'G', 'R', '3');&lt;BR /&gt;&amp;nbsp;&amp;nbsp;test_handle-&amp;gt;input.fmt = v4l2_fourcc('B', 'G', 'R', '3');&lt;BR /&gt;&amp;nbsp;} else {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;test_handle-&amp;gt;output.fmt = v4l2_fourcc('R', 'G', 'B', 'P');&lt;BR /&gt;&amp;nbsp;&amp;nbsp;test_handle-&amp;gt;input.fmt = v4l2_fourcc('R', 'G', 'B', 'P');&lt;BR /&gt;&amp;nbsp;}&lt;BR /&gt;&amp;nbsp;test_handle-&amp;gt;input.user_def_paddr[0] = fake_fb_paddr[0];&lt;BR /&gt;&amp;nbsp;test_handle-&amp;gt;output.user_def_paddr[0] = fb_fix.smem_start;&lt;/P&gt;&lt;P&gt;&amp;nbsp;ret = mxc_ipu_lib_task_init(&amp;amp;(test_handle-&amp;gt;input), NULL, &amp;amp;(test_handle-&amp;gt;output),&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;test_handle-&amp;gt;mode, test_handle-&amp;gt;ipu_handle);&lt;BR /&gt;&amp;nbsp;if (ret &amp;lt; 0) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;printf("mxc_ipu_lib_task_init failed!\n");&lt;BR /&gt;&amp;nbsp;&amp;nbsp;goto err;&lt;BR /&gt;&amp;nbsp;}&lt;/P&gt;&lt;P&gt;&amp;nbsp;while((done_cnt &amp;lt; test_handle-&amp;gt;fcount) &amp;amp;&amp;amp; (ctrl_c_rev == 0)) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;static int j = 0;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;if ((j % 3) == 0)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;memset(fake_fb[0], 0, screen_size);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;if ((j % 3) == 1)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;memset(fake_fb[0], 0x80, screen_size);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;if ((j % 3) == 2)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;memset(fake_fb[0], 0xff, screen_size);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;j++;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;if (mxc_ipu_lib_task_buf_update(test_handle-&amp;gt;ipu_handle, 0, 0, 0, NULL, NULL) &amp;lt; 0)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;break;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;done_cnt++;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;sleep(1);&lt;BR /&gt;&amp;nbsp;}&lt;/P&gt;&lt;P&gt;&amp;nbsp;mxc_ipu_lib_task_uninit(test_handle-&amp;gt;ipu_handle);&lt;/P&gt;&lt;P&gt;err:&lt;BR /&gt;&amp;nbsp;dma_memory_free(screen_size, 1, fake_fb_paddr, fake_fb);&lt;BR /&gt;done:&lt;BR /&gt;&amp;nbsp;return ret;&lt;BR /&gt;}&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 26 Jun 2012 06:01:44 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/IPU-direct-display-bitmap-BMP/m-p/167312#M4805</guid>
      <dc:creator>qiang_li-mpu_se</dc:creator>
      <dc:date>2012-06-26T06:01:44Z</dc:date>
    </item>
  </channel>
</rss>

