📄 blndma.c
字号:
#include ".\System\SystemHeader.h"/************************************************************************** * * * Function Name: BlnDmaStart_LinearFillPat * * * * Purposes: * * * * Descriptions: * * * * Arguments: * * dest_addr : destination address (28 bits) * * trans_width : transfer width, maximum = 2048 * * trans_heigh : transfer heigh, maximum = 2048 * * fill_pat : fill pattern (32 bits) * * mode : (0:polling mode, 1:interrupt mode) * * * * Returns: * * * * See also: * * * **************************************************************************//*void BlnDmaStart_LinearFillPat( U32 dest_addr, U32 trans_width, U32 trans_heigh, U32 fill_pat, U8 mode){ *P_BLNDMA_DEST_ADDR=dest_addr; *P_BLNDMA_WIDTH_HEIGH=(trans_heigh<<16)+trans_width; *P_BLNDMA_FILL_PAT=fill_pat; *P_BLNDMA_ADDR_MODE=(*P_BLNDMA_ADDR_MODE&0xfffeffff); if (mode==0) { *P_BLNDMA_IRQ_CONTROL=0x00000000; *P_BLNDMA_CONTROL_1=0x01000003; // while (*P_BLNDMA_IRQ_CONTROL==0x00000100)
// {
// print1("BLNDMA Busy\n");
// }
} if (mode==1) { *P_BLNDMA_IRQ_CONTROL=0x00010000; *P_BLNDMA_CONTROL_1=0x01000003; } }*//************************************************************************** * * * Function Name: BlnDmaStart_BlockFillPat * * * * Purposes: * * * * Descriptions: * * * * Arguments: * * dest_base_addr: destination baseaddress (28 bits) * * dest_offset_x : (11 bits), maximum = 2048 * * dest_offset_y : (11 bits), maximum = 2048 * * trans_width : transfer width, maximum = 2048 * * trans_heigh : transfer heigh, maximum = 2048 * * fill_pat : fill pattern (32 bits) * * 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 * * mode : (0:polling mode, 1:interrupt mode) * * * * Returns: * * * * See also: * * * **************************************************************************//*void BlnDmaStart_BlockFillPat( U32 dest_base_addr, U32 dest_offset_x, U32 dest_offset_y, U32 trans_width, U32 trans_heigh, U32 fill_pat, U8 dest_bg_width, U8 dest_bg_heigh, U8 mode ){ *P_BLNDMA_DBASE_ADDR=dest_base_addr; *P_BLNDMA_DOFFSET_XY=(dest_offset_y<<16)+dest_offset_x; *P_BLNDMA_WIDTH_HEIGH=(trans_heigh<<16)+trans_width; *P_BLNDMA_FILL_PAT=fill_pat; *P_BLNDMA_D_BG=(dest_bg_heigh<<8)+dest_bg_width; *P_BLNDMA_ADDR_MODE=(*P_BLNDMA_ADDR_MODE|0x00010000); if (mode==0) { *P_BLNDMA_IRQ_CONTROL=0x00000000; *P_BLNDMA_CONTROL_1=0x01000003; // while (*P_BLNDMA_IRQ_CONTROL==0x00000100)
// {
// print1("BLNDMA Busy\n");
// }
} if (mode==1) { *P_BLNDMA_IRQ_CONTROL=0x00010000; *P_BLNDMA_CONTROL_1=0x01000003; } }*//************************************************************************** * * * Function Name: BlnDmaStart_linear2linear_Dma * * * * Purposes: * * * * Descriptions: * * * * Arguments: * * src_addr : source address (28 bits) * * dest_addr : destination address (28 bits) * * trans_width : transfer width, maximum = 2048 * * trans_heigh : transfer heigh, maximum = 2048 * * transparent_mode : (0:disable, 1:enable) * * color_key : (16 bits) * * mode : (0:polling mode, 1:interrupt mode) * * * * Returns: * * * * See also: * * * **************************************************************************/void BlnDmaStart_linear2linear_Dma( U32 src_addr, U32 dest_addr, U32 trans_width, U32 trans_heigh, U8 transparent_mode, U32 color_key, U8 mode ){ *P_BLNDMA_SOURCEA_SA=src_addr; *P_BLNDMA_DESTINATION_SA=dest_addr; *P_BLNDMA_WIDTH_HEIGHT=(trans_heigh<<16)+trans_width; *P_BLNDMA_FILTER_PATTERN=color_key; *P_BLNDMA_ADDR_MODE=(*P_BLNDMA_ADDR_MODE&0xfffefffe); if (mode==0) { *P_BLNDMA_INT_STATUS=0x00000000; if (transparent_mode==0) { *P_BLNDMA_MODE_CTRL1=0x01000001; } else { *P_BLNDMA_MODE_CTRL1=0x01010001; } while (*P_BLNDMA_INT_STATUS==0x00000100)
{
// print1("BLNDMA Busy\n");
}
} if (mode==1) { *P_BLNDMA_INT_STATUS=0x00010000; if (transparent_mode==0) { *P_BLNDMA_MODE_CTRL1=0x01000001; } else { *P_BLNDMA_MODE_CTRL1=0x01010001; } } }/************************************************************************** * * * Function Name: BlnDmaStart_linear2block_Dma * * * * Purposes: * * * * Descriptions: * * * * Arguments: * * src_addr : source address (28 bits) * * dest_base_addr : destination baseaddress (28 bits) * * dest_offset_x : (11 bits), maximum = 2048 * * dest_offset_y : (11 bits), maximum = 2048 * * trans_width : transfer width, maximum = 2048 * * trans_heigh : transfer heigh, 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 * * transparent_mode : (0:disable, 1:enable) * * color_key : (16 bits) * * mode : (0:polling mode, 1:interrupt mode) * * * * Returns: * * * * See also: * * * **************************************************************************/void BlnDmaStart_linear2block_Dma( U32 src_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 transparent_mode, U32 color_key, U8 mode ){ *P_BLNDMA_SOURCEA_SA=src_addr; *P_BLNDMA_DESTINATION_BA=dest_base_addr; *P_BLNDMA_DESTINATION_OA=(dest_offset_y<<16)+dest_offset_x; *P_BLNDMA_DESTINATION_BACKGROUND =(dest_bg_heigh<<8)+dest_bg_width; *P_BLNDMA_WIDTH_HEIGHT=(trans_heigh<<16)+trans_width; *P_BLNDMA_FILTER_PATTERN=color_key; *P_BLNDMA_ADDR_MODE=((*P_BLNDMA_ADDR_MODE|0x00010000)&0xfffffffe); if (mode==0) { *P_BLNDMA_INT_STATUS=0x00000000; if (transparent_mode==0) { *P_BLNDMA_MODE_CTRL1=0x01000001; } else { *P_BLNDMA_MODE_CTRL1=0x01010001; } // while (*P_BLNDMA_IRQ_CONTROL==0x00000100)// {// print1("BLNDMA Busy\n");// } } if (mode==1) { *P_BLNDMA_INT_STATUS=0x00010000; if (transparent_mode==0) { *P_BLNDMA_MODE_CTRL1=0x01000001; } else { *P_BLNDMA_MODE_CTRL1=0x01010001; } } }/************************************************************************** * * * Function Name: BlnDmaStart_block2block_Dma * * * * Purposes: * * * * Descriptions: * * * * Arguments: * * src_base_addr : source A base address (28 bits) * * src_offset_x : (11 bits), maximum = 2048 * * src_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 * * trans_width : transfer width, maximum = 2048 * * trans_heigh : transfer heigh, maximum = 2048 * * src_bg_width/dest_bg_width : (3 bits) * * 0 : 256 * * 1 : 320 * * 2 : 512 * * 3 : 640 * * 4 : 1024 * * 5 : 2048 * * 6,7 : reserved * * src_bg_heigh/dest_bg_heigh : (3 bits) * * 0 : 240 * * 1 : 256 * * 2 : 480 * * 3 : 512 * * 4 : 1024 * * 5 : 2048 * * 6,7 : reserved * * transparent_mode : (0:disable, 1:enable) * * color_key : (16 bits) * * mode : (0:polling mode, 1:interrupt mode) * * * * Returns: * * * * See also: * * * **************************************************************************/void BlnDmaStart_block2block_Dma( U32 src_base_addr, U32 src_offset_x, U32 src_offset_y, U8 src_bg_width, U8 src_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 transparent_mode, U32 color_key, U8 mode ){ *P_BLNDMA_SOURCEA_BA=src_base_addr; *P_BLNDMA_SOURCEA_OA=(src_offset_y<<16)+src_offset_x; *P_BLNDMA_SOURCEA_BACKGROUND=(src_bg_heigh<<8)+src_bg_width; *P_BLNDMA_DESTINATION_BA=dest_base_addr; *P_BLNDMA_DESTINATION_OA=(dest_offset_y<<16)+dest_offset_x; *P_BLNDMA_DESTINATION_BACKGROUND=(dest_bg_heigh<<8)+dest_bg_width; *P_BLNDMA_WIDTH_HEIGHT=(trans_heigh<<16)+trans_width; *P_BLNDMA_FILTER_PATTERN=color_key; *P_BLNDMA_ADDR_MODE=(*P_BLNDMA_ADDR_MODE|0x00010001); if (mode==0) { *P_BLNDMA_INT_STATUS=0x00000000; if (transparent_mode==0) { *P_BLNDMA_MODE_CTRL1=0x01000001; } else { *P_BLNDMA_MODE_CTRL1=0x01010001; } // while (*P_BLNDMA_IRQ_CONTROL==0x00000100)
// {
// print1("BLNDMA Busy\n");
// }
} if (mode==1) { *P_BLNDMA_INT_STATUS=0x00010000; if (transparent_mode==0) { *P_BLNDMA_MODE_CTRL1=0x01000001; } else { *P_BLNDMA_MODE_CTRL1=0x01010001; } } }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -