首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

向uart输出“helloworld”时奇怪的问题

向uart输出“helloworld”时奇怪的问题

今天遇到了奇怪的问题,我以uart作为标准的输入输出,nios核的reset和exception address都设为了SDRAM,而运行时的text和ro也设为了sdram,在用while循环printf(“hello world”)命令时,按理说这时只会向uart输出信息的,可是我在niosIDE的console窗口下也看到了helloworld,关掉nios-terminal进程后,用串口助手也能看到helloworld。可是当我重新编译了sopc核后,就不能在console中看到向uart输出的信息了,同时,再使用串口助手也看不到向uart发出的helloworld了。

实际上,我唯一一次能用串口助手看到信息就是在console中同时可以看到hello的条件下,当console中不显示hello了,在串口助手中也看不到hello了。。。

困惑啊,为什么会在console下看到向uart输出的信息呢???就算这是巧合,那为什么后来重新编译后,就再也不能在串口助手上看到输出信息了呢???

[em14]

一般来说不可能同时出现console中和uart同时都有输出的情况,看看你标准输出端口设置在什么地方,是jtag_uart还是uart呢?

在交流中前进,共同实现nios的应用。

使用JTAG_UART进行调试时,要在system library中把stdout\ stdin\ stderr都导向jtag_uart,这样在调试时就会在nios IIconsole中看到结果了。

nios II在调试时,启动了一个叫nios2-terminal的进程,该进程相当于一个串口调试软件,因此你可以在nios IIconsole中看到结果。当选择stdout\ stdin\ stderrJTAG_UART时,nios II会分配一个虚拟的串口给nios2-terminal,但是如果你选择stdout\ stdin\ stderr为其他UART时,nios II会分配一个实际的硬件串口给nios2-terminal,在runTatget connetion中可以选择和更改串口号,这样你就没必要使用其他的串口调试软件来调试了。

如果你想同时使用JTAG_UART和其他UART时,system library中就一定不要选上Lightweight device driver APIreduced device drivers,然后在max file descriptors中填上一个合适的数字。这样你就可以在nios IIconsole中和其他串口调试软件中分别看到JTAG_UART和其他UART发送的数据了。

返回列表