mergedir/code.tmp.bin  压缩未加密文件的FLASH文件

mergedir/sfs/nvm.bin     shareData数据文件,未加密、未压缩

数据克隆:DATA/ALL

APP_Clone_Backup_SystemData_To_USBBackup(CV_FM_DATA)

APP_Clone_Backup_FlashData_To_USBBackup(DataType_t DataType)  //BACKUP_ROMBIN_DATA

中间件的读写:  Cmd_FlashWrite(UINT32 destAddr, UINT32 srcAddr, UINT32 size)

中间件模块读写: Cmd_FlashModuleUpdate(INT8 * moduleName, INT8 * updateData, UINT32 updateSize)

通过ID寻找地址:  Cmd_GetAddrAndSizeByFlashID(UINT8 flashID, UINT32 *pFlashAddr, UINT32 *pFlashSize)

shareData的读写:tv_SaveFlashSetting()

读写FLASH: spi_write_flash

更新POWER键:update_option_ir_power_key

SFS底层调用:spi_dmawrite(__u32 dest,__u32 src,__u32 size)

信号量的操作:VD_SEM_TAKE/VD_SEM_GIVE

设备读:Cmd_NVMRead(UINT8 eNvmID, UINT8 u8Compress, UINT32 u32Count, UINT8 *pu8Buffer)

设备写:Cmd_NVMWrite(UINT8 eNvmID, UINT8 u8Compress, UINT32 u32Count, UINT8 *pu8Buffer)

组件装载:AL_Setting_Reload(AL_SETTING_HANDLE handle, al_uint8 user_pref_id) //user_pref_id=0xff 装载整个设备到cache

读取默认值到cache:AL_Setting_ReadDefault(AL_SETTING_HANDLE handle,al_uint8 user_pref_id, const al_void *data)

读写内存:AL_Setting_Read()/AL_Setting_Write()

写FLASH:AL_Setting_Store()

drv_spi_flashalloc_external.h

#define SPI_CODEFLASH_BASEADDR 0xBC000000
#define SPI_DATAFLASH_BASEADDR 0xBF000000

#define SPI_ADCDATA_FLASHID (0x01) //12k
#define SPI_KMFSHARE_FLASHID (0x02) //1k
#define SPI_CIDATA_FLASHADDR (0x03) //need to remove
#define SPI_RRTTABLE_FLASHADDR (0x04) //need to remove
#define SPI_BOOTSHARE_FLASHID (0x05) //customer used
#define SPI_NVMDATA_FLASHID (0x10)

设备枚举

typedef enum
{
ENVMPurposeIDDatabaseDVBT,
ENVMPurposeIDDatabaseDVBC,
ENVMPurposeIDDatabaseDVBS,
ENVMPurposeIDDatabaseSBTVD,
ENVMPurposeIDDatabaseATV,
ENVMPurposeIDSysSetting,
ENVMPurposeIDSysSettingVariational,
ENVMPurposeIDCVFMBackup,
} ENVMPurposeID_t;

组件枚举:

enum
{
SYS_SET_ID_VERSION,
SYS_SET_ID_PICTURE,
SYS_SET_ID_SOUND,
SYS_SET_ID_CHANNEL,
SYS_SET_ID_FEATURE,
SYS_SET_ID_SETUP,
SYS_SET_ID_MULTIMEDIA,
SYS_SET_ID_TVINFO,
SYS_SET_ID_USERINFO,
SYS_SET_ID_SYSINFO,
SYS_SET_ID_FACTUSER,
SYS_SET_ID_FACTHOTEL,
SYS_SET_ID_IRMAPTABLE,
SYS_SET_ID_VARIATIONAL,
MAX_BLOCKS_NUM
};

typedef enum

{
FM_ClearLock = 0,
FM_DataBaseEx,
FM_DataBaseIm,
FM_PrevPage = 14,
FM_HotelSetting_1_Max,
} fm_HotelSetting_1_Param_t;

enum FlashIndex
{
KMF_BROMSHAREDATA_FLASHINDEX =0,
KMF_GAMMATABLE_FLASHINDEX,
KMF_ADCCOLOR_FLASHINDEX,
KMF_PICCOLORTMP_FLASHINDEX,
KMF_PQDEFAULT_FLASHINDEX,
KMF_MULTITABLE_FLASHINDEX,
KMF_FLASHINDEXEND
};

app_clone_data.c

有壓 BootROM
有壓 Kernel
沒壓 OUIMAINinfo
有壓 Custable
有壓 DefPanel
有壓 GammaTable
有壓 VIPTable
有壓 CLUPTable
沒壓 IR501
沒壓 KeyPad
有壓 Logo
沒壓 EDID
沒壓 HDCPKey
沒壓 CIKey

