4.6 warning (L3009): Same sub function exists between ISR(04H) CMG and
MAIN CMG: _func
A:中斷服務程序(04H)與主函數共同調用子函數 func,解決方式:
● 避免共同調用
詳見《C Compiler V3 使用手冊》2.2.1 節(jié)
Part V V3 常見的問題及其解決方式
5.1 如何在 V3 使用 bit 變量 ?
A:bit flag1; 詳見《C Compiler V3 使用手冊》2.2.11 節(jié)。
5.2 如何在 V3 使用外部定義 bit 變量 ?
A:extern bit flag1;
5.3 程序 reset 后,變量被清 0 的解決方式 ?
A:IDE7.8 版本將提供選擇不初始化的方式:不選擇下面選項“將未初始化的…”
即可。
5.7 在 V3 使用 ROM BP 的注意事項
對于多 ROM BANK MCU,若整個工程都用 C 語言寫,那么,任何時候,用戶 都不需要設定 ROM BP,Linker 會自動設置 ROM BP,特別注意,若用戶在程 序中改動到 ROM BP,那么程序將有可能跑飛,用戶需特別小心,在設置 RAM BP 時,也應注意不要用到 ROM BP。若工程使用混合語言編程,用 C 函數 call 匯編 section 時,應使用 C 語言或 fcall,在匯編 section call C 函數時,需在 CALL 前設 BP,前在 CALL 之后恢復 BP。
范例:
;;Test1.asm
extern _fun2:near public _fun1
_fun1 .section ‘code’
_fun1 proc
mov a, bank _fun2
mov [04H],a ;; 假設 ROM BP 在 04h
call _fun2
mov a,bank_fun1 mov [04H],a
_fun1 endp
//Test2.c
extern void FUN1();
// 或者 asm(“extern _FUN1:near”);
void main()
{
FUN1();
// 或者 asm(“fcall _FUN1”);
}
void fun2()
{}
5.8 混合語言使用 ROM BP 的注意事項
參考 5.7 節(jié)
5.9 如何使用 CMD 命令編譯 C 工程?
compiler,assembler,linker 的參數詳見《V3 C Compiler 使用手冊》附錄 C
例:
a. 設置環(huán)境變量:
set HTCFG=C:\Program Files\Holtek MCU Development Tools\HT-IDE3000V7.x\MCU set HTBIN=C:\Program Files\Holtek MCU Development Tools\HT-IDE3000V7.x\BIN set HTINCLUDE=C:\Program Files\Holtek MCU Development Tools\HT-IDE3000V7. x\INCLUDE_V3
set HTLIB=C:\Program Files\Holtek MCU Development Tools\HT-IDE3000V7.x\LIB