📄 setup.h
字号:
/******************************************************************/
/* Copyright (C) 2007 ROCK-CHIPS FUZHOU . All Rights Reserved. */
/*******************************************************************
File : setup.h
Desc : 定义 应用和 内核安装 相关的数据结构.
Author : huangsl
Date : 2007-09-19
Notes :
$Log: setup.h,v $
Revision 1.4 2008/01/11 02:34:30 Huangshilin
增加更新 二级 LOADER的功能.打开 特效功能.
Revision 1.3 2008/01/08 05:04:55 Huangshilin
增加升级 更新 LOADER 的功能.
Revision 1.2 2008/01/07 12:52:19 Huangshilin
no message
Revision 1.1 2007/11/23 08:04:12 Huangshilin
增加安装接口.
Revision 1.5 2007/11/05 09:53:49 Huangshilin
增加GUI接口,增加应用资源互斥控制.
Revision 1.4 2007/10/20 04:46:30 Huangshilin
for RK2700
Revision 1.3 2007/10/08 02:57:03 Lingzhaojun
添加版本自动注释脚本
* huangsl 2007-09-19 for rk27.
*
*********************************************************************/
/*********************************************************************************
Name : ProcMain
Desc : 所有应用的入口函数.
Param :
Proc : 进程句柄,指向当前进程,由系统加载时提供。
Return : 0: 成功,否则失败. 返回非0 值会导致系统无法加载改进程.
Global : 无.
Note :
Author : HUANGSL
Log :
*********************************************************************************/
#ifndef _ROCK_SETUP_H_
#define _ROCK_SETUP_H_
/****************************************************************/
#define RockSemObtain( a )
#define RockSemRelease( b )
/****************************************************************/
//定义 文字 显示的坐标.
#define SETUP_FILEX 40
#define SETUP_FILEY 120
#define RKUD_HEAD_MAX 4096 // WORDS
/****************************************************************/
/*
安装采用脚本的形式,附加在 源模块或者应用的后面。通过接口 setup 获得安装数据指针.
要点 :
1. 目标路径 统一定义(注册表控制).
2. 规定统一的注册表 信息,包括安装语言.
*/
/****************************************************************/
//根据标志区分 必须具有的 OPTION (高位表示),同时可以给操作分类,比如 UI 显示与否,怎样显示等等。
//根据按照类型,操作有很大差异.
#define RKST_OPTION_NULL 0 //无,结束标志.
//NOT CHANGE!!--LOADER 兼容.
#define RKST_OPTION_MKDIR 1 //建立目录.
#define RKST_OPTION_FCOPY 2 //拷贝文件 . 080116,由于源文件只有一个,解压,因此,此命令专门
// 用于拷贝 文件,而不是解压.文件名只能是短文件名.
#define RKST_OPTION_FSOPER 3 //为了和 打包兼容,可以对打包文件专门设置一个操作.
//兼容替换功能.
#define RKST_OPTION_FORMAT 4 //格式化 命令. 只能是系统盘.
#define RKST_OPTION_LOADER 5 //更新 二级 LOADER.
//低端 显示功能.
#define RKST_OPTION_DISPBMP 10 //显示图片,输入为 文件.
#define RKST_OPTION_DISPSTR 11 //显示 文本,输入为 UNICODE 码 -- 转换为 二进制位图.
#define RKST_OPTION_SETFONT 12 //设置 ASCII 码的 字库文件(FONT 12,16,24).
#define RKST_OPTION_DELAY 20 // 延迟,用于显示.MS
//高级功能。
#define RKST_OPTION_SYSTEM 100 //注册表,包括 名称和值,以 $$ 符号分开.
#define RKST_OPTION_UILOGO 100 // 显示 安装界面或者 动画界面 ,
// 根据 安装不同,分为动画和位图几种.
#define RKST_OPTION_README 101 // 显示 软件说明
#define RKST_OPTION_COPYRIGHT 102 // 显示 版权管理
#define RKST_OPTION_SELECT 103 // 显示 是否安装 界面 .
#define RKST_OPTION_RESTART 104 // 重启 提示.
#define RKST_OPTION_REGKEY 120 //注册表,包括 名称和值,以 $$ 符号分开.
#define RKST_OPTION_VERSION 121 // 版本信息,必须为 第一个指令.
#define RKST_OPTION_FREPLACE 130 //替换文件.
#define RKST_OPTION_FPREPLACE 131 //替换文件部分内容.
#define RKST_OPTION_FSDEL 132 //删除文件.
// 080325,FOR BMP EDIT.
#define RKST_OPTION_SPACE 200 //预留空间,大小单位为 M.
// 080506,增加一个文件,用于增加信息,升级时忽略.
#define RKST_OPTION_ADDFILE 300 //预留空间,大小单位为 M.
// 可以最为 TRACE 命令的输入.直接地址调用函数,或者固定命令.
#define RKST_OPTION_SETMEM 1000 //设置 MEMO 的值.
#define RKST_OPTION_GETMEN 1001 //打印 MEMO 的值.
/****************************************************************/
#define RKST_ARGFLAG_STR (0x1<<0) //参数在 str 里面传递.
#define RKST_ARGFLAG_VOID (0x1<<1) //参数 通过 void* 传递.
/****************************************************************/
#define RKST_RESULT_OKSTAY 0
#define RKST_RESULT_OKNEXT 1
#define RKST_RESULT_OKMAX 9 // 小于该值 表示正确.
#define RKST_RESULT_QUIT 10
#define RKST_RESULT_ERROR 11
#define RKST_RESULT_FDEL 0xfffffffd //删除固件文件.
/****************************************************************/
// 输出.头部信息.该结构体大小和 IMAGE_NAMEDENTRY 兼容.
typedef struct _RK_SETUPITEM_STR
{
INT32U Size;
INT32U Option;
INT32U OffsetToData;
INT32U SizeOfBytes;
INT32U Param[4]; //参数.最多 4个.
} RK_SETUPITEM_STR, *PRK_SETUPITEM_STR;
/****************************************************************/
//二级 LOADER 的 信息.
#define SIGNINFORMATION "Porsche9Copyright2007Rockchip";
#define SIZEOFSIGN 32
#define SIZEOFCHECKVALUE 16
typedef struct _rk_time
{
unsigned short usYear;
unsigned short usMonth;
unsigned short usDate;
unsigned short usHour;
unsigned short usMinute;
unsigned short usSecond;
} RK_TIME;
typedef struct _porsche9_rfw_head
{
char chrSign[SIZEOFSIGN]; // 32
unsigned char chrCheckBytes[SIZEOFCHECKVALUE]; // 16
RK_TIME structFWtime; // 12
unsigned int uiMasterVersion;
unsigned int uiSlaveVersion;
unsigned int uiUSBDataOffset;
int uiUSBDataLen;
unsigned int uiUSBProgOffset;
int uiUSBProgLen;
unsigned int uiBootCodeOffset;
int uiBootCodeLen;
unsigned int uiUSBProg2ndOffset;
int iUSBProg2ndLen;
unsigned int uiVersionFlag; // 从0开始赋值,以便检查各工具版本之用
}_PORSCHE9_RFW_HEAD;
// 对 RKW 操作的句柄,作为 传入和传出 参数.
// NULL 表示操作 失败.
typedef void * RKW_HANDLE ;
#define RKW_OK 0 //返回值为 RKW_OK 表示操作OK,其他表示错误.
/****************************************************************/
#if defined(SETUP)
INT32U SetupMain(INT32U fileOffset);
INT32U ISetupDispBmp(INT32U x , INT32U y , INT32U offSet , INT32U size , MY_FILE* file);
INT32U ISetupDispString(INT32U x , INT32U y , INT32U offSet , INT32U size , MY_FILE* file);
INT32U ISetupDispDrawString(INT32U x , INT32U y , char *string , INT32U font);
INT32U ISetupDispFontFile(INT32U offSet12 , INT32U offSet16,
INT32U offSet24 , INT32U TotalSize, MY_FILE* file);
//imagechk.c
void RkldSetFwRError(void);
extern void * _gpAppHeapHandle;
#endif
// 080505,huangsl,用于RKW的PC解压,压缩工具.
#if defined( _MSC_VER )
int FSMakeDir(char *Path);
#endif
//SETUP.C
void SetupDelayMs(INT32U ms);
//UPDATE.C
void *UpdateGetFirstAction(INT32U *Err); // char* fwFile ,
void UpdateCancle(void *lastAction);
void *UpdateGetNextAction(void *lastAction);
/****************************************************************/
#endif
//---------END OF FILE---------//
/****************************************************************/
/****************************************************************/
//---------END OF FILE---------//
/****************************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -