dl_flashdrv.c
来自「在高通的手机平台下,一个下载手机.bin文件到手机的flash中的工具,包含PC」· C语言 代码 · 共 1,395 行 · 第 1/5 页
C
1,395 行
/*===========================================================================
when who what, where, why
-------- --- ----------------------------------------------------------
02/09/06 wufei.lin create to dynamic flash support
12/26/05 wufei.lin add samsung flash
01/25/05 nony.wu Added AMD S71PL032
=============================================================================*/
#include "dl_comm.h"
#include "dl_proc.h"
#include "dl_flashdrv.h"
#include "dl_uart.h"
/* point to the current use flash device*/
flash_device_type *current_flash_device;
/* current flash block number*/
word current_flash_block_num;
/* point to the current block*/
block_descriptor *p_current_block;
/* the supported flash block descriptor */
static block_descriptor SST34HF_FLASH_BLOCK[] =
{
{ 0x000000, 0x10000 }, /* 64 kilobyte block */
{ 0x010000, 0x10000 }, /* 64 kilobyte block */
{ 0x020000, 0x10000 }, /* 64 kilobyte block */
{ 0x030000, 0x10000 }, /* 64 kilobyte block */
{ 0x040000, 0x10000 }, /* 64 kilobyte block */
{ 0x050000, 0x10000 }, /* 64 kilobyte block */
{ 0x060000, 0x10000 }, /* 64 kilobyte block */
{ 0x070000, 0x10000 }, /* 64 kilobyte block */
{ 0x080000, 0x10000 }, /* 64 kilobyte block */
{ 0x090000, 0x10000 }, /* 64 kilobyte block */
{ 0x0A0000, 0x10000 }, /* 64 kilobyte block */
{ 0x0B0000, 0x10000 }, /* 64 kilobyte block */
{ 0x0C0000, 0x10000 }, /* 64 kilobyte block */
{ 0x0D0000, 0x10000 }, /* 64 kilobyte block */
{ 0x0E0000, 0x10000 }, /* 64 kilobyte block */
{ 0x0F0000, 0x10000 }, /* 64 kilobyte block */
{ 0x100000, 0x10000}, /* 64 kilobyte block */
{ 0x110000, 0x10000}, /* 64 kilobyte block */
{ 0x120000, 0x10000}, /* 64 kilobyte block */
{ 0x130000, 0x10000}, /* 64 kilobyte block */
{ 0x140000, 0x10000}, /* 64 kilobyte block */
{ 0x150000, 0x10000}, /* 64 kilobyte block */
{ 0x160000, 0x10000}, /* 64 kilobyte block */
{ 0x170000, 0x10000}, /* 64 kilobyte block */
{ 0x180000, 0x10000}, /* 64 kilobyte block */
{ 0x190000, 0x10000}, /* 64 kilobyte block */
{ 0x1A0000, 0x10000}, /* 64 kilobyte block */
{ 0x1B0000, 0x10000}, /* 64 kilobyte block */
{ 0x1C0000, 0x10000}, /* 64 kilobyte block */
{ 0x1D0000, 0x10000}, /* 64 kilobyte block */
{ 0x1E0000, 0x10000}, /* 64 kilobyte block */
{ 0x1F0000, 0x10000}, /* 64 kilobyte block */
{ 0x200000, 0x10000}, /* 64 kilobyte block */
{ 0x210000, 0x10000}, /* 64 kilobyte block */
{ 0x220000, 0x10000}, /* 64 kilobyte block */
{ 0x230000, 0x10000}, /* 64 kilobyte block */
{ 0x240000, 0x10000}, /* 64 kilobyte block */
{ 0x250000, 0x10000}, /* 64 kilobyte block */
{ 0x260000, 0x10000}, /* 64 kilobyte block */
{ 0x270000, 0x10000}, /* 64 kilobyte block */
{ 0x280000, 0x10000}, /* 64 kilobyte block */
{ 0x290000, 0x10000}, /* 64 kilobyte block */
{ 0x2A0000, 0x10000}, /* 64 kilobyte block */
{ 0x2B0000, 0x10000}, /* 64 kilobyte block */
{ 0x2C0000, 0x10000}, /* 64 kilobyte block */
{ 0x2D0000, 0x10000}, /* 64 kilobyte block */
{ 0x2E0000, 0x10000}, /* 64 kilobyte block */
{ 0x2F0000, 0x10000}, /* 64 kilobyte block */
{ 0x300000, 0x10000}, /* 64 kilobyte block */
{ 0x310000, 0x10000}, /* 64 kilobyte block */
{ 0x320000, 0x10000}, /* 64 kilobyte block */
{ 0x330000, 0x10000}, /* 64 kilobyte block */
{ 0x340000, 0x10000}, /* 64 kilobyte block */
{ 0x350000, 0x10000}, /* 64 kilobyte block */
{ 0x360000, 0x10000}, /* 64 kilobyte block */
{ 0x370000, 0x10000}, /* 64 kilobyte block */
{ 0x380000, 0x10000}, /* 64 kilobyte block */
{ 0x390000, 0x10000}, /* 64 kilobyte block */
{ 0x3A0000, 0x10000}, /* 64 kilobyte block */
{ 0x3B0000, 0x10000}, /* 64 kilobyte block */
{ 0x3C0000, 0x10000}, /* 64 kilobyte block */
{ 0x3D0000, 0x10000}, /* 64 kilobyte block */
{ 0x3E0000, 0x10000}, /* 64 kilobyte block */
{ 0x3F0000, 0x10000},
};
static block_descriptor TOSHIBA7T2A_flash_block[] ={
{0x000000, 0x10000},/* 64 kilobyte block */
{0x010000, 0x10000 }, /* 64 kilobyte block */
{0x020000, 0x10000 }, /* 64 kilobyte block */
{0x030000, 0x10000 }, /* 64 kilobyte block */
{0x040000, 0x10000 }, /* 64 kilobyte block */
{0x050000, 0x10000 }, /* 64 kilobyte block */
{0x060000, 0x10000 }, /* 64 kilobyte block */
{0x070000, 0x10000 }, /* 64 kilobyte block */
{0x080000, 0x10000 }, /* 64 kilobyte block */
{0x090000, 0x10000 }, /* 64 kilobyte block */
{0x0A0000, 0x10000 }, /* 64 kilobyte block */
{0x0B0000, 0x10000 }, /* 64 kilobyte block */
{0x0C0000, 0x10000 }, /* 64 kilobyte block */
{0x0D0000, 0x10000 }, /* 64 kilobyte block */
{0x0E0000, 0x10000 }, /* 64 kilobyte block */
{0x0F0000, 0x10000 }, /* 64 kilobyte block */
{0x100000, 0x10000},/* 64 kilobyte block */
{0x110000, 0x10000},/* 64 kilobyte block */
{0x120000, 0x10000},/* 64 kilobyte block */
{0x130000, 0x10000},/* 64 kilobyte block */
{0x140000, 0x10000},/* 64 kilobyte block */
{0x150000, 0x10000},/* 64 kilobyte block */
{0x160000, 0x10000},/* 64 kilobyte block */
{0x170000, 0x10000},/* 64 kilobyte block */
{0x180000, 0x10000},/* 64 kilobyte block */
{0x190000, 0x10000},/* 64 kilobyte block */
{0x1A0000, 0x10000},/* 64 kilobyte block */
{0x1B0000, 0x10000},/* 64 kilobyte block */
{0x1C0000, 0x10000},/* 64 kilobyte block */
{0x1D0000, 0x10000},/* 64 kilobyte block */
{0x1E0000, 0x10000},/* 64 kilobyte block */
{0x1F0000, 0x10000},/* 64 kilobyte block */
{0x200000, 0x10000},/* 64 kilobyte block */
{0x210000, 0x10000},/* 64 kilobyte block */
{0x220000, 0x10000},/* 64 kilobyte block */
{0x230000, 0x10000},/* 64 kilobyte block */
{0x240000, 0x10000},/* 64 kilobyte block */
{0x250000, 0x10000},/* 64 kilobyte block */
{0x260000, 0x10000},/* 64 kilobyte block */
{0x270000, 0x10000},/* 64 kilobyte block */
{0x280000, 0x10000},/* 64 kilobyte block */
{0x290000, 0x10000},/* 64 kilobyte block */
{0x2A0000, 0x10000},/* 64 kilobyte block */
{0x2B0000, 0x10000},/* 64 kilobyte block */
{0x2C0000, 0x10000},/* 64 kilobyte block */
{0x2D0000, 0x10000},/* 64 kilobyte block */
{0x2E0000, 0x10000},/* 64 kilobyte block */
{0x2F0000, 0x10000},/* 64 kilobyte block */
{0x300000, 0x10000},/* 64 kilobyte block */
{0x310000, 0x10000},/* 64 kilobyte block */
{0x320000, 0x10000},/* 64 kilobyte block */
{0x330000, 0x10000},/* 64 kilobyte block */
{0x340000, 0x10000},/* 64 kilobyte block */
{0x350000, 0x10000},/* 64 kilobyte block */
{0x360000, 0x10000},/* 64 kilobyte block */
{0x370000, 0x10000},/* 64 kilobyte block */
{0x380000, 0x10000},/* 64 kilobyte block */
{0x390000, 0x10000},/* 64 kilobyte block */
{0x3A0000, 0x10000},/* 64 kilobyte block */
{0x3B0000, 0x10000},/* 64 kilobyte block */
{0x3C0000, 0x10000},/* 64 kilobyte block */
{0x3D0000, 0x10000},/* 64 kilobyte block */
{0x3E0000, 0x10000},/* 64 kilobyte block */
{0x3F0000, 0x10000},/* 64 kilobyte block */
{0x400000, 0x10000},/* 64 kilobyte block */
{0x410000, 0x10000},/* 64 kilobyte block */
{0x420000, 0x10000},/* 64 kilobyte block */
{0x430000, 0x10000},/* 64 kilobyte block */
{0x440000, 0x10000},/* 64 kilobyte block */
{0x450000, 0x10000},/* 64 kilobyte block */
{0x460000, 0x10000},/* 64 kilobyte block */
{0x470000, 0x10000},/* 64 kilobyte block */
{0x480000, 0x10000},/* 64 kilobyte block */
{0x490000, 0x10000},/* 64 kilobyte block */
{0x4A0000, 0x10000},/* 64 kilobyte block */
{0x4B0000, 0x10000},/* 64 kilobyte block */
{0x4C0000, 0x10000},/* 64 kilobyte block */
{0x4D0000, 0x10000},/* 64 kilobyte block */
{0x4E0000, 0x10000},/* 64 kilobyte block */
{0x4F0000, 0x10000},/* 64 kilobyte block */
{0x500000, 0x10000},/* 64 kilobyte block */
{0x510000, 0x10000},/* 64 kilobyte block */
{0x520000, 0x10000},/* 64 kilobyte block */
{0x530000, 0x10000},/* 64 kilobyte block */
{0x540000, 0x10000},/* 64 kilobyte block */
{0x550000, 0x10000},/* 64 kilobyte block */
{0x560000, 0x10000},/* 64 kilobyte block */
{0x570000, 0x10000},/* 64 kilobyte block */
{0x580000, 0x10000},/* 64 kilobyte block */
{0x590000, 0x10000},/* 64 kilobyte block */
{0x5A0000, 0x10000},/* 64 kilobyte block */
{0x5B0000, 0x10000},/* 64 kilobyte block */
{0x5C0000, 0x10000},/* 64 kilobyte block */
{0x5D0000, 0x10000},/* 64 kilobyte block */
{0x5E0000, 0x10000},/* 64 kilobyte block */
{0x5F0000, 0x10000},/* 64 kilobyte block */
{0x600000, 0x10000},/* 64 kilobyte block */
{0x610000, 0x10000},/* 64 kilobyte block */
{0x620000, 0x10000},/* 64 kilobyte block */
{0x630000, 0x10000},/* 64 kilobyte block */
{0x640000, 0x10000},/* 64 kilobyte block */
{0x650000, 0x10000},/* 64 kilobyte block */
{0x660000, 0x10000},/* 64 kilobyte block */
{0x670000, 0x10000},/* 64 kilobyte block */
{0x680000, 0x10000},/* 64 kilobyte block */
{0x690000, 0x10000},/* 64 kilobyte block */
{0x6A0000, 0x10000},/* 64 kilobyte block */
{0x6B0000, 0x10000},/* 64 kilobyte block */
{0x6C0000, 0x10000},/* 64 kilobyte block */
{0x6D0000, 0x10000},/* 64 kilobyte block */
{0x6E0000, 0x10000},/* 64 kilobyte block */
{0x6F0000, 0x10000},/* 64 kilobyte block */
{0x700000, 0x10000},/* 64 kilobyte block */
{0x710000, 0x10000},/* 64 kilobyte block */
{0x720000, 0x10000},/* 64 kilobyte block */
{0x730000, 0x10000},/* 64 kilobyte block */
{0x740000, 0x10000},/* 64 kilobyte block */
{0x750000, 0x10000},/* 64 kilobyte block */
{0x760000, 0x10000},/* 64 kilobyte block */
{0x770000, 0x10000},/* 64 kilobyte block */
{0x780000, 0x10000},/* 64 kilobyte block */
{0x790000, 0x10000},/* 64 kilobyte block */
{0x7A0000, 0x10000},/* 64 kilobyte block */
{0x7B0000, 0x10000},/* 64 kilobyte block */
{0x7C0000, 0x10000},/* 64 kilobyte block */
{0x7D0000, 0x10000},/* 64 kilobyte block */
{0x7E0000, 0x10000},/* 64 kilobyte block */
{0x7F0000, 0x10000},/* 64 kilobyte block */
{0x800000, 0x10000},/* 64 kilobyte block */
{0x810000, 0x10000},/* 64 kilobyte block */
{0x820000, 0x10000},/* 64 kilobyte block */
{0x830000, 0x10000},/* 64 kilobyte block */
{0x840000, 0x10000},/* 64 kilobyte block */
{0x850000, 0x10000},/* 64 kilobyte block */
{0x860000, 0x10000},/* 64 kilobyte block */
{0x870000, 0x10000},/* 64 kilobyte block */
{0x880000, 0x10000},/* 64 kilobyte block */
{0x890000, 0x10000},/* 64 kilobyte block */
{0x8A0000, 0x10000},/* 64 kilobyte block */
{0x8B0000, 0x10000},/* 64 kilobyte block */
{0x8C0000, 0x10000},/* 64 kilobyte block */
{0x8D0000, 0x10000},/* 64 kilobyte block */
{0x8E0000, 0x10000},/* 64 kilobyte block */
{0x8F0000, 0x10000},/* 64 kilobyte block */
{0x900000, 0x10000},/* 64 kilobyte block */
{0x910000, 0x10000},/* 64 kilobyte block */
{0x920000, 0x10000},/* 64 kilobyte block */
{0x930000, 0x10000},/* 64 kilobyte block */
{0x940000, 0x10000},/* 64 kilobyte block */
{0x950000, 0x10000},/* 64 kilobyte block */
{0x960000, 0x10000},/* 64 kilobyte block */
{0x970000, 0x10000},/* 64 kilobyte block */
{0x980000, 0x10000},/* 64 kilobyte block */
{0x990000, 0x10000},/* 64 kilobyte block */
{0x9A0000, 0x10000},/* 64 kilobyte block */
{0x9B0000, 0x10000},/* 64 kilobyte block */
{0x9C0000, 0x10000},/* 64 kilobyte block */
{0x9D0000, 0x10000},/* 64 kilobyte block */
{0x9E0000, 0x10000},/* 64 kilobyte block */
{0x9F0000, 0x10000},/* 64 kilobyte block */
{0xA00000, 0x10000},/* 64 kilobyte block */
{0xA10000, 0x10000},/* 64 kilobyte block */
{0xA20000, 0x10000},/* 64 kilobyte block */
{0xA30000, 0x10000},/* 64 kilobyte block */
{0xA40000, 0x10000},/* 64 kilobyte block */
{0xA50000, 0x10000},/* 64 kilobyte block */
{0xA60000, 0x10000},/* 64 kilobyte block */
{0xA70000, 0x10000},/* 64 kilobyte block */
{0xA80000, 0x10000},/* 64 kilobyte block */
{0xA90000, 0x10000},/* 64 kilobyte block */
{0xAA0000, 0x10000},/* 64 kilobyte block */
{0xAB0000, 0x10000},/* 64 kilobyte block */
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?