在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 2497|回复: 0

[求助]使用alt_main和uart的api时的疑问

[复制链接]
发表于 2008-12-19 23:27:22 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
目的:
利用alt_main以及uart模块提供的api函数编写一个简单的串口发送程序
前提:
使用nios II 8.0版本,已经设计好相应的硬件(PTF文件).system library设置中只勾选了"Clean exit"和"Reduced device driver".此时uart将采用fd(文件描述器)和small模式的驱动.在alt_main中已经调用了alt_irq_init()和alt_sys_init().
疑问:
观察altera_avalon_uart_fd.h可知在调用alt_sys_init()时已经实例化了一个全局变量uart,可是在alt_main中调用uart的api函数时使用这个全局变量时编译又会出错,就算添加了extern altera_avalon_uart_dev uart这句话还是不行。只有自己在alt_main中实例化一个uart时,才能用altera_avalon_uart_write(&uart.state,str,strlen(str),~O_NONBLOCK);请问这是为什么啊? 不加这句话进行IIS调试时可以添加全局变量uart,说明已经有了这个变量,却无法使用。不理解其中原由,还是我的理解有错?请高手指点,谢谢

ps:看过uart nios中文使用说明。已经把uart的api内容解释的很清楚,可是刚到应用部分就没有了,没有解决我心中的疑问。
代码如下所示:
#include"system.h"
#include"alt_types.h"
#include"sys/alt_irq.h"
#include"sys/alt_sys_init.h"
#include"altera_avalon_uart.h"
#include"altera_avalon_uart_fd.h"
#include<string.h>
#include<fcntl.h>
extern altera_avalon_uart_dev uart;
int main(void) __attribute__((weak,alias("alt_main")));
void alt_main(void)
{
//altera_avalon_uart_state uart;
//uart.base=UART_BASE; //不添加这两句就是没有uart这个变量
char *str="hello my nios ^_^";


alt_irq_init(ALT_IRQ_BASE);
alt_sys_init();
while(1)
{
// altera_avalon_uart_write(&uart.state,str,strlen(str),~O_NONBLOCK);
}
}
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条

×

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-5-13 23:49 , Processed in 0.025036 second(s), 8 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表