[DSP编程] 28335进入中断后给片选空间赋值

[复制链接]
2669|16
 楼主| TLZme 发表于 2013-9-13 20:40 | 显示全部楼层 |阅读模式
主要代码如下,为什么我把  *ExRamStart=i  注释掉之后就可以进入中断函数,可以仿真运行,LED闪烁正常;而未注释掉就不能进入中断函数了,仿真运行时软件卡死?


Uint16    *ExRamStart = (Uint16 *)0x274000;//操作地址
Uint16 i=0x00;                             //变量

interrupt void ISRTimer0(void)             //定时器0中断函数
{
    CpuTimer0.InterruptCount++;
    PieCtrlRegs.PIEACK.all = PIEACK_GROUP1;
    CpuTimer0Regs.TCR.bit.TIF=1;      
    CpuTimer0Regs.TCR.bit.TRB=1;

        LED1=~LED1;                  //指示灯
           
       

                i++;
                if(i==0x3f)
                {
                        i=0x00;
                }

        //        *ExRamStart=i;       // 在这个地址中写入变量i

}
 楼主| TLZme 发表于 2013-9-13 20:41 | 显示全部楼层
求指点啊
 楼主| TLZme 发表于 2013-9-15 22:21 | 显示全部楼层
:L木人顶……
zhangmangui 发表于 2013-9-16 09:01 | 显示全部楼层
确实很奇怪  你查查这个地址是不是冲突了
中断肯定没问题   你设置硬件断点  
根本进不去吗

评分

参与人数 1威望 +2 收起 理由
TLZme + 2

查看全部评分

 楼主| TLZme 发表于 2013-9-16 15:07 | 显示全部楼层
zhangmangui 发表于 2013-9-16 09:01
确实很奇怪  你查查这个地址是不是冲突了
中断肯定没问题   你设置硬件断点  
根本进不去吗 ...

能进去一次 ,就跳不出来了,  是不是 *ExRamStart=i;这句有问题啊……
zhangmangui 发表于 2013-9-16 15:45 | 显示全部楼层
TLZme 发表于 2013-9-16 15:07
能进去一次 ,就跳不出来了,  是不是 *ExRamStart=i;这句有问题啊……

那就要看看你写的这个地址是否做了不合法的修改

评分

参与人数 1威望 +2 收起 理由
TLZme + 2

查看全部评分

 楼主| TLZme 发表于 2013-9-16 16:52 | 显示全部楼层
zhangmangui 发表于 2013-9-16 15:45
那就要看看你写的这个地址是否做了不合法的修改

我想每秒改变一次这个地址 0x274000 里的数据一次 , 只在 Uint16    *ExRamStart = (Uint16 *)0x274000;这里 和 *ExRamStart=i 这里用了这个指针,其他地方没用……  应该没修改吧?  是不是我的用法有问题啊?
zhangmangui 发表于 2013-9-16 18:45 | 显示全部楼层
TLZme 发表于 2013-9-16 16:52
我想每秒改变一次这个地址 0x274000 里的数据一次 , 只在 Uint16    *ExRamStart = (Uint16 *)0x274000; ...

我的意思是看看这个地址274000是否合理   

评分

参与人数 1威望 +1 收起 理由
TLZme + 1 赞一个!

查看全部评分

 楼主| TLZme 发表于 2013-9-17 16:54 | 显示全部楼层
本帖最后由 TLZme 于 2013-9-17 16:55 编辑
zhangmangui 发表于 2013-9-16 18:45
我的意思是看看这个地址274000是否合理

  CMD里PAGE 0 里有
  ZONE7A     : origin = 0x200000, length = 0x00FC00
跟这个有关系吗?
274000是我从200000这个片选分出来的
zhangmangui 发表于 2013-9-17 17:47 | 显示全部楼层
TLZme 发表于 2013-9-17 16:54
CMD里PAGE 0 里有
  ZONE7A     : origin = 0x200000, length = 0x00FC00
跟这个有关系吗?

origin = 0x200000, length = 0x00FC00
这个相加也不是你指的这个地址吧
你再
查查274000

评分

参与人数 1威望 +1 收起 理由
TLZme + 1

查看全部评分

 楼主| TLZme 发表于 2013-9-18 15:32 | 显示全部楼层
zhangmangui 发表于 2013-9-17 17:47
origin = 0x200000, length = 0x00FC00
这个相加也不是你指的这个地址吧
你再

查来查去,没其他地方用到这个地址,cmd里的zone7a和zone7b我可以删除吧?我用的cs7 译码出的地址都是控制一些器件,我用的cs6接的ram……
我用cs7,wr和a14~a18译码出一个地址274000控制几个led,通过定时器里的变量控制led的闪烁的……
有可能是我译码有问题,你有什么cpld译码的例子吗?
zhangmangui 发表于 2013-9-20 12:27 | 显示全部楼层
TLZme 发表于 2013-9-18 15:32
查来查去,没其他地方用到这个地址,cmd里的zone7a和zone7b我可以删除吧?我用的cs7 译码出的地址都是控 ...

zone7应该是外扩RAM或flash   cpld的译码代码你拿到板子的厂家没给你吗   你最好要到他们的
你也可以去我分享的这里看看   有对于TI的一些EVM板的cpld代码
https://bbs.21ic.com/icview-553378-1-1.html

评分

参与人数 1威望 +1 收起 理由
TLZme + 1

查看全部评分

 楼主| TLZme 发表于 2013-9-22 19:32 | 显示全部楼层
zhangmangui 发表于 2013-9-22 22:44 | 显示全部楼层
TLZme 发表于 2013-9-22 19:32
谢谢回答!还是搞不定这是另一个版主的回答;需要的朋友看看

谢谢   大家可能对你的问题理解的不是很清楚   还望你在研究一下
解决了给大家分享一下
yangmiao0223 发表于 2013-9-23 09:17 | 显示全部楼层
zhangmangui 版主讲的很对啊   你的外扩芯片 有那么大的容量么   定义在了0x274000
查查cpld译码  
yangmiao0223 发表于 2013-9-23 09:18 | 显示全部楼层
你这么直接对地址赋值  跟cmd一点关系也没有。。。。

评分

参与人数 1威望 +1 收起 理由
TLZme + 1

查看全部评分

qh2277341087 发表于 2013-10-12 19:25 | 显示全部楼层
您需要登录后才可以回帖 登录 | 注册

本版积分规则

12

主题

147

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部