义隆单片机 用户ID寄存器
义隆单片机在烧录的时候,有个用户ID寄存器,也就是Rolling Code,请问在程序里面怎么读取这个ID码,用什么指令,这个ID码存在什么地方?可以的话给个范例,谢谢了! 客户ID和Rolling Code不是一码 elan在option区域有客户ID的位置,是运行时是不能读的但Rolling Code是运行时可以读取的 那ROLLING CODE 怎么读取?用什么指令,这个ID码存在什么地方?可以的话给个范例,谢谢 ID码就相当打个标记,不能读 本帖最后由 谈的元 于 2010-10-9 22:28 编辑
滚动码就是改程序,
比如有一个程序:
org0x0
nop
mova,@0x00;// 假如你滚动烧写的地址设在这里
mov 0x20,a
nop
nop
mova,0x21;//假设0x21是无线通信接收到的数据
xor a,0x20;
jbs3,2
jmp aa
jmp bb
aa: nop
jmpcc
bb: 打开车门
jmpcc
cc:
nop
end
///////////
滚动烧写后就变为org0x0
nop
mova,@0x01;//
mov 0x20,a
nop
nop
mova,0x21;//假设0x21是无线通信接收到的数据
xor a,0x20;
jbs3,2
jmp aa
jmp bb
aa: nop
jmpcc
bb: 打开车门
jmpcc
cc:
nop
end
下一个烧写就变为
org0x0
nop
mova,@0x02;//
mov 0x20,a
nop
nop
mova,0x21;//假设0x21是无线通信接收到的数据
xor a,0x20;
jbs3,2
jmp aa
jmp bb
aa: nop
jmpcc
bb: 打开车门
jmpcc
cc:
nop
end 这么做的目的:如果变量 0X20接收到0X00就是第1个芯片打开车门
如果变量 0X20接收到0X01就是第2个芯片打开车门
...
有了序列号,实现了区别 本帖最后由 谈的元 于 2010-10-9 22:48 编辑
同时滚动地址只能设置在语句MOV A,@2这种与RETL0X11这样的地方,
也只有 这些地方才有意义
同时,一般变化规律为等差数列,这样实现简单,用的也多 义隆的不是很了解,
不过SONIX里读取的方法就跟汇编查表是一样的。 义隆的用户ID码,是客户在烧录时设置的,客户无法通过程式去读写。
此用户ID码,有的客户用来作程式的版本号;有的用来作烧录日期;主要看编程人员怎样用。若今后程式有问题,可以用烧录器读出此用户ID码。 谈的元 发表于 2010-10-9 22:24
滚动码就是改程序,
比如有一个程序:
你好,请教一下。
add pc,a
这个指令,用在程序开头处,是不是可以做到读随机数
页:
[1]