6148|16

85

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

程序调试问题 [复制链接]

我的TIMER控制寄存器设置为0x03c1,可是运行后变成0x0B85和0x0385,这是为何?

而且我的TIMER1的计数寄存器一直就不动,这是为什么呢?

最新回复

     我想,你大概只需要把用到的几个(十来个?)汉字的点阵数据放在 FLASH  中,不会把 GB-2312-80 的七千多汉字统统放进去吧? 一个汉字点阵数据要16 个word,放上十来个汉字,自己另外规定一套编码:0 代表某字,1 又代表某字,...,然后写一个函数来读取点阵数据,我想是可行的。如果确实如此,可以试做做这个练习题。  详情 回复 发表于 2007-7-28 02:36
点赞 关注

回复
举报

89

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
哪种片子?
 
 
 

回复

60

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
64的片子,基本解决了,Timer1还是工作的,

但是理论上还是1不明白

对应的改变是6位和2位,对应的是GO和DATOUT

我在中断序列号8程序(EDMA中断)里面对CIPR寄存器清零,可是其还是不变

这样无法响应下一次中断

资料上这么写道:发生EDMA中断,CPU的中断服务程序需要读CIPR寄存器

判断是否有通道事件发生,以及那个事件,然后进行相应的操作

在ISR中,还需要手工清除CIPR中的中断标志,以保证捕获后续发生的中断
 
 
 

回复

87

帖子

0

TA的资源

一粒金砂(初级)

4
 
我用的是DSK6416,要用EDMA不
 
 
 

回复

66

帖子

0

TA的资源

一粒金砂(初级)

5
 
还是没有什么进展,

在EDMA中断中,资料明明说了手动清除CIPR

可是我CIPR=0x0000;却没有用(在register window里面观察)

这样就不能相应下一次中断了,有哪位大哥知道怎么清CIPR吗?
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

6
 
终于搞定了:)清0的时候写1
 
 
 

回复

62

帖子

0

TA的资源

一粒金砂(初级)

7
 
     DSP 中这一类折磨人的东西多得很,写1 表示清 0 ,还有 BIT 测试指令中,bit code 为 0 表示第15 位,为 15 则表示 0 位。如此等等,稍一疏忽就入套了。解决了就好。
 
 
 

回复

82

帖子

0

TA的资源

一粒金砂(初级)

8
 
获得x、y、z三个变量的地址后,通过菜单VIEW\\MEMORY查看相应地址即可。
 
 
 

回复

60

帖子

0

TA的资源

一粒金砂(初级)

9
 
就是#pragma DATA_SECTION()
      #pragma CODE_SECTION()
 
 
 

回复

58

帖子

0

TA的资源

一粒金砂(初级)

10
 
  可扩张空间意思就是有这个地址码空间。空间里的物理存储器件自然是要“扩展”上去的,也就是说DSP芯片里是没有的。 DSP芯片里集成的存储单元,手册里讲的很清楚了,就是(2407A)32k字的FLASH, 2K SARAM,加上 544字的DARAM。
 
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

11
 
  把正弦函数表放到程序存储区里,我以前是用汇编语言写一段代码来实现的。按楼上网友的提示,可以用:
就是#pragma DATA_SECTION()
      #pragma CODE_SECTION()

到要试试。
 
 
 

回复

63

帖子

0

TA的资源

一粒金砂(初级)

12
 
    我试了:  #pragma CODE_SECTION()    伪指令,好像没有达到不“把常数表放到程序地址区”的目的。比如写:
  #pragma CODE_SECTION(ChinessChar,“My_Sec\"; )
  unsigned int ChineseChar[] = {xxxx,xxxx,xxxx,xxxx,....,xxxx};

  从编译出的汇编代码来看,跟:
#pragma DATA_SECTION(ChinessChar,“My_Sec\"; )
没有区别,还是在数据空间中分配存储器,用:
  s = ChineseChar;
  读取数据时,生成的代码照样用:BLDD 指令。
该怎么做才行: true 兄可以指教一二么?
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

13
 
    我试了:  #pragma CODE_SECTION()    伪指令,好像没有达到不“把常数表放到程序地址区”的目的。比如写:
  #pragma CODE_SECTION(ChinessChar,“My_Sec\"; )
  unsigned int ChineseChar[] = {xxxx,xxxx,xxxx,xxxx,....,xxxx};

  从编译出的汇编代码来看,跟:
#pragma DATA_SECTION(ChinessChar,“My_Sec\"; )
没有区别,还是在数据空间中分配存储器,用:
  s = ChineseChar;
  读取数据时,生成的代码照样用:BLDD 指令。
该怎么做才行: true 兄可以指教一二么?
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

14
 
是吗?你的my_sec是指向哪里的?
如果是片内程序ram就是把你的东西放在那里
具体可以查看ccs的帮助的
 
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

15
 
     我的仿真器出了毛病,只能做编译,看看目标代码,无法 DEBUG。
   我的实验是这样的:程序中写:
#pragma  CODE_SECTION(ChineseChr,\"My_Sec\";
unsigned int ChineseChr[] = {xxxx,xxxx,xxxx,...,xxx,xxx};
unsegned int s;
void GetChr(unsigned int j)
{
  r = ChineseChr[j];
}
cmd 文件中当然写了:  
   .My_Sec:{} 〉PROG  PAGE 0
    问题是, DSP  程序地址总线和数据地址总线是分开的,读取程序区与数据区,用的是不同的指令。如果编译的处理不匹配,连接时(尽管改了CMD)也无能为力。
   我看到编译出的 ASM  文件是:
_ChineseChr   .usect  \"My_Sec\",128,1
   读代码表 r = ChineseChr[j]  编译为:
  LAC    *,AR0    ; j 值取到 AR2,
   ADLK   _ChineseChr,0   ;加上 _ChineseChr ,得到地址
   SACL    *
   LAR      AR3,* ,AR3 ;经过AR0 指示的工作单元,把地址传到 AR3
   BLDD    *,#r,AR1

   用的是  BLDD  指令,还是从数据存储空间中读数。
 
 
 

回复

89

帖子

0

TA的资源

一粒金砂(初级)

16
 
     如果用汇编语言写一个函数 GetMatrix  来读出程序存储区(开发阶段可以在扩展RAM,最终定位到片内 FLASH )中的汉字字形点阵数据,当然可以实现,手边也有类似的例子。但是用汇编语言,编程,调试,维护都比较困难,所以我也很想学一种完全用 C 语言解决这一问题的办法。
 
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

17
 
     我想,你大概只需要把用到的几个(十来个?)汉字的点阵数据放在 FLASH  中,不会把 GB-2312-80 的七千多汉字统统放进去吧? 一个汉字点阵数据要16 个word,放上十来个汉字,自己另外规定一套编码:0 代表某字,1 又代表某字,...,然后写一个函数来读取点阵数据,我想是可行的。如果确实如此,可以试做做这个练习题。
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表