⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 setup.h

📁 瑞星微公司RK27XX系列芯片的SDK开发包
💻 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 + -