Board logo

标题: FCS Warning (ID 25): writing to reserved register [打印本页]

作者: Huangh22135    时间: 2006-7-24 14:06     标题: FCS Warning (ID 25): writing to reserved register

我在软件debug的时候,在运行_startup的Init程序时,command栏里出现如下错误信息


FCS Warning (ID 25): writing to reserved register at pc = 0xc033.
这是什么原因呢?


难道是由于我在调用_startup之前改变了寄存器和ram的映射?


我用的是D64,register映射到0x1000,ram从0到0x0fff。


作者: strongchen    时间: 2006-7-24 15:07

你如果改变了寄存器的映射,那么也要相应地修改PRM文件中的参数。
作者: Huangh22135    时间: 2006-7-24 15:15

多谢回复,我想知道,对寄存器和ram以及eeprom的映射进行修改应该在_startup函数之前还是之后呢?
我现在是在_startup函数开始之前修改的
#pragma NO_FRAME
#pragma NO_ENTRY
#pragma NO_EXIT
#pragma NO_RETURN
void near LIN_Startup( void )
{

INITRM = 0; /* fisrt step: Initialize INITRM register (RAM allocation) */
INITRG = 10; /* last step: initialize INITRG registers (I/O registers allocation) */

asm /* Jump to normal startup */
{
jmp _Startup
}
}
还是应该在执行完_startup后在main()里修改?



作者: strongchen    时间: 2006-7-24 15:20

最好还是在main()里修改。
作者: Huangh22135    时间: 2006-7-24 15:58

采用上述方法时,再debug中发现一个问题,百思不得其解
INITRM和INITRG的赋值语句为
INITRM = xxx; xxx为一个变量等于0
INITRG = yyy; yyy为一个变量等于0x10

相应的汇编语句分别为:
C166 LDAB 0xC056 ;0xC056为xxx的地址,我看了值为0
C169 STAB 0x10 ;0x10是INITRAM的初始化地址
C16B LDAB 0xc057 ;0xC056为xxx的地址,我看了值为0x10
C163 STAB 0x11 ;0x11是INITRG的初始化地址
但是我单步执行时
commond栏里出现如下warning
writing to unimplemented register at pc = 0xc16b.

我就纳闷了,为什么0x10和0x11是未使用的寄存器呢?
而且虽然出现了warning,但是能一直运行下去。

作者: strongchen    时间: 2006-7-25 10:18

这应该还是与PRM文件的设置有关。




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0