gn編譯
1. 求教關於樹莓派刷安卓2.3的問題
樹莓派的 官方系統rasbian默認安裝了python2和python3 但是版本都很舊了,可能與部分包不兼容,有兩種解決方案,但都需要花費較長的時間 自行編譯Python的安裝包/infopi/p/update_python_raspbian.html 更改發行版本為最新的Jessie,執行以下三步 1234sed -i 's/wheezy/jessie/g' /etc/apt/sources.listsudo <a href="https:///s?wd=apt-get&tn=44039180_cpr&fenlei=-bIi4WUvYETgN-" target="_blank" class="-highlight">apt-get</a> updatesudo <a href="https:///s?wd=apt-get&tn=44039180_cpr&fenlei=-bIi4WUvYETgN-" target="_blank" class="-highlight">apt-get</a> upgradesudo <a href="https:///s?wd=apt-get&tn=44039180_cpr&fenlei=-bIi4WUvYETgN-" target="_blank" class="-highlight">apt-get</a> dist-upgrade第二種方案還有可能出現無法正常進入系統的情況
2. iappv5免費到底是什麼
控制項。
軟體名稱:iApp裕語言V5.0公測版
軟體更新軌跡:
6.3更新內容:修復V3的nsz指定數組類型返回null異常
修復編輯框網路輸入法華為版無法刪除異常
修復部分BUG
6.2更新內容:修復V3的V7列表設置瀑布流滾動事件閃退
修復V5由模塊錯誤導致的打包或編譯閃退
5.31更新內容:新增V5系統功能的感測器xt.gn().cgq()
修復V5類模塊無錯誤時任然提示錯誤的異常
修復部分BUG
5.30更新內容:修復V5快速點擊進入代碼編輯界面多次打開異常
修復V5類模塊異常列表無法點擊跳轉異常位置異常
修復V5對象子成員賦值類型轉換異常
修復部分輸入法編程代碼編輯框異常
修復部分BUG
5.28更新內容:更新v3支持多文件上傳huf代碼
更新v5完善的代碼詳細提示以及代碼用法舉例
重做v5導入的SDK資源整合
重做v5代碼錯異常反饋
修復v5自定義SDK代碼提示無ID異常
修復v5自定義控制項屬性閃退異常
修復v5多SDK整合可能導致的資源屬性重復異常
調整互動內容顯示
修復部分BUG
5.22更新內容:新增V5加速編譯打包,在管理里開啟
新增V5的自定義控制項,在添加控制項的底部
修復部分BUG
5.16更新內容:新增界麵皮膚主題,在管理里選擇設置
新增V5創建界面輸入中文轉備注
新增V5的SDK管理支持ilib,aar,jar導入
修復部分BUG
5.13更新內容:新增V5的SDK管理支持ilib,aar,jar導入
修復部分BUG
5.7更新內容:新增V5支持中文編程
新增V5中文編程手冊,根目錄/iApp/iyu-中文編程V5.0.txt
新增V5編輯框右側符號導航條
新增V3導航條代碼格式化功能
新增編輯框代碼塊{}之間的豎線
優化編輯框輸入成對的符號時自動完善
優化編輯框代碼塊{}的換行自動格式化
優化編程時中文符號自動轉英文符號
優化導航條編輯框游標移動上下左右
修復編輯框部分輸入法刪除字元與回車的異常狀況
重命名V5外邊距、內邊距相關統一用上下左右
3. gn的語言是允許0開頭的非負數
(1)S->a || aS
a->0 || 2 || 4 || 6 || 8
(2)
S->2S || 4S || 6S || 8S || B || 空
B->a || aB
a->0 || 2 || 4 || 6 || 8
4. c語言 gcc編譯器下 time()報錯如何解決
time_t.TOxxx();//改變時間格式,然後應用新的時間格式列印就可以了,如printf("%s",time().ToString);
5. 單片機 按鍵秒錶
你好!我這有份資料,希望對你有用!99秒馬表設計1. 實驗任務
(1. 開始時,顯示「00」,第1次按下SP1後就開始計時。
(2. 第2次按SP1後,計時停止。
(3. 第3次按SP1後,計時歸零。2. 電路原理圖
圖4.17.13. 系統板上硬體連線(1. 把「單片機系統」區域中的P0.0/AD0-P0.7/AD7埠用8芯排線連接到「四路靜態數碼顯示模塊」區域中的任一個a-h埠上;要求:P0.0/AD0對應著a,P0.1/AD1對應著b,……,P0.7/AD7對應著h。 (2. 把「單片機系統」區域中的P2.0/A8-P2.7/A15埠用8芯排線連接到「四路靜態數碼顯示模塊」區域中的任一個a-h埠上;要求:P2.0/A8對應著a,P2.1/A9對應著b,……,P2.7/A15對應著h。 (3. 把「單片機系統「區域中的P3.5/T1用導線連接到」獨立式鍵盤「區域中的SP1埠上; 4. 程序框圖
主程序框圖T0中斷服務程序框圖 圖4.17.2 5. 匯編源程序
TCNTA EQU 30H
TCNTB EQU 31H
SEC EQU 32H
KEYCNT EQU 33H
SP1 BIT P3.5
ORG 00H
LJMP START
ORG 0BH
LJMP INT_T0
START: MOV KEYCNT,#00H
MOV SEC,#00H
MOV A,SEC
MOV B,#10
DIV AB
MOV DPTR,#TABLE
MOVC A,@A+DPTR
MOV P0,A
MOV A,B
MOV DPTR,#TABLE
MOVC A,@A+DPTR
MOV P2,A
MOV TMOD,#02H
SETB ET0
SETB EA
WT: JB SP1,WT
LCALL DELY10MS
JB SP1,WT
INC KEYCNT
MOV A,KEYCNT
CJNE A,#01H,KN1
SETB TR0
MOV TH0,#06H
MOV TL0,#06H
MOV TCNTA,#00H
MOV TCNTB,#00H
LJMP DKN
KN1: CJNE A,#02H,KN2
CLR TR0
LJMP DKN
KN2: CJNE A,#03H,DKN
MOV SEC,#00H
MOV A,SEC
MOV B,#10
DIV AB
MOV DPTR,#TABLE
MOVC A,@A+DPTR
MOV P0,A
MOV A,B
MOV DPTR,#TABLE
MOVC A,@A+DPTR
MOV P2,A
MOV KEYCNT,#00H
DKN: JNB SP1,$
LJMP WT
DELY10MS:
MOV R6,#20
D1: MOV R7,#248
DJNZ R7,$
DJNZ R6,D1
RET
INT_T0:
INC TCNTA
MOV A,TCNTA
CJNE A,#100,NEXT
MOV TCNTA,#00H
INC TCNTB
MOV A,TCNTB
CJNE A,#4,NEXT
MOV TCNTB,#00H
INC SEC
MOV A,SEC
CJNE A,#100,DONE
MOV SEC,#00H
DONE: MOV A,SEC
MOV B,#10
DIV AB
MOV DPTR,#TABLE
MOVC A,@A+DPTR
MOV P0,A
MOV A,B
MOV DPTR,#TABLE
MOVC A,@A+DPTR
MOV P2,A
NEXT: RETI
TABLE: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
END
6. 國稅開發票系統打不開怎麼辦「注冊gregn50.dll失敗」
一、如果在運行某軟體或編譯程序時提示缺少、找不到gregn50.dll等類似提示,可將從網站上下載來的gregn50.dll拷貝到指定目錄即可(一般是system系統目錄或放到軟體同級目錄裡面),或者重新添加文件引用。
二、從網站上下載下來文件之後,先將其解壓(一般都是rar壓縮包),
然後根據系統的情況選擇X86/X64,X86為32位電腦,X64為64位電腦。
三、根據軟體情況選擇文件版本。此步驟比較復雜,如果是Windows的dll文件,
版本號以5.0開頭的或含有 nt
一般是windows2000的文件。
版本號以5.1開頭的或含有 xp、xpsp1、xpsp2、xpsp3
信息的一般是windowsXP的文件。
版本號以6.0開頭的或含有 longhorn、vista 信息的一般是windowsVista的文件。
版本號以6.1開頭的或含有 win7 信息的一般是windows7的文件。
如果不是windows的dll文件,則需要靈活查看版本號、描述、網友提供的信息、以及相關dll的版本號去判斷。
四、直接拷貝該文件到系統目錄里:
1、Windows
95/98/Me系統,將gregn50.dll復制到C:\Windows\System目錄下。
2、Windows
NT/2000系統,將gregn50.dll復制到C:\WINNT\System32目錄下。
3、Windows
XP/WIN7/Vista系統,將gregn50.dll復制到C:\Windows\System32目錄下。
4、如果系統是64位的請將文件復制到C:\Windows\SysWOW64目錄
五、打開"開始-運行-輸入regsvr32 gregn50.dll",回車即可解決。
7. 怎樣用命令行在TC中編譯程序
Turbo C++ Version 3.00 Copyright (c) 1992 Borland International
Syntax is:
TCC [options] file[s]
[ * = default; -x- = turn switch x off ]
[options]
-1 80186/286 Instructions
-2 80286 Protected Mode Inst.
-Ax Disable extensions
-B Compile via assembly
-C Allow nested comments
-Dxxx Define macro
-Exxx Alternate Assembler name
-G Generate for speed
-Ixxx Include files directory
-K Default char is unsigned
-Lxxx Libraries directory
-M Generate link map
-N Check stack overflow
-O Optimize jumps
-P Force C++ compile
-Qxxx Memory usage control
-S Proce assembly output
-Txxx Set assembler option
-Uxxx Undefine macro
-Vx Virtual table control
-X Suppress autodep. output
-Yx Overlay control
-Z Suppress register reloads
-a Generate word alignment
-b * Treat enums as integers
-c Compile only
-d Merge plicate strings
-exxx Executable file name
-fxx Floating point options
-gN Stop after N warnings
-iN Max. identifier length
-jN Stop after N errors
-k Standard stack frame
-lx Set linker option
-mx Set Memory Model
-nxxx Output file directory
-oxxx Object file name
-p Pascal calls
-r * Register variables
-u * Underscores on externs
-v Source level debugging
-wxxx Warning control
-y Proce line number info
-zxxx Set segment names
8. 通達信手機軟體公式出現編譯錯誤怎樣解決
這個指標在電腦上用應該是正常的,
因為手機上不支持跨周期引用數據所以,會有錯誤提示.
所以這個指標在手機上用不了.
9. 上位機應用程序,原理圖和PCB的設計。
/*測試的時候是在idleapp.c中測試的,在函數IdleSetLRKey中通過SetKeyHandler(start_uart_echo, KEY_LEFT_ARROW,KEY_EVENT_UP);來啟動串口,然後就可以在上位機中通過串口調試助手發送指令操作MTK手機了*/
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
#include "stdC.h"
#include "MMI_Features.h" /* 編譯開關會出現在這個由make update生成的文件裡面 */
#include "L4Dr.h"
#include "L4Dr1.h"
#include "AllAppGprot.h"
#include "FrameworkStruct.h"
#include "GlobalConstants.h"
#include "EventsGprot.h"
#include "mmiappfnptrs.h"
#include "HistoryGprot.h"
#include "MainMenuDef.h"
#include "wgui_categories.h"
#include "Unicodexdcl.h"
#include "gui_data_types.h"
#include "Uart_sw.h"
#include "SettingProfile.h"
// 我們要用到的串口, uart_port1是枚舉型數值,usb串口的編號
#define HELLO_WORLD_UART_PORT uart_port1 // 手機接USB下載線的地方
// 定義我們的應用所屬系統的哪一個模塊
// 這里是MMI模塊,實際上我更願意稱MMI為一個子系統,將我們的應用稱為模塊
#define MOD_HELLO_WORLD MOD_MMI
// 數據接收Buffer大小
#define MAX_ECHO_PACKET_LEN 128
// 外部函數申明,沒有對應頭文件,手動加吧
extern mole_type UART_GetOwnerID(UART_PORT port);
extern void UART_ClrTxBuffer(UART_PORT port, mole_type ownerid);
extern void UART_ClrRxBuffer(UART_PORT port, mole_type ownerid);
extern void playRequestedTone(ALL_TONE_ENUM playtone);
// 本程序內部使用的函數申明
static void init_uart(void);
static void mmi_HelloWorld_uart_readyToRead_ind_handler(void *msg);
static U16 read_from_uart(U8 *pbyBuf, U16 wLenMax, UART_PORT hPort, mole_type hOwner);
static U8 write_to_uart(U8 *pbyBuf, U16 wLenBuf, UART_PORT hPort, mole_type hOwner);
static void exit_uart();
static void start_uart_echo(void);
static void uart_echo_process(void);
static void stop_uart_echo(void);
// 睡眠模式句柄
static kal_uint8 ghSleepMode;
// 我們要用到的串口之前的佔用者
static mole_type gnOrigUartOwner;
static kal_bool gbUartInitialized = KAL_FALSE;
static kal_bool gbUartEchoStarted = KAL_FALSE;
static U16 gwLenUartBuffer = 0;
static U8 gabyUartBuffer[MAX_ECHO_PACKET_LEN];
static void init_uart(void)
{
if(gbUartInitialized)
{
return;
}
ghSleepMode = L1SM_GetHandle();
// 禁止休眠,休眠後串口收發會有問題
// 問題:如何做到串口喚醒? FIXME
L1SM_SleepDisable(ghSleepMode);
// 記錄我們要用的串口的當前佔有者
gnOrigUartOwner = UART_GetOwnerID(HELLO_WORLD_UART_PORT);
// 下面我們申明要佔用這個串口了
UART_SetOwner(HELLO_WORLD_UART_PORT, MOD_HELLO_WORLD);
// 以上對串口佔用的申明,我理解更多是一種編程者之間的約定
// 當發現串口的佔用者不是本程序所屬模塊時,說明我們申明佔用之後
// 又有其他模塊申明佔用同一個串口,此時如果收到數據應不予處理
// 當然,也有可能同一模塊的其他程序申明佔用同一串口
// 這需要在設計應用時統一協調,避免數據發生混亂
// 設置波特率,預設的起停位和校驗為:8,n,1,即8個數據位,1個停止位,無校驗
UART_SetBaudRate(HELLO_WORLD_UART_PORT, UART_BAUD_115200, MOD_HELLO_WORLD);
// 其他串口設定(如起停位、校驗等)使用函數 UART_ReadDCBConfig 和 UART_SetDCBConfig
// 詳細參數見結構體 UARTDCBStruct
// 注冊一個事件鉤子函數,當串口(任何)有數據到達時,我們的鉤子函數將被調用
// 注意,同一種事件同時只能注冊一個鉤子函數,因此:
// 如果在我們的程序處理串口的同時還有其他程序要讀取和處理(任何)串口數據,
// 就必須由當前的鉤子函數代為處理
// 實際上我覺得系統底層可以改一下,改成Windows鉤子的方式,可以掛多個,能夠依次調用或跳過
SetProtocolEventHandler(mmi_HelloWorld_uart_readyToRead_ind_handler, MSG_ID_UART_READY_TO_READ_IND);
gbUartInitialized = KAL_TRUE;
}
static U16 read_from_uart(U8 *pbyBuf, U16 wLenMax, UART_PORT hPort, mole_type hOwner)
{
U16 wLenAvail;
U16 wLenRead;
U16 wLenRet = 0;
U8 byStatus = 0;
// 收取數據,超出最大包長的數據將簡單丟棄,這一層需要具體的應用協議做相應處理
while( (wLenAvail = UART_GetBytesAvail(hPort) > 0 && wLenRet < wLenMax) )
{
if (wLenAvail + wLenRet > wLenMax)
{
wLenAvail = wLenMax - wLenRet;
}
wLenRead = UART_GetBytes(hPort, (kal_uint8 *)(pbyBuf + wLenRet), (kal_uint16)wLenAvail, &byStatus, hOwner);
wLenRet += wLenRead;
}
// 讀完之後,清除接收Buffer
UART_ClrRxBuffer(hPort, hOwner);
return wLenRet;
}
static U8 write_to_uart(U8 *pbyBuf, U16 wLenBuf, UART_PORT hPort, mole_type hOwner)
{
U16 wSent= 0;
U8 bRet = FALSE;
// 發送前清FIFO和Buffer,注意:這一步必須做,否則收發會有問題
UART_Purge(hPort, RX_BUF, hOwner); // 清除設備輸入FIFO
UART_Purge(hPort, TX_BUF, hOwner); // 清除設備輸出FIFO
UART_ClrTxBuffer(hPort, hOwner); // 清除發送Buffer
UART_ClrRxBuffer(hPort, hOwner); // 清除接收Buffer
wSent = UART_PutBytes(hPort, (kal_uint8 *)pbyBuf, (kal_uint16)wLenBuf, hOwner);
if (wSent == wLenBuf)
{
bRet = TRUE;
}
return bRet ;
}
static void exit_uart()
{
if(gbUartInitialized)
{
// 恢復成原有的埠佔用者
UART_SetOwner(HELLO_WORLD_UART_PORT, (kal_uint8) gnOrigUartOwner);
// 允許休眠
L1SM_SleepEnable(ghSleepMode);
gbUartInitialized = KAL_FALSE;
}
}
static void mmi_HelloWorld_uart_readyToRead_ind_handler(void *msg)
{
uart_ready_to_read_ind_struct* uart_rtr_ind = (uart_ready_to_read_ind_struct*)msg;
// 檢查一下埠以及所有者信息,不匹配的數據略過
// 注意,作為例子程序,我們只是查看和處理我們關心的數據
// 其他與此同時需要監聽和處理串口數據的程序,須由相關的代碼完成代理的工作
if( KAL_FALSE == gbUartEchoStarted ||
HELLO_WORLD_UART_PORT != uart_rtr_ind->port ||
MOD_HELLO_WORLD != UART_GetOwnerID(uart_rtr_ind->port) )
{
// 如果底層能做成鉤子鏈,這里就可以調用鉤子鏈的下一個鉤子了
return;
}
gwLenUartBuffer = read_from_uart(gabyUartBuffer, sizeof(gabyUartBuffer), HELLO_WORLD_UART_PORT, MOD_HELLO_WORLD);
// 呼叫數據處理部分
uart_echo_process();
}
static void start_uart_echo(void)
{
S8 strHello[] = "Hello World Uart Echo Example Started!\r\n";
if(gbUartEchoStarted)
{
return;
}
init_uart();
write_to_uart((kal_uint8*)strHello, (kal_uint16)strlen(strHello), HELLO_WORLD_UART_PORT, MOD_HELLO_WORLD);
gbUartEchoStarted = KAL_TRUE;
SetKeyHandler(stop_uart_echo, KEY_LSK, KEY_EVENT_UP);
}
void mmi_sndrec_send_record_req(void);
void mmi_sndrec_stop_record(void);
void mmi_sndrec_entry_edit_name(void);
void mmi_sndrec_entry_rename_option(void);
void mmi_sndrec_entry_save(void);
extern void MakeCall(PS8 strNumber);
extern void EntryScrNotifyCallAborted(void);
void make_call_test(void)
{
S8 numb[6]="10086";
U16 newnumb[6];
memset(newnumb,0,sizeof(newnumb));
AnsiiToUnicodeString((S8*)newnumb,(S8*)numb);
MakeCall((char *)newnumb);
}
#include "F:\HUAYU\P1300\New\P1300_V1.7_Release\custom\drv\misc_drv\NEOTEL25_06B_BB\codegen\Gpio_drv.h"
#include "Gpio_sw.h"
extern void HangupAllCalls(void);
extern void ChargingPwnOnThanPwnOn();
extern void ShutdownSystemOperation(void);
static void uart_echo_process(void)
{
U8 i;
char my_data_buffer[256];
// 稍稍處理一下,這樣就能看出是否確實是我們的程序在處理數據
for(i = 0; i < gwLenUartBuffer; i++)
{
AnsiiToUnicodeString((S8 *)my_data_buffer, (S8 *)gabyUartBuffer);
GPIO_ModeSetup((kal_uint16)GPIO_PORT_43, (kal_uint16)0);
GPIO_InitIO((char)1, (char)GPIO_PORT_43);
if(my_data_buffer[0]=='p'&&my_data_buffer[2]=='t')
{
S8 strByte[] = "Play tone successfully\r\n";
playRequestedTone(ALARM_TONE);
write_to_uart((kal_uint8*)strByte, (kal_uint16)strlen(strByte), HELLO_WORLD_UART_PORT, MOD_HELLO_WORLD);
}
else if(my_data_buffer[0]=='s'&&my_data_buffer[2]=='t')
{
stopRequestedTone(ALARM_TONE);
}
else if(my_data_buffer[0]=='d'&&my_data_buffer[2]=='h')
{
S8 numb[30];
memset(numb,0,sizeof(numb));
numb[0]=my_data_buffer[4];
numb[2]=my_data_buffer[6];
numb[4]=my_data_buffer[8];
numb[6]=my_data_buffer[10];
numb[8]=my_data_buffer[12];
numb[10]=my_data_buffer[14];
numb[12]=my_data_buffer[16];
numb[14]=my_data_buffer[18];
numb[16]=my_data_buffer[20];
numb[18]=my_data_buffer[22];
numb[20]=my_data_buffer[24];
MakeCall((char *)numb);
}
else if(my_data_buffer[0]=='h'&&my_data_buffer[2]=='a'&&my_data_buffer[4]=='n'&&my_data_buffer[6]=='g')
{
EntryScrNotifyCallAborted();
}
else if(my_data_buffer[0]=='y'&&my_data_buffer[2]=='d'&&gwLenUartBuffer==2)
{
make_call_test();
}
else if(my_data_buffer[0]=='i'&&my_data_buffer[2]=='o')
{
GPIO_WriteIO((char)1, (char)GPIO_PORT_43);
}
else if(my_data_buffer[0]=='o'&&my_data_buffer[2]=='d')
{
GPIO_WriteIO((char)0, (char)GPIO_PORT_43);
}
else if(my_data_buffer[0]=='x'&&my_data_buffer[2]=='f')
{
ChargingPwnOnThanPwnOn();
}
else if(my_data_buffer[0]=='c'&&my_data_buffer[2]=='d')
{
HangupAllCalls();
}
else
{
//if(gabyUartBuffer[i] >= 'a' && gabyUartBuffer[i] <= 'z')
gabyUartBuffer[i] -= 0x20;
}
}
// 回顯
write_to_uart(gabyUartBuffer, gwLenUartBuffer, HELLO_WORLD_UART_PORT, MOD_HELLO_WORLD);
}
static void stop_uart_echo(void)
{
S8 strBye[] = "Hello World Uart Echo Example Stop!\r\n";
if(gbUartEchoStarted)
{
write_to_uart((kal_uint8*)strBye, (kal_uint16)strlen(strBye), HELLO_WORLD_UART_PORT, MOD_HELLO_WORLD);
gbUartEchoStarted = KAL_FALSE;
SetKeyHandler(start_uart_echo, KEY_LSK, KEY_EVENT_UP);
}
exit_uart();
}
#include "OrganizerDef.h"
extern void mmi_HelloWorld_exit(void);
/* 模塊入口 */
void mmi_HelloWorld_entry(void)
{
S32 x,y;
x=30;y=0;
/* 強制退出當前屏幕,之後進入到我們的模塊了 */
/* 上電預設是idle屏幕,現進入MAIN_MENU_SCREENID屏 */
/* 注意看第二個參數,這個是當我們模塊被強制退出時執行的一些操作 */
EntryNewScreen(ORGANIZER_SCREENID, mmi_HelloWorld_exit, NULL, NULL);
gui_lock_double_buffer();
/* 關掉屏幕頂部的狀態條,我們要用整個屏幕 */
entry_full_screen();
/* 擦除當前背景 */
clear_screen();
y+=50;
gui_set_text_color(UI_COLOR_RED);
gui_move_text_cursor(x,y);
gui_print_text(L"Uart Test");
gui_unlock_double_buffer();
/* 刷新屏幕顯示,MMI用的是雙緩沖繪圖方式,而且需要顯式刷新 */
gui_BLT_double_buffer(0, 0, UI_device_width - 1, UI_device_height - 1);
/* 注冊一個按鍵處理,右軟鍵彈起時返回到之前被我們強制退出的模塊 */
SetKeyHandler(GoBackHistory, KEY_RSK, KEY_EVENT_UP);
// SetKeyHandler(stop_play_anim, KEY_LSK, KEY_EVENT_UP);
SetKeyHandler(start_uart_echo, KEY_LSK, KEY_EVENT_UP);
}
/* 模塊出口
* 當我們的模塊被其他模塊強制退出時會執行這個函數,
* 這個函數的常見寫法,包括:
* 1、模塊已申請資源的釋放(如果需要的話),這一步可選
* 2、手動把自己壓棧到窗口(實際是整個屏)堆棧裡面,
* 便於強制我們退出的模塊執行完後重新把我們叫出來
* 不像Window的窗口管理是自動壓棧的,Pluto MMI需要手動壓棧
* 3、其他一些清理動作
*/
void mmi_HelloWorld_exit(void)
{
history currHistory;
S16 nHistory = 0;
currHistory.scrnID = MAIN_MENU_SCREENID;
currHistory.entryFuncPtr = mmi_HelloWorld_entry;
pfnUnicodeStrcpy( (S8*)currHistory.inputBuffer, (S8*)&nHistory);
AddHistory(currHistory);
stop_uart_echo();
}
//////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////