WICE 1.......10 2. (Statement Syntax)...10 3....11 4. (Assembler arithmetic operations)......11 5. ( Program directives )... 12 6. ( Conditional assembly )...15 7. ( Reserved word )...17 (debugger)... 18 1. (Set breakpoint)......18 2. (run program)... 18 WICE... 19 1. (Menu)...... 20 2. (Tool bar)... 20 3. (connect)... 21 4. (File menu)... 25 5. (Edit menu)... 26 6. (View menu)... 28 7. (Project menu)...30 8. (Debug menu)...34 9. (Tool menu)... 34 10. (Option menu)... 36 11. (Window)... 37 12. (Help)... 38 (error message)...39 6/8/2004
WICE 8 Window ICE (Project) Window 95 Window 98, Window Me, Window 2000 Window XP WICE WICE assembler (linker) debugger WICE (error message) WICE (Project), (Project manager) Editor (find) (replace) undo redo (cut) (copy) (paste) (include) (macro) (assembly arithmetic) (conditional assembly) list file map file WICE (block comment) ICE WICE ICE WICE ICE (Project) (CDS code)
Step 1: ICE Software 1.1 1 NEXT 1 1.2 NEXT
2 3 1.3. Finish 3
Step 2: WICE : (double click ) WICE (ICON) : [ ] [ ] [EMC WICE] [WICE] 4: Step 3: Connect 1. Micro Controller: epv6300(ice6000) WICE 2. Connect Port: 3. Check ICE Memory: ICE ( ) 4. OK WICE 5 Connect
Step 4: (Project): 1. [File] [New ], (dialog) 2. [Project] tab. 6 [File] [New] Project [Project] [New ] 7: [Project] [New] Project
Step 5: ( ) 1. [File] [New ], (dialog) 2. [File] tab 8: Step 6: ( ) 1. [Project] [Add files to project ], open file (dialog) 2. project OK 9: Project
Step 7: 10: Step 8: [Project] [Rebuild All], Output 11:
Step 9: ICE [Project] [Dump to ICE] 12: ICE Step 10: (Step Into) [Debug] [Step Into] (Hot key) [F7] Step 11: ( dt asm) (Double click). 13: Step 12: Go [Debug] [Go] Hot key [F5] Step 16: step 10 step 15
1. 2. (Statement Syntax) [label [:]] operation [operand] [,operand][; comment] (label) (operation) (operand) (comment) ( ) (Tab) (label): : Includin A~Z a~z 0~9 _ 0~9 31 (operation): instruction (directive) mov a,@02 (directive) org 0x20 (operand): (operation),
(comment): (line comment), (block comment) : ; ; test comment (block comment): /* */ /* test comment */ 3. (Decimal) 0D<digits> <digits>d <digits> 0X<digits> <digits>h (Hexadecimal) (Octal) 0Q<digits> <digits>q (Binary) 0B<digits> <digits>b : <digit>h A~F a~f 0, 4. (Assembler arithmetic operations) (TRUE) (FALSE) 0xFF 0x00 (operator) (1) ( ) (2) (Unary operators)! (Logical NOT) ~ ( Complement ) ( Unary minus ) (3) * ( Multiplication ) / ( Division ) % ( Modulo ) << ( Logical shift left ) >> ( Logical shift right ) (4) (5) AND
& ( BIT AND) (6) OR XOR OR (Bit OR) ^ XOR ( Bit XOR ) (7) AND && AND ( Logical AND ) (8) OR OR (Logical OR) (9) (Comparison) == ( equal )!= ( not equal ) > ( greater than ) < ( less than ) >= ( greater or equal than) <= ( less or equal than) 5. ( Program directives ) (1) ORG : ( program counter ) : ORG <expression> : org 0x200 (2) EQU or == (Duplicate =): : <label> EQU <expression> : R20 equ 0x20 : R20 == 0x20 (3) (Line comment) : ; < string > : ; this is the comment string. (Block comment) : /* <strings> */ : /* this is block comment example including multi lines */ (4) EOP : ROM Page (end of page) : EOP : org 0x10 mov 0x20,A inc 0x20 eop inc 0x20 (source address): org 0x10 0010 mov 0x20,A
0011 inc 0x20 eop 0400 inc 0x20 (5) END :, END : END : org 0x10 mov 0x20,a inc 0x20 end mov 0x20,a (source address): org 0x10 0010 mov 0x20,a 0011 inc 0x20 end mov 0x20,a (6) PROC, ENDP : : <label> PROC <statements> ENDP : BANK0: PROC BC 0X04,6 BC 0X04,7 RET ENDP :PROC ENDP RET. (7) INCLUDE: INCLUDE: INCLUDE a. INCLUDE EMC456.INC EMC32.INC : INCLUDE <filename> : INCLUDE <EMC456.INC> b. INCLUDE : INCLUDE file_path+file_name : INCLUDE C:\EMC\TEST\TEST456.INC : INCLUDE
(8) PUBLIC EXTERN: Project Project PUBLIC EXTERN PUBLIC : PUBLIC <label>[,<label>] EXTERN : EXTERN <label>[,<label>] PUBLIC EXTERN PUBLIC EXTERN : Project TEST1.DT TEST2.DT TEST1.DT: org 0x00 public start extern loop1 Start: mov a,@0x02 mov 0x20,a jmp loop1 TEST2.DT: org 0x100 public loop1 extern start Loop1: inc 0x20 jmp start TEST1.DT START LOOP1 START PUBLIC LOOP1 EXTERN TEST2.DT START EXTERN LOOP1 PUBLIC (9) VAR:. : Label VAR <expression> : test var 1 mov a,@test test var test+1 mov a,@test (10) MACRO, ENDM: : <label> MACRO <parameters> statements ENDM : bank0 macro bc 0x04,6 bc 0x04,7 endm
(11) MACEXIT: MACEXIT : MACEXIT : Source: test var 5 bank0 macro bc 0x04,6 if test>4 macexit endif bc 0x04,7 endm bank0 ( address) 0000 bc 0x04,6 test=5 if test>4 macexit endm (12) MESSAGE : output : MESSAGE <characters> : org 0x00 message set bank to 0!! bc 0x04,6 bc 0x04,7 output : USER MESSAGE: set bank to 0!! (13) $ : (Program counter) $ (operand) : jmp $ jmp $ jmp 6. ( Conditional assembly ) (1) IF : IF IF ELSEIF ELSE ENDIF : IF <expr> <statements1> [ELSEIF <expr>
<statements2>] [ELSE <statements3>] ENDIF : org 0x00 bank macro num if num==0 bc 0x04,6 bc 0x04,7 elseif num==1 bs 0x04,6 bc 0x04,7 elseif num==2 bc 0x04,6 bs 0x04,7 elseif num==3 bs 0x04,6 bs 0x04,7 else message error : bank num over max number!!! endif endm (2) IFE: IFE IFE ELSEIFE ELSE ENDIF : IFE <expr> <statements1> [ELSEIFE <expr> <statements2> ] [ELSE <statements3>] ENDIF (3) IFDEF: IFDEF IFDEF (label) IFDEF ELSEIFDEF ELSE ENDIF : IFDEF <label> <statements1> [ELSEIFDEF <label> <statements2>] [ELSE <statements3>] ENDIF
: org 0x00 ice456 equ 456 ifdef ice456 bc 0x04,6 bc 0x04,7 endif (4) IFNDEF: IFNDEF IFNDEF (label) IFNDEF ELSEIFNDEF ELSE ENDIF : IFNDEF <label> <statements1> [ELSEIFNDEF <label> <statements2>] [ELSE <statements3>] ENDIF 7. ( Reserved word ) (1) (directives), ( operators) + - * / ==!= $ @ # ( )! ~ % << >> & ^ && < <= > >= DS ELSE ELSEIF ELSEIFDEF ELSEIFE ELSEIFNDE END ENDIF ENDM ENDMOD F ENDP EQU EXTERN IF IFE IFDEF IFNDE INCLUDE MACRO MACEXIT F MODULE NOP PAGE ORG PROC PUBLIC
(2) (instructions mnemonics) ADD AND BC BS CALL CLR COM COMA CONTR CONTW DAA DEC DECA DISI DJZ DJZA ENI INC INCA INT IOR IOW JBC JBS JMP JZ JZA MOV NOP OR RET RETI RETL RLC RLCA RRC RRCA SLEP SUB SWAP TBL WDTC XOR (3) ( Register names) A (debugger) (source level debugger) : Step 1: ( go ) Step 2: go free run reset step into step over go to cursor 1. (Set breakpoint) (1) (breakpoint counter): Step1: [option] [Debug option setting] (dialog) [Default break point counter] ( 1 255) Step2: (double click) tool bar toggle breakpoint ( ) menu [Debug] [Toggle Breakpoint] (2) Step1: [option] [Debug option setting] (dialog) [Default break point counter] 0 Step2: (double click) (dialog) [OK] 2. (run program) hot key (1) go(f5): (program counter) free run(f10): (program counter)
(3) reset(f6): ICE reset reset (4) step into(f7): (5) step over(f8): call RET (step into) (6) go to cursor(f4): (program counter) WICE 1. (Menu) 14: (Menu) (1) File: (Project) (2) Edit: :Undo Redo (Copy) (Paste) (Cut) (go to line) Find( ) Replace( (3) View: : Project Special Register RAM(Bank) Output Watch (4) Project: (new), (open), (save), (close), (Add files to project) (Delete files from project), (Assembler file) (Build) (Rebuild All) ICE (Dump to ICE) (Trace log) (5) Debug: : go free run step into step over reset go to cursor run from selected line reset and go reset and free run (6) Tool:, ICE (Check ICE memory) Piggy back (Piggy back MIX format) Piggy back (Piggy back Hi Lo format) check sum (Get Check sum from project) (7) Option: (connect) (Register view)
(Debug option setting), ICE code option (ICE code option) (environment setting) (Font) (8) Window: (9) Help: (10) About: 2. (Tool bar) 15: Tool bar (1) (New file) (2) (Open file) (3) (Save) (4). all) (5) (Find) (6) (Cut) (7) (Copy) (8) (Paste) (9)Undo (10)Redo (11) (Assembler) (12) (Build) (13) (Toggle break point) (14)Go (15)Reset (16)Step into (18)Step over (19) Go to cursor (19)Run from selected line (20)Trace back (21) Trace forth (1) (4) (5) (10) (11) (12) (Project) (13) (21) 3 (connect) 16: ICE
Micro controller: EM78611, EM78612, EM78810, epv6300 Connect port: Print port 378H, 278H, 3BCH Check ICE Memory: ICE ICE Print ICE ICE ICE: [Option] [Connect], 16 ICE (protocol) 4. (File menu) (1) New ( Project) 17: 18:
(New file): step 1: [Add to Project] (check box) Project step 2: (file name) (edit) Step 3: (location) [ ] Step 4: (OK) (Cancel) Project: Project 19: Step 1: [Project] (tab) Step 2: (Project) name) (edit) Step 3: (location) [ ] Step 4: (Micro Controller) Step 5: (OK) (Cancel)
(2) Open ( (project)) 20: (project) (project): Step 1: (Source) dt asm (Project) prj Step 2: Step 3: (Open) (3) Close ( (project)) Step 1: (window) (Active Step 2: [File] [Close] (4) Open Project ( (project)) 21: Step 1: Step 2:
(5) Save Project ( (project)) Step 1: ( ) (Source) (Reference) List file ( ) Map file( (link) (Public label) ) ROM less Code Option Step 2: [File] [Save Project] (6) Close Project ( (project)) [File] [Close Project] WICE (Project Window) (7) Save ( (project)) Step 1: (window) (Active Step 2: [File] [Save] ( ) (8) Save As ( ) 22: Step 1: (window) (Active window) Step 2: [File] [Save As ] 36 Step 3: [ ] Step 4: [ ] (9) Save All ( ) [File] [Save All] (10) Print ( ) (11) Print Setup ( ) (12) Resent Files ( ) (13) Recent Projects ( ) (14) Exit( )
5. (Edit menu) 23: (1) Undo: (2) Redo: Undo (3) Cut: (4) Copy: (5) Paste: (6) Clear: (7) Select All: (8) Go to line: Step 1: Step 2: [OK] 24: (9) Find:
25: Step 1: Step 2: Step 3: (Find next) (10) Replace: 26: Step 1: Step 2: Step 3: Step 4: (Find next) Step 5: (Replace) 6. (View menu) 27:View (1) Project: (Project window) Files( DT ASM) References( INCLUDE ) List files( LIST LST) Map files(
Project MAP (Public label) 28:Project a. (Project): [File] [New ] [File] b. (Project): [Project] [Add files to project] c. : Del (2) Special register: (Accumulator) (Control) 0 1F 29: Special register : 16 0~9 A~F 2 0 1 back space Del ICE (3) RAM(Bank): RAM(BANK)
30:RAM(Bank) (4) Output: (trace log) Output (Double click) (5) Watch :,. 45. 31:Watch (6) Data RAM: Data RAM (ON BANK) 7. (Project menu) 32: Project (1) New: (Project) 33
. 33: (2) Open: (Project). (3) Save: (Project) (4) Close: (Project) (5) Add files to project: (Project) (Project) 34: Project (6) Delete files from project: 49 35:
(7) Assembler file: Output 0 0 (8) Build: Project Output (9) Rebuild All: Output (10) Dump to ICE: ICE 50 (Dumping) 36: (Dumping) (11) Trace log: trace log Go Free run Go to cursor step over ( call ) Output 8K 8. (Debug menu)
37: WICE (1) Go(F5):F5 (Hot key) Go (Program Counter) (2) Free run(f10): (Program Counter) 38 [OK] 38: (3) Reset(F6):ICE (0 ROM size ) (4) Step into(f7): ICE (5) Step over(f8): Call (6) Go to cursor(f4): (7) Continue step into(alt+f7): (step into), (8) Run from selected line:, (9) Toggle breakpoint: (10) Show all breakpoints: output, (11) Add label to watch: Watch, 39
39: label Watch (12) Reset and Free run: ICE Free run (13) Reset and Go: ICE Go (14) Run from: 40: a. Initial with 8K Step log: 8K b. Current PC with 8K Step log: 8K c. Initial with 4K-4K log: 4K 4K d. Current PC with 4K-4K log: 4K (15) Address break point: 41
41: address,, address,, Address breakpoint not active,. Address, Group, OR, Nest,. OR Nest, Group. (a) Group : 63 group, Group,, 1, 0,, Group. (b) OR : 63 group, Group, Group 1, 0,, Group (c) : Group, Group1, Group2, Group3, Group3 0, Group2 0 Group1 0, Group 0,, 0 : : Step 1: Breakpoint nest Step 2: (0x03, 0x01) (0x05,0x02) (0x03) group A 1 ( ) (0x05) group B 2 Step 3: [OK] Step 4: Go(F5) Step 5: group B group A
9. (Tool menu) 42: (1) Check ICE memory: ICE (2) Piggy back MIX format: Piggy back MIX EPROM (3) Piggy back Hi Lo format: Piggy back High Low EPROM (4) Get checksum from project: (Project) check sum Ordering form (5) Clear all output mapping line: Output 10. (Option menu) 43: (Option) (1) Connect: ICE WICE (connect) (2) Register view: ( )
44: (Register View) : Step 1: (Check box) 16 Step 2: [OK] (3) Debug Option setting: 45: : a. Dumping codes and checking: ICE b. Interrupt disable after break point: ICE TCC COUNTER ~ COUNTER2 TCC COUNTER1 ~ COUNTER2 TCC COUNTER1 ~ COUNTER2 c. Default break point counter: d. Show source code in trace log: Trace log output,,. trace log Output,
(4) Environment setting: 46 46: a. Create List file: LIST LIST b. Create MAP file: MAP (public label) c. Editor window contains: WICE 20 d. Recent file list contains: [File] [Recent files] 10 e. Recent project list contains: [File] [Recent Project] (project) 10 (6) Font: Output 11. (Window)
47: Cascade: 48 48: Tile: 49 49: 12. (Help) (1) Help WICE [ ] [ ] [EMC WICE] [EMC WICE ReadMe] Read Me HTML (2) About: WWW
(error message) M A L D 1. M : (1) "error M001: Numbers of opening editor window are the limit!!" (2) "error M002:Not enough memory to allocate Editor Window!!" (3) error M003:File: [filename] is existed. (4) "error M004:File: [filename] can not be created." (5) "error M005:One project has been opened!!" Project Project Project (6) "error M006:Project: [filename] can not be created." Project Project (7) "error M007:The file [filename] already exists in the project." Project Project (8) "error M008:File: [filename] can not be saved!!" (9) "error M009:The project: [filename] is not EMC project file format." Project WICE Project Project Project (10) "error M010:The file: [filename] does not exist." (11) "error M011:The File: [filename] can not be opened." (12) "error M012:The file: [filename] exceeds %dk of the max size %dk." 1M (13) "error M013:The copy size: %d exceed %dk of the max size %dk."
(14) "error M014:Memory can not be allocated." (15) "error M015:Over 250 characters of a line!!" 250 (16) "error M016:The active file [filename] extension name is not.dt or.asm." DT ASM DT ASM (!7) "error M017:No file to assembler." (18) "error M018:Project file must be created." Project Project (19) "error M019:The editor number is over the max editor number." (20) "Error M020:No active editor window." Editor Editor (21) "Error M021: Text field must be input characters." 2. A : (1) "error A001: Can not find the [filename] file" (2) "error A002:main and subroutine program can not define [label name] local label!!" ( $ ) (3) "error A003: The syntax form should be: operation [operand][,operand]" operation [operand][,operand] (4) "error A004:The label [label name] is redefined." (5) "error A005: The EQU syntax is: label EQU operand" EQU
EQU (6) "error A006: The INCLUDE nest deep is over 256." INCLUDE 256 (INCLUDE INCLUDE) INCLUDE 256 (7) "error A007: The IF conditional expression is error." IF IF (8) "error A008: Attempt to divide by zero." 0 (9) "error A009:The assembler dose not support floating point." (10) "error A010:The symbol [symbol name] is not defined." (11) "error A011: The macro name [macro name] is redefined." (12) "error A012:The parameters name [parameter name] is the same as label." (13) "error A013:The parameter name [parameter name] is the same with another one." (14) "error A014:The number of actual parameter dose not match with formal parameter." (15) "error A015:The parameter number %d does not exist." (16) "error A016:The external symbol [symbol name] is the same name as defined label." (17) "error A017: Address of ORG is error." ORG ORG (18) "error A018:MACEXIT can not be set outside macro." MACEXIT MACRO MACEXIT
(19) "error A019: Parameter must be string variable." (20) "error A020:Memory can not be allocated." (21) "error A021:The source statements exceed %d lines." (22) "error A022:The tree is error because of parser error." (23) "error A023:[allocate memory type] memory fault when allocated memory." (24) "error A024:Set assembler variable must be integer value." (VAR operation) (25) "error A025:Address of ORG must be integer value." ORG ORG (26) "error A026:The %d address of PC is out of %d ROM size." ROM (27) "error A027: The assembler is exceed max pass %d." (28) "error A028:The operand %d value is not including the valid data. " (29) "error A029:The %4X address is conflicted." [Edit] [Find] LIST (30) "error A030:The file [file name] could not be opened." (31) "error A031:The configure file read error." WICE (32) "error A032: The file [file name] can not be opened."
(33) "error A033:The macro is not defined." (34) "error A034:The expression can not be calculated." (35) "error A035:The operation [operation name] is not defined." (36) "error A036:The PUBLIC or EXTERN label [label name] must be address label." (37)"error A037:The operand value can not be calculated." (37) "error A038:The symbol [symbol name] is not extern symbol." EXTERN (38) "error A039:The reference number is over %d limits." PUBLIC EXTERN EXTERN (39) "error A040:The length of file name [file name] exceeds 256." 256 3. L : (1) "error L001: Memory of [memory type] stack overflow." (2) "error L002:The [file name] not found." (3) "error L003:The Object file format dose not belong to EMC object file format." Object WICE (4) "error L004:Symbol [symbol name] is not defined." (5) "error L005:Public symbol [symbol name] is conflict." (6) "error L006:ROM address %X is conflict."
[Edit] [Find] LIST (7) "error L007:The file [file name] can not be created." (8) "error L008:Line %d: The machine address %X exceeds ROM size %X." ROM (9) "error L009:No project file active." Project Project (10) "error L010:No output window found." Output [View] [Output] 4. D : (1) "error D001:The ICE memory is error." ICE (2) "error D002:CDS size=%xh does not match the ROM size=%xh." CDS ROM ICE WICE (3) "error D003:The project MCU type %s does not match %s ICE." (Project) ( (Title)) WICE ( WICE (Title)) WICE (4) "error D004:The line of file dose not transfer to machine address." (5) "error D005:The break point group number is over 64." 64 64 (6) "error D006:The ICE is not connected to PC." ICE PC (7) "error D008:The number is invalid." (8) "error D009:The number of messages is over %d."
Output message (9) "Warning D010:The address %04X does not match source file." (11) "Warning D011:Memory checked is error!!" ICE (12) "error D012:Syntax error!!!" (16) "error D013:Memory address %08X is error!!!" ICE (17) "error D014:Cann't found breakpoint address of %s." (18) "error D015:The number of symbols is over %d. (19) "error D016:Please dump program before adding label to watch." [Debug] [Add label to watch], [Project] [Dump to ICE] [Project] [Dump to ICE] F3 (20) "error D017:Trace log is empty " Trace log Go, Free run Go to cursor trace log (21) "error D018:No trace item in trace log. " trace log