|
技术交流 | 电路欣赏 | 工控天地 | 数字广电 | 通信技术 | 电源技术 | 测控之家 | EMC技术 | ARM技术 | EDA技术 | PCB技术 | 嵌入式系统 驱动编程 | 集成电路 | 器件替换 | 模拟技术 | 新手园地 | 单 片 机 | DSP技术 | MCU技术 | IC 设计 | IC 产业 | CAN-bus/DeviceNe |
[求助]关于TJMP的一个搞不明白的地方 |
作者:大俊 栏目:MCU技术 |
各位大虾,俺以前碰到这样的情况,把TJMP放在一个ROMBANK的最后一个地址时,程序总是跑飞,也不知道跑哪去了,晕死,真的粉奇怪。搞得后来都是把TJMP放到一个表格的前面,不知道哪位高手知道是什么原因啊,帮忙解释一下,多谢! * - 本贴最后修改时间:2006-9-15 17:18:50 修改者:大俊 |
2楼: | >>参与讨论 |
作者: jusun66 于 2006/9/16 12:37:00 发布:
我也见过 呵,这个问题我也碰过,不过我现在知道了。 因为TJMP的跳转地址是(PC11~PC8)(TBR)(ACC),举个例子,比如现在把TJMP放在7FFH的地址,因为执行TJMP的时候PC值会自加一,这个时候(PC11~PC8)将变成000B,所以TJMP不会跳到7(TBR)(ACC)的位置,而且跳到了0(TBR)(ACC)的位置,你可以用单步跑去看看TJMP跳到哪里的。 不知道你碰到问题是不是这样的呢?如果是,还是建议不要把TJMP放在ROMBANK结尾了,一不小心可能就出问题了,现在我也都是不放在结尾的。 |
3楼: | >>参与讨论 |
作者: yewuyi 于 2006/9/16 12:40:00 发布:
都忘了…… SINO的资料问题多多,记得当时我用的时候订正了老多问题…… |
4楼: | >>参与讨论 |
作者: iammercy 于 2006/9/16 21:35:00 发布:
那如果建一个大于256个Byte的表如何寻址 |
5楼: | >>参与讨论 |
作者: warm_ice 于 2006/9/18 10:11:00 发布:
中颖MCU “jusun66”朋友对于“TJMP”查表的解释是正确的,一般建议朋友们不要把TJMP放在如7FFH,3FFH,1FFH,2FFH等这些位置,以免出现问题,当然,有些经验丰富的朋友也会拿这个来对程序进行加密,呵呵。 “iammercy”朋友,如果要定义大于256行的表格,一个方法是把这个表分几个子表来做;另一个方法是对于中颖的一些IC,有RDT查表的功能,可以无限定义表的大小,且可以充分利用16位ROM的空间。 |
6楼: | >>参与讨论 |
作者: yewuyi 于 2006/9/18 10:51:00 发布:
RDT似乎不是什么芯片都可以用的把? 69P42似乎就不支持,大表只能分开查。 |
7楼: | >>参与讨论 |
作者: 大俊 于 2006/9/18 11:25:00 发布:
谢谢 大家真是太热情了,谢谢了。 RDT好象是有一些芯片不支持的哦,看看SPEC就知道了 |
8楼: | >>参与讨论 |
作者: 无涯 于 2006/11/25 15:05:00 发布:
RDT jusun66老兄真是高!!! 使用RDT有两个毛病, 一、仿真时经常跑飞,复位或者重新下载程序都不能恢复正常,一定要把ICE断电重来才行,我用的是USB ICE66+67P54EVB。 二、建表格时,DW后面不能写表达式,比如下面的一句就不能编译通过 DW (1010B<<4) | 0011B 只能自己把这个16bit的数值计算好填进去,NND,过上一段时间,神仙也不知道这个数是怎么来的了。 BTW,旧版的的编译器是可以这样写的,所以啊,偶都是用旧版编译器编译,再调进去调试。唉,中颖竟然能把编译器越弄越差,真是服了。 |
9楼: | >>参与讨论 |
作者: 无产阶级 于 2006/11/25 17:07:00 发布:
看帖学东西 新手,看看大家的帖子学到了不少,编程时注意了。 |
10楼: | >>参与讨论 |
作者: ylc_go 于 2006/11/27 16:24:00 发布:
同感于RDT RDT使用起来确实是问题多多啊,我用69P26做过一个产品,在做查表的时候发现有RDT,真是高兴了好一会,可是程序写好了,发现仿真跑起来就是不对,地址值怎么也无法改变,用了中颖网站的一个源程序试了试也不行,真是郁闷啊,最后还是用传统的TJMP来查表~~~建议大家还是用TJMP吧~~ 不过有哪位大侠知道如何使用RDT还请赐教啊~ |
11楼: | >>参与讨论 |
作者: iammercy 于 2006/12/6 8:57:00 发布:
re ;SH69P48 rnRDT1 EQU 380h rnRDT2 EQU 381h rnRDT3 EQU 382h rnRDT4 EQU 383h zWk0 EQU 40h zWk1 EQU 41h zWk2 EQU 42h zWk3 EQU 43h ORG 0000H ldi zWk0 ,0x00 sta rnRDT4&0x7f ,(rnRDT4>>7)&0x07 ldi zWk0 ,0x08 sta rnRDT3&0x7f ,(rnRDT3>>7)&0x07 ldi zWk0 ,0x00 sta rnRDT2&0x7f ,(rnRDT2>>7)&0x07 ldi zWk0 ,0x00 sta rnRDT1&0x7f ,(rnRDT1>>7)&0x07 nop lda rnRDT4&0x7f ,(rnRDT4>>7)&0x07 sta zWk3 ,0 lda rnRDT3&0x7f ,(rnRDT3>>7)&0x07 sta zWk2 ,0 lda rnRDT2&0x7f ,(rnRDT2>>7)&0x07 sta zWk1 ,0 lda rnRDT1&0x7f ,(rnRDT1>>7)&0x07 sta zWk0 ,0 Debug: ;set a breakpoint here nop nop jmp Debug org 0800h DW 0x4567 END |
12楼: | >>参与讨论 |
作者: 高建明 于 2006/12/8 8:02:00 发布:
地址写进RDT的时候需要延时一个NOP再读取,否则会出错! |
13楼: | >>参与讨论 |
作者: zwp12002 于 2006/12/21 20:31:00 发布:
不是吧. 是不是你的TBR和A没设置好吧??我用那么久都放在后面,没出什么事. |
14楼: | >>参与讨论 |
作者: christy6 于 2007/4/17 21:08:00 发布:
SDRAM测试 各位大虾,在ARM的平台上怎样来测试SDRAM的好坏啊 使用ARM的NANDBOOT模式,来读写SDRAM 测试SDRAM有什么标准啊 |
|
|
免费注册为维库电子开发网会员,参与电子工程师社区讨论,点此进入 |
Copyright © 1998-2006 www.dzsc.com 浙ICP证030469号 |