添加bsp_init,sys_api段

This commit is contained in:
2025-07-06 02:53:08 +08:00
parent fed557e2e1
commit 4922fdfa46
4 changed files with 136 additions and 136 deletions

View File

@@ -16,8 +16,8 @@ typedef struct{
// ʹ<><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڳ<EFBFBD>ʼ<EFBFBD><CABC> // ʹ<><CAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڳ<EFBFBD>ʼ<EFBFBD><CABC>
#define extern_init(name_,init_)\ #define extern_init(name_,init_)\
const char __init_##name_[] __attribute__((section("name"))) = #name_;\ const char __init_##name_[] __attribute__((section(".name"))) = #name_;\
__attribute__((used)) const init_call_fun __bsp_init_##name_ __attribute__((section("bsp_init")))=\ __attribute__((used,section(".bsp_init"))) const init_call_fun __bsp_init_##name_ =\
{\ {\
.name=__init_##name_,\ .name=__init_##name_,\
.init=init_,\ .init=init_,\

View File

@@ -38,19 +38,19 @@ api_table_struct g_api_table;
static int api_table_init(void) static int api_table_init(void)
{ {
extern const unsigned int Load$$sys_api$$Base; extern const unsigned int sys_api_start;
extern const unsigned int Load$$sys_api$$Limit; extern const unsigned int sys_api_end;
api_item_struct *start=(api_item_struct *)&Load$$sys_api$$Base; api_item_struct *start=(api_item_struct *)&sys_api_start;
api_item_struct *end=(api_item_struct *)&Load$$sys_api$$Limit; api_item_struct *end=(api_item_struct *)&sys_api_end;
if(g_api_table.fun_table==0) if(g_api_table.fun_table==0)
{ {
g_api_table.api_num=end-start; g_api_table.api_num=end-start;
g_api_table.api_num+=10; g_api_table.api_num+=10;
g_api_table.fun_table=malloc(sizeof(void *)*g_api_table.api_num); g_api_table.fun_table=malloc(sizeof(void *)*g_api_table.api_num);
// memset(g_api_table.fun_table,0x55,sizeof(void *)*g_api_table.api_num); // memset(g_api_table.fun_table,0x55,sizeof(void *)*g_api_table.api_num);
for(;start<end;start++) for(;start<end;start++)
{ {
if(start->index<g_api_table.api_num-1) if(start->index<g_api_table.api_num-1)
@@ -63,9 +63,9 @@ static int api_table_init(void)
} }
} }
} }
API_TABLE_PTR=g_api_table.fun_table; API_TABLE_PTR=g_api_table.fun_table;
return 0; return 0;
} }
@@ -87,40 +87,40 @@ api_item(rt_thread_mdelay,5);
api_item(rt_thread_create,6); api_item(rt_thread_create,6);
api_item(rt_thread_startup,7); api_item(rt_thread_startup,7);
api_item(rt_thread_delete,8); api_item(rt_thread_delete,8);
api_item(rt_timer_create,9); api_item(rt_timer_create,9);
api_item(rt_timer_delete,10); api_item(rt_timer_delete,10);
api_item(rt_timer_start,11); api_item(rt_timer_start,11);
api_item(rt_timer_stop,12); api_item(rt_timer_stop,12);
api_item(rt_sem_create,13); api_item(rt_sem_create,13);
api_item(rt_sem_delete,14); api_item(rt_sem_delete,14);
api_item(rt_sem_take,15); api_item(rt_sem_take,15);
api_item(rt_sem_release,16); api_item(rt_sem_release,16);
api_item(rt_mutex_create,17); api_item(rt_mutex_create,17);
api_item(rt_mutex_delete,18); api_item(rt_mutex_delete,18);
api_item(rt_mutex_take,19); api_item(rt_mutex_take,19);
api_item(rt_mutex_release,20); api_item(rt_mutex_release,20);
api_item(rt_event_create,21); api_item(rt_event_create,21);
api_item(rt_event_delete,22); api_item(rt_event_delete,22);
api_item(rt_event_send,23); api_item(rt_event_send,23);
api_item(rt_event_recv,24); api_item(rt_event_recv,24);
api_item(rt_mb_create,25); api_item(rt_mb_create,25);
api_item(rt_mb_delete,26); api_item(rt_mb_delete,26);
api_item(rt_mb_send,27); api_item(rt_mb_send,27);
api_item(rt_mb_send_wait,28); api_item(rt_mb_send_wait,28);
api_item(rt_mb_recv,29); api_item(rt_mb_recv,29);
api_item(rt_mq_create,30); api_item(rt_mq_create,30);
api_item(rt_mq_delete,31); api_item(rt_mq_delete,31);
api_item(rt_mq_send,32); api_item(rt_mq_send,32);
api_item(rt_mq_urgent,33); api_item(rt_mq_urgent,33);
api_item(rt_mq_recv,34); api_item(rt_mq_recv,34);
@@ -162,7 +162,7 @@ api_item(gbk2uni_str,45);
api_item(uni2gbk_str,46); api_item(uni2gbk_str,46);
api_item(gbk2utf8_str,47); api_item(gbk2utf8_str,47);
api_item(utf82gbk_str,48); api_item(utf82gbk_str,48);
api_item(FLASH_ReadData,49); api_item(FLASH_ReadData,49);
api_item(FLASH_WriteData,50); api_item(FLASH_WriteData,50);
api_item(FLASH_EraseOneSector,51); api_item(FLASH_EraseOneSector,51);
@@ -178,11 +178,11 @@ api_item(FLASH_GetFileNum,60);
api_item(FLASH_GetFileInfo,61); api_item(FLASH_GetFileInfo,61);
api_item(FLASH_DeleteFile,62); api_item(FLASH_DeleteFile,62);
api_item(FLASH_SaveFile,63); api_item(FLASH_SaveFile,63);
api_item(SysFile_GetFileByName,64); api_item(SysFile_GetFileByName,64);
api_item(SysFile_Updata,65); api_item(SysFile_Updata,65);
api_item(SysFile_UpdataByIrq,66); api_item(SysFile_UpdataByIrq,66);
api_item(date_is_leap_year,67); api_item(date_is_leap_year,67);
api_item(date_get_month_day_max,68); api_item(date_get_month_day_max,68);
api_item(date_get_week_by_day,69); api_item(date_get_week_by_day,69);
@@ -196,7 +196,7 @@ api_item(date_rtc_get_date,76);
api_item(date_rtc_get_time,77); api_item(date_rtc_get_time,77);
api_item(date_rtc_set_date,78); api_item(date_rtc_set_date,78);
api_item(date_rtc_set_time,79); api_item(date_rtc_set_time,79);
api_item(app_run_path,80); api_item(app_run_path,80);
api_item(app_run,81); api_item(app_run,81);
api_item(appm_find,82); api_item(appm_find,82);
@@ -204,7 +204,7 @@ api_item(appm_get,83);
api_item(appm_get_running_num,84); api_item(appm_get_running_num,84);
api_item(app_exit,85); api_item(app_exit,85);
api_item(app_get_name_from_file,86); api_item(app_get_name_from_file,86);
api_item(mp3_get_support,87); api_item(mp3_get_support,87);
api_item(mp3_get_support_name,88); api_item(mp3_get_support_name,88);
api_item(mp3_play_song,89); api_item(mp3_play_song,89);
@@ -222,53 +222,53 @@ api_item(mp3_get_vol,99);
// GUI<55><49><EFBFBD><EFBFBD>api // GUI<55><49><EFBFBD><EFBFBD>api
/* <20><><EFBFBD>º<EFBFBD><C2BA><EFBFBD><EFBFBD><EFBFBD>ͬһ<CDAC><D2BB><EFBFBD><EFBFBD>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD>ͬһ<CDAC>̵߳<DFB3><CCB5><EFBFBD> */ /* <20><><EFBFBD>º<EFBFBD><C2BA><EFBFBD><EFBFBD><EFBFBD>ͬһ<CDAC><D2BB><EFBFBD><EFBFBD>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD>ͬһ<CDAC>̵߳<DFB3><CCB5><EFBFBD> */
api_item(QUEUE_Init,100); api_item(QUEUE_Init,100);
api_item(QUEUE_Delete,101); api_item(QUEUE_Delete,101);
api_item(QUEUE_Out,102); api_item(QUEUE_Out,102);
api_item(QUEUE_In,103); api_item(QUEUE_In,103);
api_item(QUEUE_CheckStart,104); api_item(QUEUE_CheckStart,104);
api_item(QUEUE_Check,105); api_item(QUEUE_Check,105);
/* <20><><EFBFBD>º<EFBFBD><C2BA><EFBFBD><EFBFBD>̰߳<DFB3>ȫ */ /* <20><><EFBFBD>º<EFBFBD><C2BA><EFBFBD><EFBFBD>̰߳<DFB3>ȫ */
api_item(POS_RoundPix,106); api_item(POS_RoundPix,106);
api_item(POS_InRect,107); api_item(POS_InRect,107);
api_item(POS_RectIntersection,108); api_item(POS_RectIntersection,108);
api_item(POS_RectContain,109); api_item(POS_RectContain,109);
api_item(POS_RectSub,110); api_item(POS_RectSub,110);
api_item(POS_RectEqual,111); api_item(POS_RectEqual,111);
/* <20><><EFBFBD>º<EFBFBD><C2BA><EFBFBD>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD>ui<75>̵߳<DFB3><CCB5><EFBFBD> */ /* <20><><EFBFBD>º<EFBFBD><C2BA><EFBFBD>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD>ui<75>̵߳<DFB3><CCB5><EFBFBD> */
api_item(WIN_CreatThread,112); api_item(WIN_CreatThread,112);
api_item(WIN_CreatThreadPro,113); api_item(WIN_CreatThreadPro,113);
api_item(WIN_GetExWorkFunStat,114); api_item(WIN_GetExWorkFunStat,114);
api_item(WIN_ExWorkFunClear,115); api_item(WIN_ExWorkFunClear,115);
api_item(WIN_GetWordData,116); api_item(WIN_GetWordData,116);
/* <20><><EFBFBD>º<EFBFBD><C2BA><EFBFBD><EFBFBD>̰߳<DFB3>ȫ */ /* <20><><EFBFBD>º<EFBFBD><C2BA><EFBFBD><EFBFBD>̰߳<DFB3>ȫ */
api_item(WIN_DecodeImg,117); api_item(WIN_DecodeImg,117);
/* <20><><EFBFBD>º<EFBFBD><C2BA><EFBFBD><EFBFBD>̰߳<DFB3>ȫ */ /* <20><><EFBFBD>º<EFBFBD><C2BA><EFBFBD><EFBFBD>̰߳<DFB3>ȫ */
api_item(WIN_PlaceExtData,118); api_item(WIN_PlaceExtData,118);
api_item(WIN_RunInWindow,119); api_item(WIN_RunInWindow,119);
/* <20><><EFBFBD>º<EFBFBD><C2BA><EFBFBD>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD>ui<75>̵߳<DFB3><CCB5><EFBFBD> */ /* <20><><EFBFBD>º<EFBFBD><C2BA><EFBFBD>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD>ui<75>̵߳<DFB3><CCB5><EFBFBD> */
// WIN_Init, // WIN_Init,
api_item(WIN_GetWinStruct,120); api_item(WIN_GetWinStruct,120);
api_item(WIN_SetRunCallBack,121); api_item(WIN_SetRunCallBack,121);
@@ -307,17 +307,17 @@ api_item(WIN_SetBackFun,151);
api_item(WIN_SetColor,152); api_item(WIN_SetColor,152);
api_item(WIN_SetBkColor,153); api_item(WIN_SetBkColor,153);
api_item(WIN_ShowWindow,154); api_item(WIN_ShowWindow,154);
/* <20><><EFBFBD>º<EFBFBD><C2BA><EFBFBD>ֻ<EFBFBD><D6BB><EFBFBD>ڷ<EFBFBD>ui<75>̵߳<DFB3><CCB5><EFBFBD> */ /* <20><><EFBFBD>º<EFBFBD><C2BA><EFBFBD>ֻ<EFBFBD><D6BB><EFBFBD>ڷ<EFBFBD>ui<75>̵߳<DFB3><CCB5><EFBFBD> */
api_item(WIN_StorTouchStruct,155); api_item(WIN_StorTouchStruct,155);
api_item(WIN_StorKeyStruct,156); api_item(WIN_StorKeyStruct,156);
/* <20><><EFBFBD>º<EFBFBD><C2BA><EFBFBD>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD>ui<75>̵߳<DFB3><CCB5><EFBFBD> */ /* <20><><EFBFBD>º<EFBFBD><C2BA><EFBFBD>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD>ui<75>̵߳<DFB3><CCB5><EFBFBD> */
api_item(WIN_ClearKeyQueue,157); api_item(WIN_ClearKeyQueue,157);
api_item(WIN_ClearTouchQueue,158); api_item(WIN_ClearTouchQueue,158);
api_item(WIN_KeyShieldOn,159); api_item(WIN_KeyShieldOn,159);
@@ -340,10 +340,10 @@ api_item(WIN_SetInvalidRectWhenTop,175);
api_item(WIN_Move,176); api_item(WIN_Move,176);
api_item(WIN_SetPos,177); api_item(WIN_SetPos,177);
api_item(WIN_SetSize,178); api_item(WIN_SetSize,178);
/* <20><><EFBFBD>º<EFBFBD><C2BA><EFBFBD>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD>ui<75>̵߳<DFB3><CCB5><EFBFBD> */ /* <20><><EFBFBD>º<EFBFBD><C2BA><EFBFBD>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD>ui<75>̵߳<DFB3><CCB5><EFBFBD> */
api_item(WIN_CreatTimer,179); api_item(WIN_CreatTimer,179);
@@ -386,23 +386,23 @@ api_item(WIN_LcdDrawImagByAlpha,208);
api_item(WIN_LcdClear,209); api_item(WIN_LcdClear,209);
api_item(WIN_LcdClearRect,210); api_item(WIN_LcdClearRect,210);
api_item(WIN_LcdGetColors,211); api_item(WIN_LcdGetColors,211);
/* <20><><EFBFBD>º<EFBFBD><C2BA><EFBFBD>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD>ui<75>̵߳<DFB3><CCB5><EFBFBD> */ /* <20><><EFBFBD>º<EFBFBD><C2BA><EFBFBD>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD>ui<75>̵߳<DFB3><CCB5><EFBFBD> */
api_item(WIN_SetFontSize,212); api_item(WIN_SetFontSize,212);
api_item(WIN_SetFontType,213); api_item(WIN_SetFontType,213);
api_item(WIN_GetFontHight,214); api_item(WIN_GetFontHight,214);
api_item(WIN_GetFontWidth,215); api_item(WIN_GetFontWidth,215);
api_item(WIN_SetFontMode,216); api_item(WIN_SetFontMode,216);
/* <20><><EFBFBD>º<EFBFBD><C2BA><EFBFBD>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD>ui<75>̵߳<DFB3><CCB5><EFBFBD> */ /* <20><><EFBFBD>º<EFBFBD><C2BA><EFBFBD>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD>ui<75>̵߳<DFB3><CCB5><EFBFBD> */
api_item(WIN_DrawPointSafe,217); api_item(WIN_DrawPointSafe,217);
api_item(WIN_DrawPointNormal,218); api_item(WIN_DrawPointNormal,218);
api_item(WIN_DrawPointColorSafe,219); api_item(WIN_DrawPointColorSafe,219);
@@ -442,21 +442,21 @@ api_item(WIN_DrawImagByAlphaAnti,252);
api_item(WIN_Clear,253); api_item(WIN_Clear,253);
api_item(WIN_GetTxtRectSize,254); api_item(WIN_GetTxtRectSize,254);
api_item(WIN_GetImageSize,255); api_item(WIN_GetImageSize,255);
/* <20><><EFBFBD>º<EFBFBD><C2BA><EFBFBD>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD>ui<75>̵߳<DFB3><CCB5><EFBFBD> */ /* <20><><EFBFBD>º<EFBFBD><C2BA><EFBFBD>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD>ui<75>̵߳<DFB3><CCB5><EFBFBD> */
api_item(WIN_GetPic,256); api_item(WIN_GetPic,256);
api_item(WIN_GetPicNoAlpha,257); api_item(WIN_GetPicNoAlpha,257);
api_item(WIN_PicInsidePic,258); api_item(WIN_PicInsidePic,258);
api_item(WIN_GetPicLive,259); api_item(WIN_GetPicLive,259);
api_item(WIN_DrawPic,260); api_item(WIN_DrawPic,260);
/* <20><><EFBFBD>º<EFBFBD><C2BA><EFBFBD>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD>ui<75>̵߳<DFB3><CCB5><EFBFBD> */ /* <20><><EFBFBD>º<EFBFBD><C2BA><EFBFBD>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD>ui<75>̵߳<DFB3><CCB5><EFBFBD> */
api_item(MSGBOX_SetTitle,261); api_item(MSGBOX_SetTitle,261);
@@ -468,12 +468,12 @@ api_item(MSGBOX_Tips,266);
api_item(MSGBOX_TipsTime,267); api_item(MSGBOX_TipsTime,267);
api_item(MSGBOX_Inquiry,268); api_item(MSGBOX_Inquiry,268);
api_item(MSGBOX_Select,269); api_item(MSGBOX_Select,269);
/* <20><><EFBFBD>º<EFBFBD><C2BA><EFBFBD>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD>ui<75>̵߳<DFB3><CCB5><EFBFBD> */ /* <20><><EFBFBD>º<EFBFBD><C2BA><EFBFBD>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD>ui<75>̵߳<DFB3><CCB5><EFBFBD> */
api_item(WIN_CreatButton,270); api_item(WIN_CreatButton,270);
api_item(BUTTON_SetKeyString,271); api_item(BUTTON_SetKeyString,271);
@@ -481,26 +481,26 @@ api_item(BUTTON_SetKeyString,271);
/* <20><><EFBFBD>º<EFBFBD><C2BA><EFBFBD>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD>ui<75>̵߳<DFB3><CCB5><EFBFBD> */ /* <20><><EFBFBD>º<EFBFBD><C2BA><EFBFBD>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD>ui<75>̵߳<DFB3><CCB5><EFBFBD> */
api_item(WIN_CreatInput,272); api_item(WIN_CreatInput,272);
api_item(INPUT_KeyBoard,273); api_item(INPUT_KeyBoard,273);
/* <20><><EFBFBD>º<EFBFBD><C2BA><EFBFBD>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD>ui<75>̵߳<DFB3><CCB5><EFBFBD> */ /* <20><><EFBFBD>º<EFBFBD><C2BA><EFBFBD>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD>ui<75>̵߳<DFB3><CCB5><EFBFBD> */
api_item(WIN_CreatList,274); api_item(WIN_CreatList,274);
api_item(LIST_SetItem,275); api_item(LIST_SetItem,275);
api_item(LIST_SetItemHeight,276); api_item(LIST_SetItemHeight,276);
api_item(LIST_SetYOrigin,277); api_item(LIST_SetYOrigin,277);
api_item(LIST_SetYMove,278); api_item(LIST_SetYMove,278);
/* <20><><EFBFBD>º<EFBFBD><C2BA><EFBFBD>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD>ui<75>̵߳<DFB3><CCB5><EFBFBD> */ /* <20><><EFBFBD>º<EFBFBD><C2BA><EFBFBD>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD>ui<75>̵߳<DFB3><CCB5><EFBFBD> */
api_item(WIN_CreatPage,279); api_item(WIN_CreatPage,279);
api_item(PAGE_SetBackPic,280); api_item(PAGE_SetBackPic,280);
api_item(PAGE_SetItem,281); api_item(PAGE_SetItem,281);
@@ -509,53 +509,53 @@ api_item(PAGE_SetItemHeight,283);
api_item(PAGE_SetItemIndent,284); api_item(PAGE_SetItemIndent,284);
api_item(PAGE_IndexAdd,285); api_item(PAGE_IndexAdd,285);
api_item(PAGE_IndexSub,286); api_item(PAGE_IndexSub,286);
/* <20><><EFBFBD>º<EFBFBD><C2BA><EFBFBD>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD>ui<75>̵߳<DFB3><CCB5><EFBFBD> */ /* <20><><EFBFBD>º<EFBFBD><C2BA><EFBFBD>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD>ui<75>̵߳<DFB3><CCB5><EFBFBD> */
api_item(POPUP_SelectItem,287); api_item(POPUP_SelectItem,287);
api_item(POPUP_AddItem,288); api_item(POPUP_AddItem,288);
/* <20><><EFBFBD>º<EFBFBD><C2BA><EFBFBD>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD>ui<75>̵߳<DFB3><CCB5><EFBFBD> */ /* <20><><EFBFBD>º<EFBFBD><C2BA><EFBFBD>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD>ui<75>̵߳<DFB3><CCB5><EFBFBD> */
api_item(WORKING_DoWork,289); api_item(WORKING_DoWork,289);
/* <20><><EFBFBD>º<EFBFBD><C2BA><EFBFBD>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD>ui<75>̵߳<DFB3><CCB5><EFBFBD> */ /* <20><><EFBFBD>º<EFBFBD><C2BA><EFBFBD>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD>ui<75>̵߳<DFB3><CCB5><EFBFBD> */
api_item(SCROLLBAR_SelectItem,290); api_item(SCROLLBAR_SelectItem,290);
api_item(SCROLLBAR_SelectNum,291); api_item(SCROLLBAR_SelectNum,291);
api_item(SCROLLBAR_AddItem,292); api_item(SCROLLBAR_AddItem,292);
/* <20><><EFBFBD>º<EFBFBD><C2BA><EFBFBD>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD>ui<75>̵߳<DFB3><CCB5><EFBFBD> */ /* <20><><EFBFBD>º<EFBFBD><C2BA><EFBFBD>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD>ui<75>̵߳<DFB3><CCB5><EFBFBD> */
api_item(INPUTBOX_InputChars,293); api_item(INPUTBOX_InputChars,293);
api_item(INPUTBOX_Clear,294); api_item(INPUTBOX_Clear,294);
api_item(INPUTBOX_SetChars,295); api_item(INPUTBOX_SetChars,295);
/* <20><><EFBFBD>º<EFBFBD><C2BA><EFBFBD>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD>ui<75>̵߳<DFB3><CCB5><EFBFBD> */ /* <20><><EFBFBD>º<EFBFBD><C2BA><EFBFBD>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD>ui<75>̵߳<DFB3><CCB5><EFBFBD> */
api_item(RECORD_DrawRecord,296); api_item(RECORD_DrawRecord,296);
api_item(RECORD_AddMsg,297); api_item(RECORD_AddMsg,297);
/* <20><><EFBFBD>º<EFBFBD><C2BA><EFBFBD>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD>ui<75>̵߳<DFB3><CCB5><EFBFBD> */ /* <20><><EFBFBD>º<EFBFBD><C2BA><EFBFBD>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD>ui<75>̵߳<DFB3><CCB5><EFBFBD> */
api_item(WIN_CreatTouch,298); api_item(WIN_CreatTouch,298);
api_item(WIN_CreatTouchEx,299); api_item(WIN_CreatTouchEx,299);
api_item(WIN_CreatTouchChild,300); api_item(WIN_CreatTouchChild,300);
@@ -563,7 +563,7 @@ api_item(WIN_CreatTouchBase,301);
api_item(TOUCHWIN_AddChild,302); api_item(TOUCHWIN_AddChild,302);
api_item(TOUCHWIN_ClearChild,303); api_item(TOUCHWIN_ClearChild,303);
api_item(TOUCHWIN_SetOutCon,304); api_item(TOUCHWIN_SetOutCon,304);
@@ -581,7 +581,7 @@ api_item(mymalloc_fast,309);
api_item(mymemset ,310); api_item(mymemset ,310);
api_item(mymemcpy,311); api_item(mymemcpy,311);
api_item(mem_perused,312); api_item(mem_perused,312);
api_item(exmem_perused,313); api_item(exmem_perused,313);
//api_item(ccm_perused,314); //api_item(ccm_perused,314);

View File

@@ -20,10 +20,10 @@ typedef struct
#define api_item(fun_,index_) \ #define api_item(fun_,index_) \
__attribute__((used)) static const api_item_struct api_##index_ __attribute__((section("sys_api")))=\ __attribute__((used,section(".sys_api"))) static const api_item_struct api_##index_ =\
{.fun=fun_,.index=index_} {.fun=fun_,.index=index_}
#endif #endif

View File

@@ -126,7 +126,7 @@ SECTIONS
.sys_api :{ .sys_api :{
. = ALIGN(4); . = ALIGN(4);
sys_api_start = .; sys_api_start = .;
*(.sys_api) KEEP(*(.sys_api))
sys_api_end = .; sys_api_end = .;
. = ALIGN(4); . = ALIGN(4);
} >FLASH } >FLASH
@@ -134,7 +134,7 @@ SECTIONS
.bsp_init :{ .bsp_init :{
. = ALIGN(4); . = ALIGN(4);
bsp_init_start = .; bsp_init_start = .;
*(bsp_init) KEEP(*(.bsp_init))
bsp_init_end = .; bsp_init_end = .;
. = ALIGN(4); . = ALIGN(4);
} >FLASH } >FLASH
@@ -173,7 +173,7 @@ SECTIONS
_sidata = LOADADDR(.data); _sidata = LOADADDR(.data);
/* Initialized data sections goes into RAM, load LMA copy after code */ /* Initialized data sections goes into RAM, load LMA copy after code */
.data : .data :
{ {
. = ALIGN(4); . = ALIGN(4);
_sdata = .; /* create a global symbol at data start */ _sdata = .; /* create a global symbol at data start */
@@ -186,11 +186,11 @@ SECTIONS
_siccmram = LOADADDR(.ccmram); _siccmram = LOADADDR(.ccmram);
/* CCM-RAM section /* CCM-RAM section
* *
* IMPORTANT NOTE! * IMPORTANT NOTE!
* If initialized variables will be placed in this section, * If initialized variables will be placed in this section,
* the startup code needs to be modified to copy the init-values. * the startup code needs to be modified to copy the init-values.
*/ */
.ccmram : .ccmram :
{ {
@@ -198,12 +198,12 @@ SECTIONS
_sccmram = .; /* create a global symbol at ccmram start */ _sccmram = .; /* create a global symbol at ccmram start */
*(.ccmram) *(.ccmram)
*(.ccmram*) *(.ccmram*)
. = ALIGN(4); . = ALIGN(4);
_eccmram = .; /* create a global symbol at ccmram end */ _eccmram = .; /* create a global symbol at ccmram end */
} >CCMRAM AT> FLASH } >CCMRAM AT> FLASH
/* Uninitialized data section */ /* Uninitialized data section */
. = ALIGN(4); . = ALIGN(4);
.bss : .bss :
@@ -231,7 +231,7 @@ SECTIONS
. = ALIGN(8); . = ALIGN(8);
} >RAM } >RAM
/* Remove information from the standard libraries */ /* Remove information from the standard libraries */
/DISCARD/ : /DISCARD/ :