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

jl8中写mor寄存器

jl8中写mor寄存器

执行(*((byte *) 0xffd0))=0x7f;但是单步运行后ffd0单元还是0xff并没有发生改变,不知什么原因,应怎么解决?0xffd0单元是non-volatile falsh寄存器。
该寄存器标注为:non-volatile falsh register, write by programming
就是说不可以通过指令来写该寄存器,必须在烧片子的时候改写。
可以尝试用const 常量的方法,或者嵌入汇编,用FCB 写入
"用const 常量的方法,或者嵌入汇编,用FCB 写入"具体怎么写这个语句?
const mor @0xffd0=0x80;可以烧写.
我有同样的问题.
嵌入汇编,用FCB 写入时,确在PROGRAM时出现错误.
请问用FCB 写入时,有什么要注意的地方?

Thanks!
Carter
Carter 
用FCB时,先要用org定义地址,比如$FFD0
另外,要注意在prm文件的地址分配中把该地址$FFD0去掉,不然会有重叠。
请问要如何在prm文件的地址分配中把该地址$FFD0去掉
我把工程文件打包发给您,请帮我看一下.
Thanks!
Carter 
就用@的格式定义常量地址即可,这是最简单的方法。
海纳百川  有容乃大
用PROG08SZ烧录时,值有写进去,但最后两个BYEE会出现错误.
用ICD烧录时,设定的数值没有写进去.
为何会出现这种状况?
Carter 
“最后两个BYTE”指的是什么?
海纳百川  有容乃大
$fffe and $ffff 这两个BYTE设定的数值没有写进去.
Carter 
$FFFE和$FFFF是复位中断矢量地址。为什么要用这种方式定义?
海纳百川  有容乃大
我要定义的地址只有$FFD0,这个地址也有写进去.
整个程序中完全没有去定义到$FFFE & $FFFF
但不知为何在PROGRAM时,$FFFE & $FFFF就是会出现错误.
Carter 
$FFFE和$FFFF是复位矢量,程序编译完成后自然会生成一个相应的地址,并在编程时写入。你所说的“出错”,到底是什么意思?
海纳百川  有容乃大
没错,这两个地址是复位向量,所以在程序编译后会自动产生.
我所谓的出现错误情况如下:
Programming Address $FFD0. Error during programming.
我猜可能是Prog08SZ(2.05版).
因为这两天我试着用CW3.1 ICD可以写进去.

[此贴子已经被作者于2005-5-18 12:29:46编辑过]

Carter 
返回列表