📄 blndma.c
字号:
*P_BLNDMA_DBASE_ADDR=dest_base_addr; *P_BLNDMA_DOFFSET_XY=(dest_offset_y<<16)+dest_offset_x; *P_BLNDMA_D_BG=(dest_bg_heigh<<8)+dest_bg_width; *P_BLNDMA_WIDTH_HEIGH=(trans_heigh<<16)+trans_width; *P_BLNDMA_CONTROL_2=(color_mode<<8)+alpha; *P_BLNDMA_ADDR_MODE=(*P_BLNDMA_ADDR_MODE|0x00010100); if (mode==0) { *P_BLNDMA_IRQ_CONTROL=0x00000000; *P_BLNDMA_CONTROL_1=0x01000004; // while (*P_BLNDMA_IRQ_CONTROL==0x00000100)
// {
// print1("BLNDMA Busy\n");
// }
} if (mode==1) { *P_BLNDMA_IRQ_CONTROL=0x00010000; *P_BLNDMA_CONTROL_1=0x01000004; } }*//************************************************************************** * * * Function Name: BlnDmaStart_linear2linear_Blend * * * * Purposes: * * * * Descriptions: * * * * Arguments: * * srca_addr : source A address (28 bits) * * srcb_addr : source B address (28 bits) * * dest_addr : destination address (28 bits) * * trans_width : transfer width, maximum = 2048 * * trans_heigh : transfer heigh, maximum = 2048 * * blend_mode : (0:+, 1:-) * * blend_a_factor: (6 bits) * * blend_b_factor: (6 bits) * * color_mode : (0:rgb-565, 1:argb-1555) * * alpha : (1 bit) * * transparent_mode : (0:disable, 1:enable) * * color_key : (16 bits) * * mode : (0:polling mode, 1:interrupt mode) * * * * Returns: * * * * See also: * * * **************************************************************************//* void BlnDmaStart_linear2linear_Blend( U32 srca_addr, U32 srcb_addr, U32 dest_addr, U32 trans_width, U32 trans_heigh, U8 blend_mode, U8 blend_a_factor, U8 blend_b_factor, U8 color_mode, U8 alpha, U8 transparent_mode, U32 color_key, U8 mode ) { *P_BLNDMA_SRCA_ADDR=srca_addr; *P_BLNDMA_SRCB_ADDR=srcb_addr; *P_BLNDMA_DEST_ADDR=dest_addr; *P_BLNDMA_WIDTH_HEIGH=(trans_heigh<<16)+trans_width; *P_BLNDMA_BLEND_FACTOR=(blend_b_factor<<8)+blend_a_factor; *P_BLNDMA_CONTROL_2=(color_mode<<8)+alpha; *P_BLNDMA_TRANSPARENT=color_key; *P_BLNDMA_ADDR_MODE=(*P_BLNDMA_ADDR_MODE&0xfffefefe); if (mode==0) { *P_BLNDMA_IRQ_CONTROL=0x00000000; *P_BLNDMA_CONTROL_1=(transparent_mode<<16)+(blend_mode<<8)+0x01000002; while (*P_BLNDMA_IRQ_CONTROL==0x00000100) {// print1("BLNDMA Busy\n"); } } if (mode==1) { *P_BLNDMA_IRQ_CONTROL=0x00010000; *P_BLNDMA_CONTROL_1=(transparent_mode<<16)+(blend_mode<<8)+0x01000002; } }*//************************************************************************** * * * Function Name: BlnDmaStart_linear2block_Blend * * * * Purposes: * * * * Descriptions: * * * * Arguments: * * srca_addr : source A address (28 bits) * * srcb_addr : source B address (28 bits) * * dest_base_addr : destination base address (28 bits) * * dest_offset_x : (11 bits), maximum = 2048 * * dest_offset_y : (11 bits), maximum = 2048 * * dest_bg_width : (3 bits) * * 0 : 256 * * 1 : 320 * * 2 : 512 * * 3 : 640 * * 4 : 1024 * * 5 : 2048 * * 6,7 : reserved * * dest_bg_heigh : (3 bits) * * 0 : 240 * * 1 : 256 * * 2 : 480 * * 3 : 512 * * 4 : 1024 * * 5 : 2048 * * 6,7 : reserved * * trans_width : transfer width, maximum = 2048 * * trans_heigh : transfer heigh, maximum = 2048 * * blend_mode : (0:+, 1:-) * * blend_a_factor: (6 bits) * * blend_b_factor: (6 bits) * * color_mode : (0:rgb-565, 1:argb-1555) * * alpha : (1 bit) * * transparent_mode : (0:disable, 1:enable) * * color_key : (16 bits) * * mode : (0:polling mode, 1:interrupt mode) * * * * Returns: * * * * See also: * * * **************************************************************************//* void BlnDmaStart_linear2block_Blend( U32 srca_addr, U32 srcb_addr, U32 dest_base_addr, U32 dest_offset_x, U32 dest_offset_y, U8 dest_bg_width, U8 dest_bg_heigh, U32 trans_width, U32 trans_heigh, U8 blend_mode, U8 blend_a_factor, U8 blend_b_factor, U8 color_mode, U8 alpha, U8 transparent_mode, U32 color_key, U8 mode ) { *P_BLNDMA_SRCA_ADDR=srca_addr; *P_BLNDMA_SRCB_ADDR=srcb_addr; *P_BLNDMA_DBASE_ADDR=dest_base_addr; *P_BLNDMA_DOFFSET_XY=(dest_offset_y<<16)+dest_offset_x; *P_BLNDMA_D_BG=(dest_bg_heigh<<8)+dest_bg_width; *P_BLNDMA_WIDTH_HEIGH=(trans_heigh<<16)+trans_width; *P_BLNDMA_BLEND_FACTOR=(blend_b_factor<<8)+blend_a_factor; *P_BLNDMA_CONTROL_2=(color_mode<<8)+alpha; *P_BLNDMA_TRANSPARENT=color_key; *P_BLNDMA_ADDR_MODE=((*P_BLNDMA_ADDR_MODE|0x00010000)&0xfffffefe); if (mode==0) { *P_BLNDMA_IRQ_CONTROL=0x00000000; *P_BLNDMA_CONTROL_1=(transparent_mode<<16)+(blend_mode<<8)+0x01000002; // while (*P_BLNDMA_IRQ_CONTROL==0x00000100)
// {
// print1("BLNDMA Busy\n");
// }
} if (mode==1) { *P_BLNDMA_IRQ_CONTROL=0x00010000; *P_BLNDMA_CONTROL_1=(transparent_mode<<16)+(blend_mode<<8)+0x01000002; } }*//************************************************************************** * * * Function Name: BlnDmaStart_block2linear_Blend * * * * Purposes: * * * * Descriptions: * * * * Arguments: * * srca_base_addr: source A base address (28 bits) * * srca_offset_x : (11 bits), maximum = 2048 * * srca_offset_y : (11 bits), maximum = 2048 * * srcb_base_addr: source B base address (28 bits) * * srcb_offset_x : (11 bits), maximum = 2048 * * srcb_offset_y : (11 bits), maximum = 2048 * * dest_addr : destination address (28 bits) * * srca_bg_width/srcb_bg_width : (3 bits) * * 0 : 256 * * 1 : 320 * * 2 : 512 * * 3 : 640 * * 4 : 1024 * * 5 : 2048 * * 6,7 : reserved * * srca_bg_heigh/srcb_bg_heigh : (3 bits) * * 0 : 240 * * 1 : 256 * * 2 : 480 * * 3 : 512 * * 4 : 1024 * * 5 : 2048 * * 6,7 : reserved * * trans_width : transfer width, maximum = 2048 * * trans_heigh : transfer heigh, maximum = 2048 * * blend_mode : (0:+, 1:-) * * blend_a_factor: (6 bits) * * blend_b_factor: (6 bits) * * color_mode : (0:rgb-565, 1:argb-1555) * * alpha : (1 bit) * * transparent_mode : (0:disable, 1:enable) * * color_key : (16 bits) * * mode : (0:polling mode, 1:interrupt mode) * * * * Returns: * * * * See also: * * * **************************************************************************//*void BlnDmaStart_block2linear_Blend( U32 srca_base_addr, U32 srca_offset_x, U32 srca_offset_y, U8 srca_bg_width, U8 srca_bg_heigh, U32 srcb_base_addr, U32 srcb_offset_x, U32 srcb_offset_y, U8 srcb_bg_width, U8 srcb_bg_heigh, U32 dest_addr, U32 trans_width, U32 trans_heigh, U8 blend_mode, U8 blend_a_factor, U8 blend_b_factor, U8 color_mode, U8 alpha, U8 transparent_mode, U32 color_key, U8 mode ) { *P_BLNDMA_ABASE_ADDR=srca_base_addr; *P_BLNDMA_AOFFSET_XY=(srca_offset_y<<16)+srca_offset_x; *P_BLNDMA_A_BG=(srca_bg_heigh<<8)+srca_bg_width; *P_BLNDMA_BBASE_ADDR=srcb_base_addr; *P_BLNDMA_BOFFSET_XY=(srcb_offset_y<<16)+srcb_offset_x; *P_BLNDMA_B_BG=(srcb_bg_heigh<<8)+srcb_bg_width; *P_BLNDMA_DEST_ADDR=dest_addr; *P_BLNDMA_WIDTH_HEIGH=(trans_heigh<<16)+trans_width; *P_BLNDMA_BLEND_FACTOR=(blend_b_factor<<8)+blend_a_factor; *P_BLNDMA_CONTROL_2=(color_mode<<8)+alpha; *P_BLNDMA_TRANSPARENT=color_key; *P_BLNDMA_ADDR_MODE=((*P_BLNDMA_ADDR_MODE|0x00000101)&0xfffeffff); if (mode==0) { *P_BLNDMA_IRQ_CONTROL=0x00000000; *P_BLNDMA_CONTROL_1=(transparent_mode<<16)+(blend_mode<<8)+0x01000002; // while (*P_BLNDMA_IRQ_CONTROL==0x00000100)
// {
// print1("BLNDMA Busy\n");
// }
} if (mode==1) { *P_BLNDMA_IRQ_CONTROL=0x00010000; *P_BLNDMA_CONTROL_1=(transparent_mode<<16)+(blend_mode<<8)+0x01000002; } }*//************************************************************************** * * * Function Name: BlnDmaStart_block2block_Blend * * * * Purposes: * * * * Descriptions: * * * * Arguments: * * srca_base_addr: source A base address (28 bits) * * srca_offset_x : (11 bits), maximum = 2048 * * srca_offset_y : (11 bits), maximum = 2048 * * srcb_base_addr: source B base address (28 bits) * * srcb_offset_x : (11 bits), maximum = 2048 * * srcb_offset_y : (11 bits), maximum = 2048 * * dest_base_addr: destination base address (28 bits) * * dest_offset_x : (11 bits), maximum = 2048 * * dest_offset_y : (11 bits), maximum = 2048 * * srca_bg_width/srcb_bg_width/dest_bg_width : (3 bits) * * 0 : 256 * * 1 : 320 * * 2 : 512 * * 3 : 640 * * 4 : 1024 * * 5 : 2048 * * 6,7 : reserved * * srca_bg_heigh/srcb_bg_heigh/dest_bg_heigh : (3 bits) * * 0 : 240 * * 1 : 256 * * 2 : 480 * * 3 : 512 * * 4 : 1024 * * 5 : 2048 * * 6,7 : reserved * * trans_width : transfer width, maximum = 2048 * * trans_heigh : transfer heigh, maximum = 2048 * * blend_mode : (0:+, 1:-) * * blend_a_factor: (6 bits) * * blend_b_factor: (6 bits) * * color_mode : (0:rgb-565, 1:argb-1555) * * alpha : (1 bit) * * transparent_mode : (0:disable, 1:enable) * * color_key : (16 bits) * * mode : (0:polling mode, 1:interrupt mode) * * * * Returns: * * * * See also: * * * **************************************************************************//*void BlnDmaStart_block2block_Blend( U32 srca_base_addr, U32 srca_offset_x, U32 srca_offset_y, U8 srca_bg_width, U8 srca_bg_heigh, U32 srcb_base_addr, U32 srcb_offset_x, U32 srcb_offset_y, U8 srcb_bg_width, U8 srcb_bg_heigh, U32 dest_base_addr, U32 dest_offset_x, U32 dest_offset_y, U8 dest_bg_width, U8 dest_bg_heigh, U32 trans_width, U32 trans_heigh, U8 blend_mode, U8 blend_a_factor, U8 blend_b_factor, U8 color_mode, U8 alpha, U8 transparent_mode, U32 color_key, U8 mode ) { *P_BLNDMA_ABASE_ADDR=srca_base_addr; *P_BLNDMA_AOFFSET_XY=(srca_offset_y<<16)+srca_offset_x; *P_BLNDMA_A_BG=(srca_bg_heigh<<8)+srca_bg_width; *P_BLNDMA_BBASE_ADDR=srcb_base_addr; *P_BLNDMA_BOFFSET_XY=(srcb_offset_y<<16)+srcb_offset_x; *P_BLNDMA_B_BG=(srcb_bg_heigh<<8)+srcb_bg_width; *P_BLNDMA_DBASE_ADDR=dest_base_addr; *P_BLNDMA_DOFFSET_XY=(dest_offset_y<<16)+dest_offset_x; *P_BLNDMA_D_BG=(dest_bg_heigh<<8)+dest_bg_width; *P_BLNDMA_WIDTH_HEIGH=(trans_heigh<<16)+trans_width; *P_BLNDMA_BLEND_FACTOR=(blend_b_factor<<8)+blend_a_factor; *P_BLNDMA_CONTROL_2=(color_mode<<8)+alpha;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -