首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

关于.PRM

关于.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 和它的意思一样么?


谢谢!


 

追求想要得到的,得到我所追求的
好像在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
关于freescale的更多信息资料,欢迎访问http://www.yuan-ying.com
不是很明白
正在进行NE64的研究学习,欢迎和我讨论~ saga0807@hotmail.com
能不能说清楚一些呀,我也不是很明白???
追求想要得到的,得到我所追求的
我把CW2.0卸了现在用3.1,PRM定义的地址是对的,至于VECTOR 0我觉得应该和VECTOR ADDRESS 0xXXXX的意思是一样的,一个说的是0号中断,一个写的是地址
追求想要得到的,得到我所追求的
我觉得也是这样的,在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
关于freescale的更多信息资料,欢迎访问http://www.yuan-ying.com
是的, Vector 0 和Vector Address是一样的,标号0就是代表reset向量
返回列表