标题: 关于.PRM [打印本页]
作者: Fetchlove 时间: 2006-3-5 14:35 标题: 关于.PRM
NAMES END
SECTIONS
MY_ZERO = READ_WRITE 0x80 TO 0xFF;
MY_RAM = READ_WRITE 0x800 TO 0xAFF;
MY_ROM = READ_ONLY 0x8000 TO 0x8FFF;
MY_STK = READ_WRITE 0xB00 TO 0xBFF;
PLACEMENT
DEFAULT_ROM INTO MY_ROM;
DEFAULT_RAM INTO MY_RAM;
SSTACK INTO MY_STK;
MY_ZERO INTO MY_ZERO;
END
//VECTOR 0 _Start12 /* set reset vector on _Startup */
VECTOR 0 _Startup /* set reset vector on _Startup */
这是MC自带的一个例子中的.PRM文件,有两处不明白,请各位大侠指教
1、例子的名字是HC12,也就是16位机,那么MY_ZERO就不应该从0X80位置开始呀,这样不就占了一些I/O的位置么,寄存器段的跟随区不应该从0x0200开始么?
2、VECTOR 0 _Startup 的意思是什么?我知道 VECTOR ADDRESS 0xfffe _Startup是把中断向量放在0fffe、0xffff处,那么 VECTOR 0 _Startup 和它的意思一样么?
谢谢!
作者: Tom-FS 时间: 2006-3-7 00:09
好像在Start12.c里有定义,里在有些关于_Startup的说明.
/* The function _Startup must be called in order to initialize global variables and to call main */
/* You can adapt this function or call it from your startup code to implement a different startup */
/* functionality. */
/* You should also setup the needed IO registers as WINDEF (HC12A4 only) or the COP registers to run */
/* on hardware */
/* to set the reset vector several ways are possible : */
/* 1. define the function with "interrupt 0" as done below in the first case */
/* 2. add the following line to your prm file : VECTOR ADDRESS 0xfffe _Startup */
/* of course, even more posibilities exists */
/* the reset vector must be set so that the application has a defined entry point */
#if defined(__SET_RESET_VECTOR__)
__EXTERN_C void __interrupt 0 _Startup(void) {
#else
__EXTERN_C void _Startup(void) {
#endif
作者: 碧落星空 时间: 2006-3-7 12:05
不是很明白
作者: Fetchlove 时间: 2006-3-7 15:34
能不能说清楚一些呀,我也不是很明白???
作者: Fetchlove 时间: 2006-3-7 18:35
我把CW2.0卸了现在用3.1,PRM定义的地址是对的,至于VECTOR 0我觉得应该和VECTOR ADDRESS 0xXXXX的意思是一样的,一个说的是0号中断,一个写的是地址
作者: Tom-FS 时间: 2006-3-8 00:26
我觉得也是这样的,在V4.1和V4.5中都是用VECTOR 0 _Startup 来指定向量的,
自己理解不知道对不对呵,大家讨论一下:
#if defined(__SET_RESET_VECTOR__)
__EXTERN_C void __interrupt 0 _Startup(void) //定义中断0为开始指向地址,应该是FFFE(reset source)
#else
__EXTERN_C void _Startup(void)
#endif
作者: seuafu2005 时间: 2006-3-8 10:42
是的, Vector 0 和Vector Address是一样的,标号0就是代表reset向量
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) |
Powered by Discuz! 7.0.0 |