|
typedef struct
{
uint8 ExitMark; //
uint8 Cursor; //
uint8 PageNo; //
uint8 Index; //
uint8 DispNum; //
uint8 MaxPage; //
}MENU_PRMT;
// 菜单执行
typedef struct
{
char *MenuName; //
void (*Function)(void); //
}MENU_TABLE;
void Menu_Process(uint8 *menuName, MENU_PRMT *prmt, MENU_TABLE *table, uint8 num)
{
uint8 key;
Menu_PrmtInit(prmt, 3, num-3+1); //
do
{
Disp_String(0, 0, menuName); //
Menu_Display(table, prmt->PageNo, prmt->DispNum, prmt->Cursor);
key = Menu_KeyScan(); //
if (Menu_Move(prmt, key) == 0x00) //
{
Clear_Draw(0x00); //
table[prmt->Index].Function(); // 出错的地方
}
} while (prmt->ExitMark == 0);
}
void Menu_Struct_Init()
{//======================主菜单==================================
MainSet[0].MenuName = "1. 模式选择 ";
MainSet[0].Function = Menu_ModeSet;
MainSet[1].MenuName = "2. 时间设置 ";
MainSet[1].Function = Menu_TimeSet;
MainSet[2].MenuName = "3. 安全设置 ";
MainSet[2].Function = Menu_SafeSet;
MainSet[3].MenuName = "4. 退 出 ";
MainSet[3].Function = Menu_ExitMain;
}
因为合泰全局变量非常量无法赋初值,所以只能在函数中给结构体赋值,但是这里有出现这个错误了,,所有函数之前已声明,具体的 fpbase、fp__Menu_ModeSet不是我定义的变量,貌似的汇编阶段自己出来的什么指针相关的,我理解的意思是不知道函数入口,,因为我试了一下,如果在赋初值之前先调用如Menu_ModeSet()函数,那么后面的fp__Menu_ModeSet报错不会出现。fp是指针的意思?然后这种问题具体可以怎么解决呢!希望大大指点迷津!
下面为报错:
F:\MYworkpalce\HTproj\HI_Main\HTtest.c: 200: (800) undefined symbol "fpbase"
F:\MYworkpalce\HTproj\HI_Main\HTtest.c: 200: (800) undefined symbol "fp__Menu_ModeSet"
F:\MYworkpalce\HTproj\HI_Main\HTtest.c: 208: (800) undefined symbol "fp__Menu_TimeSet"
F:\MYworkpalce\HTproj\HI_Main\HTtest.c: 216: (800) undefined symbol "fp__Menu_SafeSet"
F:\MYworkpalce\HTproj\HI_Main\HTtest.c: 224: (800) undefined symbol "fp__Menu_ExitMain" |
阿莫论坛20周年了!感谢大家的支持与爱护!!
一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。
|