关于nios中printf的问题
最近在调程序才发现:在nios中,有printf的程序,在线调试没有什么问题,但是下到flash里面,程序跑了一段时间就死掉了!一直想不通这一问题!
不解!!有哪个大虾曾经碰到这一问题的,或者知道原因的,请求解答一下,在下不胜感激!! 网上一搜,
发现也有人出现类似的问题,
但是没有提到是什么问题 nios却实有很多不同寻常之处,有很多都和相像的不一样,比如usleep()的延时就很没规则。
不过你下载到板子里面去了就没必要用printf啊 回复【楼主位】jiangjx
最近在调程序才发现:在nios中,有printf的程序,在线调试没有什么问题,但是下到flash里面,程序跑了一段时间就死掉了!
一直想不通这一问题!
不解!!有哪个大虾曾经碰到这一问题的,或者知道原因的,请求解答一下,在下不胜感激!!
-----------------------------------------------------------------------
肯定的啊, jtag_uart有buffer的, 你不插着调试器, jtag_uart输出到buffer满掉后cpu就halt住了。 回复【2楼】yangshuhe33
nios却实有很多不同寻常之处,有很多都和相像的不一样,比如usleep()的延时就很没规则。
不过你下载到板子里面去了就没必要用printf啊
-----------------------------------------------------------------------
usleep() 没有规律? 啥意思
我知道如果你的cpu选择最小的那个的话, usleep()会变得不太准, 但是其它两个都是可以的。
而且精确定时, 应用软核的timer或者自己用HDL写一个模块 回复【3楼】marco.ma
-----------------------------------------------------------------------
肯定的啊, jtag_uart有buffer的, 你不插着调试器, jtag_uart输出到buffer满掉后cpu就halt住了。
这个解释到位。 回复【3楼】marco.ma
-----------------------------------------------------------------------
我是插着调试器的啊 回复【2楼】yangshuhe33
nios却实有很多不同寻常之处,有很多都和相像的不一样,比如usleep()的延时就很没规则。
不过你下载到板子里面去了就没必要用printf啊
-----------------------------------------------------------------------
是的,我只是想搞清楚是什么问题导致的 回复【4楼】marco.ma
-----------------------------------------------------------------------
http://www.vvcha.cn/c.aspx?id=194837 回复【5楼】yuphone .COM 缺氧®
回复【3楼】marco.ma
-----------------------------------------------------------------------
肯定的啊, jtag_uart有buffer的, 你不插着调试器, jtag_uart输出到buffer满掉后cpu就halt住了。
这个解释到位。
-----------------------------------------------------------------------
我绝对是插着调试器的 回复【9楼】jiangjx
回复【5楼】yuphone .com 缺氧®
回复【3楼】marco.ma
-----------------------------------------------------------------------
肯定的啊, jtag_uart有buffer的, 你不插着调试器, jtag_uart输出到buffer满掉后cpu就halt住了。
这个解释到位。
-----------------------------------------------------------------------
我绝对是插着调试器的
-----------------------------------------------------------------------
你插着jtag, 同时有看到调试信息不断打印出来吗? 还是仅仅物理上插着而已? 回复【10楼】marco.ma
-----------------------------------------------------------------------
没看到有打印出来数据 ,我是插着调试器的
请问你说的插着调试器 是什么意思呢? 回复【8楼】yangshuhe33
-----------------------------------------------------------------------
这个网站真是的,淡淡(韩彬)写的东西,他转载过去也不注明出处。 将输出映射到UART上面就好了
JTAG_UART是阻塞式输出,他只是将数据输出到buffer中,等待你上位机读取,当你的buffer满了之后就会停止cpu。所以在调试模式下面可以正常运行,因为nios2IDE会读取buffer里面的值。
UART是不管你有没有接受,都会一直发送数据的。不会阻塞CPU。
当你下载到flash里面运行需要改为UART输出信息。 回复【11楼】jiangjx
回复【10楼】marco.ma
-----------------------------------------------------------------------
没看到有打印出来数据 ,我是插着调试器的
请问你说的插着调试器 是什么意思呢?
-----------------------------------------------------------------------
当然是说要用nios2-terminal 不停读取jtag-uart的输出才可以。 如果只是物理上插着jtag, 没有用jtag程序看结果, 效果一样。
楼上说的对, 你可以将标准输出设备改成uart, 或者null, 就没有这问题了。 回复【14楼】marco.ma
-----------------------------------------------------------------------
原来如此,
要用nios2-terminal 不停读取jtag-uart的输出 该如何来操作呢?
哪里有说明文档呢?
怎么在网上都没看到有类似的解析说明?
页:
[1]