激动哇!振奋哇!NIOS2终于可以在FALSH中跑起来了哇!!!
前几天在网上发帖,我的NIOS2 老是在FLASH中没法跑起了,
今天中午,忍受着饥锇的煎熬,终于2007 年8月27日,12点50分,这是NIOS开发历史上的大事,将我自己开发的一第一块NIOS2从软件到硬件全部调通,真是让人兴奋,让世人剐目相看!!!,令世人震惊!!!
经过这次NIOS2开发经历,让我感受到搞技术的辛酸与成功的喜悦!
高兴归高兴,还是说说我处理问题的细节吧:
前面提到我虽然把程序下载到FALSH里了,但是并没在FLASH中跑起来,其原因是在NIOS2 IDE,要将systerm library 中选项配置成如下:
program memory (.TEXT) :配置成 CFI—FLASH
read-only data memory(.rodat) 配置成CFI-FLASH
其余如.RWDATA等只能配制在RAM中;
我原来的错误就是把.TEXT 和.rodata配置在SRAM中了,所以程序只能在SRAM中调试,
如果要在FLASH中运行程序,一定要将.text 和.rodta配置在CFI-FLASH中。
这样一下载程序,就能上电运行了!!!!!
希望我的NIOS开发过程所碰到的问题及解决办法能为初步开发NIOS2和将要开发NIOS2的朋友提供一点点成功的经验:细节决定成败!!!!这句话说得多好啊
真不容易啊!都看你最近问了好多问题了!
恭喜一下!
我一直也被这个困扰着,赶紧试一试。
有类似问题的朋友,就问我哈
楼主还想不想再次“让人兴奋,让世人剐目相看!!!,令世人震惊!!!”呢
机会来了,去帮我研究一下中断该怎么样实现吧!!
我在这里静候下一个历史时刻的到来~~
program memory (.TEXT) :配置成 CFI—FLASH
read-only data memory(.rodat) 配置成CFI-FLASH
在那儿设置的?
----我也遇到Flash下载的问题,情形和楼主差不多,最近没有时间作这方面的实验!请教了!谢谢!
我曾经是,QII的里的东西(硬件部分),能烧写到flash里了并且通电后能够完成配置(掉电后不用再通过QII Programmer下载.sof文件)。但是niosII里的东西(软件部分),不能通过flash配置(还要Debug As才能运行)!
后来,去搞VHDL的IP编写了没时间看看相关知识,[em07]在这里请教楼主了,谢谢!
[此贴子已经被作者于2007-8-29 11:58:25编辑过]
program memory (.TEXT) :配置成 CFI—FLASH
read-only data memory(.rodat) 配置成CFI-FLASH
在那儿设置的?
----我也遇到Flash下载的问题,情形和楼主差不多,最近没有时间作这方面的实验!请教了!谢谢!
haha 这个我都懂
在Resource→XXX_syslib[XX]→Properties→system library里面
[em05]恭喜楼主,有问题到论坛来交流交流。
haha 这个我都懂
在Resource→XXX_syslib[XX]→Properties→system library里面
[em05]^_^ 谢谢哥们!好!
楼主还想不想再次“让人兴奋,让世人剐目相看!!!,令世人震惊!!!”呢
机会来了,去帮我研究一下中断该怎么样实现吧!!
我在这里静候下一个历史时刻的到来~~
你中断有什么问题?说来听听
哎 什么都好 就是进不了定时器中断程序[em06]
#include "system.h"
#include "altera_avalon_pio_regs.h"
#include "alt_types.h"
#include <stdio.h>
#include <io.h>
#include "sys/alt_irq.h"
void do_timer( void * context, alt_u32 id )
{
IOWR(TIMER_0_BASE,0,0);
XXXXXXXXXXXXXXXXXX;//这部分是自己的程序,单独作为main运行过,没问题。
return 0;
}
int main ()
{
alt_irq_register( TIMER_0_IRQ, (void *)0, do_timer );
IOWR( TIMER_0_BASE, 1, 0x7 ); ←每次运行到这里就不再望下走了!!TIMER的地址里是03 00 00 00 07 00 00 00 ……
while(1){;}
}
XXXXX部分换成printf("Hello from Nios II!\n");也不会有输出。
哎 什么都好 就是进不了定时器中断程序[em06]
#include "system.h"
#include "altera_avalon_pio_regs.h"
#include "alt_types.h"
#include <stdio.h>
#include <io.h>
#include "sys/alt_irq.h"
void do_timer( void * context, alt_u32 id )
{
IOWR(TIMER_0_BASE,0,0);
XXXXXXXXXXXXXXXXXX;//这部分是自己的程序,单独作为main运行过,没问题。
return 0;
}
int main ()
{
alt_irq_register( TIMER_0_IRQ, (void *)0, do_timer );
IOWR( TIMER_0_BASE, 1, 0x7 ); ←每次运行到这里就不再望下走了!!TIMER的地址里是03 00 00 00 07 00 00 00 ……
while(1){;}
}
XXXXX部分换成printf("Hello from Nios II!\n");也不会有输出。
感觉没错呀!!!!
你确定是用的int main () !?而不是用的int alt_main ()作为主程序的开头!?
是int main哦。
胡思乱想ing……
查到原因再告诉你们。
谢谢各位的支持,我会继续努力的,7楼的朋友,你要把NIOS配置。SOF下载到配置芯EPCS下行哦,用AS方式下载,NIOS中的软件。ELF就用flaSh programmer 烧写到CFI-FLASH中去,这样上电才行哦
报……报告~ 7楼和13楼里住的是同一个人
你好幸福哦
小弟现在正为这个问题所困绕呢!
明年第三法
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) | Powered by Discuz! 7.0.0 |