anjf163 当前离线
注册会员
我设计的一个NIOS II的小系统,用的是EP1C6Q240芯片。
本来跑的挺好的,现在因为一个外围模块需要一些内部RAM,所以我将Nios2/f处理器的Instruction Cache调为2KBytes ,将Data Cache调整为2K,现在问题就来了。程序总是跳到alt_irq_entry()函数中。并且会死在那里。但若跑小一点的程序就很好。IDE里面的模版程序都能跑。
我想问是不是不能调整Instruction Cache 的大小啊!好郁闷啊!困扰了好几天了!
帮帮忙吧?
订阅 TOP
caopengly 当前离线
版主
论坛元老
你是说你的程序在没有中断的时候,程序会跑到alt_irq_entry()。
而跑一些小的程序(你指的小程序有没有中断),就没有问题。
我觉得你的cache大小的改变不会影响程序的运行,如果你的sdram的速度足够快,你可以将instruction cache设为0,将data cache设为512,这样的话,就可以排除是cache的影响,因为很小的了,你不妨试试,如果还有你说的问题,再看看其他问题。
TOP
非常感谢!我再试一下!
caopengly 谢谢!
终于找到问题了!都是拷贝代码惹的祸!
我在软件系统中使用了UCOSII操作系统,在创建任务的时候,我写了一个任务的创建代码,其他的任务都是在这个任务的创建代码上拷贝修改得来的,有一个任务的任务堆栈名字没改过来造成的!
现在很稳定了!
真是教训啊! 困扰了几天了!
最后再次感谢!
呵呵,其实我觉得我们做事一定要小心,很多看似很复杂的问题都是由一些不经意的小错误造成的。
以前有位同仁,下flash每次都成功,但是就是不对,后来才发现是系统中有两个flash镜像。
muyali 当前离线