Esempio n. 1
0
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;
    }
}
Esempio n. 2
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;
}