|
楼主 |
发表于 2008-7-16 15:56:31
|
显示全部楼层
2. AVRX库与自已的工程熔合注意事项:
2.1 将AVRX.lib拷入自已的工程主目录
2.2 将几个主要头文件:avrx.h avrx.inc avrx-ctoasm.inc avrx-io.h avrx-signal.h...拷入工程主目录
2.3 将avrx_iar_vect.s文件改名avrx_iar_vect.s90后入工程主目录,一定要加入!否则编泽不过!
编泽,
肯定出错:
Fatal Error[e72]: Segment AVRXDATA must be defined in a segment definition option (-Z, -b or -P)
2.4 解决办法:
打开avrx.inc文件:
# define _GLOBAL(Label, Size) __global Label, Size
# define _STATIC(Label, Size) __static Label, Size
# define _DATASECTION RSEG AVRXDATA:DATA
# define _CODESECTION RSEG CODE:CODE
# define _FUNCTION(A) PUBLIC A
# define _ENDFUNC
# define _PUBLIC(A) PUBLIC A
# define _EXTERN(A) EXTERN A
# define _MODULE(A) MODULE A
# define _ENDMOD ENDMOD
# define _END END
# define lo8_pm(A) LOW(A/2)
# define hi8_pm(A) HIGH(A/2)
# define lo8(A) LOW(A)
# define hi8(A) HIGH(A)
# define _DB DB
# define _EQU(A,B) A: EQU B
# define _ALIGN EVEN
# define _SFR_IO_ADDR(A) (A) /* IAR does not use this */
是“# define _DATASECTION RSEG AVRXDATA:DATA“中的”AVRXDATA“ 诺的火!打开工程的OUTPUT下的
工程配制文件:.xcl (注意有二个.xcl) 将AVRXDATA段加入内部Ram数据区就可以了
// Data (SRAM, external ROM or external NV RAM) memory
-Z(DATA)TINY_I,TINY_Z,TINY_N=_..X_SRAM_TBASE:+_..X_SRAM_TSIZE
-Z(DATA)CSTACK+_..X_CSTACK_SIZE=_..X_CSTACK_BASE-_..X_CSTACK_END
-Z(DATA)HEAP+_..X_HEAP_SIZE=_..X_SRAM_BASE-_..X_SRAM_END
-Z(DATA)IOSTREAM_N#_..X_SRAM_BASE-_..X_SRAM_END
-Z(DATA)NEAR_HEAP+_..X_NEAR_HEAP_SIZE=_..X_SRAM_BASE-_..X_SRAM_END
-Z(DATA)RSTACK+_..X_RSTACK_SIZE=_..X_RSTACK_BASE-_..X_RSTACK_END
-Z(DATA)NEAR_I,NEAR_Z,NEAR_N=_..X_SRAM_BASE-_..X_SRAM_END
-Z(DATA)AVRXDATA=_..X_SRAM_BASE-_..X_SRAM_END |
|