TLZme 发表于 2013-9-13 20:40

28335进入中断后给片选空间赋值

主要代码如下,为什么我把*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

确实很奇怪你查查这个地址是不是冲突了
中断肯定没问题   你设置硬件断点
根本进不去吗

TLZme 发表于 2013-9-16 15:07

zhangmangui 发表于 2013-9-16 09:01 static/image/common/back.gif
确实很奇怪你查查这个地址是不是冲突了
中断肯定没问题   你设置硬件断点
根本进不去吗 ...

能进去一次 ,就跳不出来了,是不是 *ExRamStart=i;这句有问题啊……

zhangmangui 发表于 2013-9-16 15:45

TLZme 发表于 2013-9-16 15:07 static/image/common/back.gif
能进去一次 ,就跳不出来了,是不是 *ExRamStart=i;这句有问题啊……

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

TLZme 发表于 2013-9-16 16:52

zhangmangui 发表于 2013-9-16 15:45 static/image/common/back.gif
那就要看看你写的这个地址是否做了不合法的修改

我想每秒改变一次这个地址 0x274000 里的数据一次 , 只在 Uint16    *ExRamStart = (Uint16 *)0x274000;这里 和 *ExRamStart=i 这里用了这个指针,其他地方没用……应该没修改吧?是不是我的用法有问题啊?

zhangmangui 发表于 2013-9-16 18:45

TLZme 发表于 2013-9-16 16:52 static/image/common/back.gif
我想每秒改变一次这个地址 0x274000 里的数据一次 , 只在 Uint16    *ExRamStart = (Uint16 *)0x274000; ...

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

TLZme 发表于 2013-9-17 16:54

本帖最后由 TLZme 于 2013-9-17 16:55 编辑

zhangmangui 发表于 2013-9-16 18:45 static/image/common/back.gif
我的意思是看看这个地址274000是否合理
CMD里PAGE 0 里有
ZONE7A   : origin = 0x200000, length = 0x00FC00
跟这个有关系吗?
274000是我从200000这个片选分出来的

zhangmangui 发表于 2013-9-17 17:47

TLZme 发表于 2013-9-17 16:54 static/image/common/back.gif
CMD里PAGE 0 里有
ZONE7A   : origin = 0x200000, length = 0x00FC00
跟这个有关系吗?


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

TLZme 发表于 2013-9-18 15:32

zhangmangui 发表于 2013-9-17 17:47 static/image/common/back.gif
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 static/image/common/back.gif
查来查去,没其他地方用到这个地址,cmd里的zone7a和zone7b我可以删除吧?我用的cs7 译码出的地址都是控 ...
zone7应该是外扩RAM或flash   cpld的译码代码你拿到板子的厂家没给你吗   你最好要到他们的
你也可以去我分享的这里看看   有对于TI的一些EVM板的cpld代码
https://bbs.21ic.com/icview-553378-1-1.html

TLZme 发表于 2013-9-22 19:32

谢谢回答!:Q还是搞不定这是另一个版主的回答;需要的朋友看看

zhangmangui 发表于 2013-9-22 22:44

TLZme 发表于 2013-9-22 19:32 static/image/common/back.gif
谢谢回答!还是搞不定这是另一个版主的回答;需要的朋友看看

谢谢   大家可能对你的问题理解的不是很清楚   还望你在研究一下
解决了给大家分享一下

yangmiao0223 发表于 2013-9-23 09:17

zhangmangui 版主讲的很对啊   你的外扩芯片 有那么大的容量么   定义在了0x274000
查查cpld译码

yangmiao0223 发表于 2013-9-23 09:18

你这么直接对地址赋值跟cmd一点关系也没有。。。。

qh2277341087 发表于 2013-10-12 19:25

看看
页: [1]
查看完整版本: 28335进入中断后给片选空间赋值