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

FCS Warning (ID 25): writing to reserved register

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。

你如果改变了寄存器的映射,那么也要相应地修改PRM文件中的参数。
海纳百川  有容乃大
多谢回复,我想知道,对寄存器和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()里修改?


最好还是在main()里修改。
海纳百川  有容乃大
采用上述方法时,再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,但是能一直运行下去。
这应该还是与PRM文件的设置有关。
海纳百川  有容乃大
返回列表