FLASH结构
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结构的更多相关文章
- STM32F40xxx 与 STM32F41xxx Flash结构详解
本文原创于http://www.cnblogs.com/humaoxiao,非法转载者请自重! 硬件平台:STM32F4 DISCOVERY开发板 型号:MB997A或MB997C主芯片型号:ST ...
- NAND Flash结构及驱动函数
目标:以NAND Flash K9F2G08U0M为例介绍其结构及其驱动程序的书写 1. 结构 由芯片手册中的图可知:K9F2G08U0M大小为2112Mbits(即 256MB = 2Gb ) 共有 ...
- nor flash和nand flash的区别
NOR和NAND是现在市场上两种主要的非易失闪存技术.Intel于1988年首先开发出NOR flash技术,彻底改变了原先由EPROM和EEPROM一统天下的局面.紧接着,1989年,东芝公司发表了 ...
- (三)NAND flash和NOR flash的区别详解
我们使用的智能手机除了有一个可用的空间(如苹果8G.16G等),还有一个RAM容量,很多人都不是很清楚,为什么需要二个这样的芯片做存储呢,这就是我们下面要讲到的.这二种存储设备我们都统称为“FLASH ...
- NOR FLASH与NAND FLASH的区别
NOR和NAND是现在市场上两种主要的非易失闪存技术.Intel于1988年首先开发出NOR flash技术,彻底改变了原先由EPROM和EEPROM一统天下的局面.紧接着,1989年,东芝公司发表了 ...
- ROM、RAM、DRAM、SRAM和FLASH区别
ROM和RAM指的都是半导体存储器,ROM是Read Only Memory的缩写,RAM是Random Access Memory的缩写. ROM在系统停止供电的时候仍然可以保持数据,而RAM通常都 ...
- NAND flash和NOR flash的区别详解
我们使用的智能手机除了有一个可用的空间(如苹果8G.16G等),还有一个RAM容量,很多人都不是很清楚,为什么需要二个这样的芯片做存储呢,这就是我们下面要讲到的.这二种存储设备我们都统称为“FLASH ...
- nand flash 和nor flash 区别
NOR和NAND是现在市场上两种主要的非易失闪存技术.Intel于1988年首先开发出NOR flash技术,彻底改变了原先由EPROM和EEPROM一统天下的局面.紧接着,1989年,东芝公司发表了 ...
- NOR flash和NAND flash区别,RAM 和ROM区别
ROM和RAM指的都是半导体存储器,ROM是Read Only Memory的缩写,RAM是Random Access Memory的缩写.ROM在系统停止供电的时候仍然可以保持数据,而RAM通常都是 ...
随机推荐
- software_testing_work3_question1
package com.Phantom; import java.io.IOException; import java.util.Scanner; public class Work3_1 { /* ...
- C#中隐藏(new)、方法重写(override)、重载(overload)的区别
转自:http://www.cnblogs.com/glife/archive/2009/12/28/1633947.html 重载.重写和隐藏的定义: 重载:public string ToStri ...
- Objective-C 中,atomic原子性一定是安全的吗?
我们在学习OC的时候认为,atomic使用了原子性,保证了线程安全,事实真的是这样吗? nonatomic的内存管理语义是非原子性的,非原子性的操作本来就是线程不安全的,而atomic的操作是原子性的 ...
- devenv命令详解
devenv [解决方案文件 | 项目文件 | 任意文件.扩展名] [开关] devenv 的第一个参数通常是一个解决方案文件或项目文件. 如果您希望在编辑器中自动打开文件, 也可以使用任何其他文 ...
- iOS不使用JSONKit做Dic到JsonString的转换
NSDictionary to jsonString [self DataTOjsonString:dic] -(NSString*)DicToJsonString:(id)object { NSSt ...
- android aidl 进程间通信需要注意的地方(android.os.TransactionTooLargeException)
转自:http://blog.sina.com.cn/s/blog_4e1e357d0102wau9.html 1.bus工程实现通过service实现aidl实体类 2.actor工程通过发起bin ...
- C++的深拷贝与浅拷贝
对于普通类型的对象来说,它们之间的复制是很简单的,例如:int a=88;int b=a; 而类对象与普通对象不同,类对象内部结构一般较为复杂,存在各种成员变量.下面是一个类对象拷贝的简单例子. #i ...
- android之Volley实现瀑布流
1.首先我们来看下主布局文件activity_main.xml. <RelativeLayout xmlns:android="http://schemas.android.com/a ...
- A log about Reading the memroy of Other Process in C++/WIN API--ReadProcessMemory()
Memory, is a complex module in Programing, especially on Windows. This time, I use cpp with win wind ...
- 学习css中得与惑
css的学习分享 所学的css知识看多,会看懂.这只是在实践中发现的问题: 一. ???h1比div还大 h1上下有边距 为什么浮动不了 (现不知道) 二. css写了 表现不出来.... ...