FLASH结构的更多相关文章

  1. STM32F40xxx 与 STM32F41xxx Flash结构详解

    本文原创于http://www.cnblogs.com/humaoxiao,非法转载者请自重!   硬件平台:STM32F4 DISCOVERY开发板 型号:MB997A或MB997C主芯片型号:ST ...

  2. NAND Flash结构及驱动函数

    目标:以NAND Flash K9F2G08U0M为例介绍其结构及其驱动程序的书写 1. 结构 由芯片手册中的图可知:K9F2G08U0M大小为2112Mbits(即 256MB = 2Gb ) 共有 ...

  3. nor flash和nand flash的区别

    NOR和NAND是现在市场上两种主要的非易失闪存技术.Intel于1988年首先开发出NOR flash技术,彻底改变了原先由EPROM和EEPROM一统天下的局面.紧接着,1989年,东芝公司发表了 ...

  4. (三)NAND flash和NOR flash的区别详解

    我们使用的智能手机除了有一个可用的空间(如苹果8G.16G等),还有一个RAM容量,很多人都不是很清楚,为什么需要二个这样的芯片做存储呢,这就是我们下面要讲到的.这二种存储设备我们都统称为“FLASH ...

  5. NOR FLASH与NAND FLASH的区别

    NOR和NAND是现在市场上两种主要的非易失闪存技术.Intel于1988年首先开发出NOR flash技术,彻底改变了原先由EPROM和EEPROM一统天下的局面.紧接着,1989年,东芝公司发表了 ...

  6. ROM、RAM、DRAM、SRAM和FLASH区别

    ROM和RAM指的都是半导体存储器,ROM是Read Only Memory的缩写,RAM是Random Access Memory的缩写. ROM在系统停止供电的时候仍然可以保持数据,而RAM通常都 ...

  7. NAND flash和NOR flash的区别详解

    我们使用的智能手机除了有一个可用的空间(如苹果8G.16G等),还有一个RAM容量,很多人都不是很清楚,为什么需要二个这样的芯片做存储呢,这就是我们下面要讲到的.这二种存储设备我们都统称为“FLASH ...

  8. nand flash 和nor flash 区别

    NOR和NAND是现在市场上两种主要的非易失闪存技术.Intel于1988年首先开发出NOR flash技术,彻底改变了原先由EPROM和EEPROM一统天下的局面.紧接着,1989年,东芝公司发表了 ...

  9. NOR flash和NAND flash区别,RAM 和ROM区别

    ROM和RAM指的都是半导体存储器,ROM是Read Only Memory的缩写,RAM是Random Access Memory的缩写.ROM在系统停止供电的时候仍然可以保持数据,而RAM通常都是 ...

随机推荐

  1. clip 属性剪裁绝对定位元素

    如果left >= right或者bottom <= top,则元素会被完全裁掉而不可见,即“隐藏”.通过这种方式隐藏的元素是可以被屏幕阅读器等辅助设备识别的,从而提高了页面的可用性. I ...

  2. win764位Ruby2.0环境搭建之Ruby on Rails

    一:安装Ruby 1.在http://rubyinstaller.org 下载需要的ruby版本,因为是exe文件,所以,你可以直接安装. 安装结束后,cmd上运行 ruby -v 显示版本号.如果正 ...

  3. boost array使用

    #include <iostream> #include<boost/array.hpp> int main() { boost::array<int, 6> ar ...

  4. 登录phpmyadmin提示: #1045 无法登录 MySQL 服务器

    打开phpmyadmin,进行登录,出现以下问题,提示:#1045 无法登录 MySQL 服务器 或许出现以下错误情况:phpmyadmin:#1045 无法登录 MySQL 服务器.Access d ...

  5. MATLAB中fft函数的正确使用方法

    问题来源:在阅读莱昂斯的<数字信号处理>第三章离散傅里叶变换时,试图验证实数偶对称信号的傅里叶变换实部为偶对称的且虚部为零.验证失败.验证信号为矩形信号,结果显示虚部是不为零且最大幅值等于 ...

  6. Hbuilder与svn快速连接并在手机上测试页面

    大家好,今天讲一下Hbuilder怎样与svn连接在一起,并且在移动端上面做真是的页面测试. 1,打开Hbuilder软件,在工具中,安装插件,找到svn插件安装. 2.点击文件,导入,从svn中检测 ...

  7. 【转】rollup、cub、grouping sets、grouping、grouping_id在报表中的应用

    摘自 http://blog.itpub.net/26977915/viewspace-734114/ 在报表语句中经常要使用各种分组汇总,rollup和cube就是常用的分组汇总方式. 第一:gro ...

  8. Android下载更新代码

    其实是昨天反编译一个apk,给它添加一个自动更新的功能用到的.为了在smali下方便查看,代码写的不规范,反正到了smali都一个吊样~~~~ 权限: <uses-permission andr ...

  9. TOJ2647

                                                             2647: How Many Tables 时间限制(普通/Java):1000MS/ ...

  10. Bootstrap-17

    导入JavaScript插件: 一次性导入:Bootstrap提供了一个单一的文件,这个文件包含了Bootstrap的所有JavaScript插件,即bootstrap.js <!—导入jQue ...