ptu32_t module_init_fs_k9f1208xxx(const char *FlashHeapName) { struct nand_chip_id chip_id; pHeap_t MyHeap; u16 myid; char *name; NandFlash_GPIO_Init(); NandFlash_On(); __reset_nand(); myid = __read_chip_id(&chip_id); if( __parse_chip(myid,&name) == false) return 0; MyHeap = M_FindHeap(FlashHeapName); if(MyHeap == NULL) return 0; tg_samsung_nand.ChipHeap = MyHeap; pg_sector_buf = (u8*)M_MallocHeap(u32g_sector_size+u16g_oob_size,MyHeap,0); if(pg_sector_buf == NULL) { return 0; } tg_samsung_nand.query_block_ready_with_ecc= query_block_ready_ss_with_ecc; tg_samsung_nand.query_block_ready_no_ecc = query_block_ready_nand_no_ecc; tg_samsung_nand.query_ready_with_data = query_ready_with_data_nand; tg_samsung_nand.erase_block = erase_block_nand; tg_samsung_nand.check_block = check_block_nand; tg_samsung_nand.read_data_with_ecc = read_block_ss_with_ecc; tg_samsung_nand.write_data_with_ecc = write_block_ss_with_ecc; tg_samsung_nand.read_data_no_ecc = read_block_ss_no_ecc; tg_samsung_nand.write_data_no_ecc = write_block_ss_no_ecc; tg_samsung_nand.write_PCRB = write_PCRB_nand; tg_samsung_nand.restore_PCRB = restore_PCRB_nand; if(DFFSD_InstallChip(&tg_samsung_nand,name,cn_reserve_blocks)) { Sh_InstallCmd(ShellNandCmdTab,tg_NandCmdRsc, sizeof(ShellNandCmdTab)/sizeof(struct tagShellCmdTab)); return 1; } else { M_FreeHeap(pg_sector_buf,MyHeap); return 0; } }
//----初始化lcd设备------------------------------------------------------------ //功能: 如名 //参数: 无 //返回: 显示器资源指针 //----------------------------------------------------------------------------- ptu32_t ModuleInstall_ili9325(const char *DisplayName,const char* HeapName) { static struct tagGkWinRsc frame_win; static struct tagRectBitmap FrameBitmap; __lcd_ili9325_init( ); FrameBitmap.bm_bits = u8g_frame_buffer; FrameBitmap.width = LCD_XSIZE; FrameBitmap.height = LCD_YSIZE; FrameBitmap.PixelFormat = cn_lcd_pf; FrameBitmap.linebytes = cn_lcd_line_size; FrameBitmap.ExColor = 0; frame_win.wm_bitmap = &FrameBitmap; tg_lcd_display.frame_buffer = &frame_win; tg_lcd_display.xmm = 0; tg_lcd_display.ymm = 0; tg_lcd_display.width = LCD_XSIZE; tg_lcd_display.height = LCD_YSIZE; tg_lcd_display.pixel_format = CN_SYS_PF_RGB565; tg_lcd_display.reset_clip = false; tg_lcd_display.framebuf_direct = false; //无须初始化frame_buffer和desktop,z_topmost三个成员 tg_lcd_display.draw.set_pixel_bm = __lcd_set_pixel_bm; tg_lcd_display.draw.line_bm = __lcd_line_bm; tg_lcd_display.draw.line_bm_ie = __lcd_line_bm_ie; tg_lcd_display.draw.fill_rect_bm = __lcd_fill_rect_bm; tg_lcd_display.draw.blt_bm_to_bm = __lcd_blt_bm_to_bm; tg_lcd_display.draw.get_pixel_bm = NULL; tg_lcd_display.draw.get_rect_bm = __lcd_get_rect_bm; tg_lcd_display.draw.set_pixel_screen = __lcd_set_pixel_screen; tg_lcd_display.draw.line_screen = __lcd_line_screen; tg_lcd_display.draw.line_screen_ie = __lcd_line_screen_ie; tg_lcd_display.draw.fill_rect_screen = __lcd_fill_rect_screen; tg_lcd_display.draw.bm_to_screen = __lcd_bm_to_screen; tg_lcd_display.draw.get_pixel_screen = __lcd_get_pixel_screen; tg_lcd_display.draw.get_rect_screen = __lcd_get_rect_screen; // tg_lcd_display.bmmalloc = lcd_bmmalloc; tg_lcd_display.DisplayHeap = M_FindHeap(HeapName); tg_lcd_display.disp_ctrl = __lcd_disp_ctrl; GK_InstallDisplay(&tg_lcd_display,DisplayName); return (ptu32_t)&tg_lcd_display; }