基于嵌入式NiosⅡ软核的串口直接读写寄存器方式编程
O 引言
Altera公司的FPGA作为全定制芯片的一个代表正在得到日益广泛的应用。为了用户使用方便,Altera公司推出嵌入式软核NiosⅡ可以便利地使用工具生成并放人FPGA芯片中。NiosⅡ软核可以在用户的系统中处理一些诸如人机接口界面、内部时序逻辑控制、外部设备初始化等工作。通用异步收发器(UART),是嵌入式系统上很常用的一个串行接口,由于其方便、简单、易用等特性,在嵌入式系统中依然扮演着十分重要的角色。所以Altera才把UART作为一个连接Nios/NiosⅡ与其相关外设的IP放在SoPC Builder里面供用户使用。Nios一代调试甚至直接用串口。
NiosⅡ处理器是Intel公司为Altera公司推出的一个32位精简指令处理器软核。在Altera公司推出的软件SoPC中加载NiosⅡ软核和相应的外围接口以及与定义相应的自定义指令,然后对设计进行综合,下载到FPGA中就可以方便地实现一个具有高速DSP功能的嵌入式处理器。
NiosⅡ处理器的软件开发是建立在ANSI C基础上的。NiosⅡIDE是NiosⅡ系列嵌入式处理器的主要软件开发工具。用户可以在NiosⅡIDE中完成所有的软件开发任务,如编辑、编译、下载、调试和闪存编程。NiosⅡ嵌入式系统的一个重要问题就是软件代码量的大小,这关系到存放代码的存储器件容量大小,因此控制和减小程序代码量是降低系统成本的重要方法,必须首先从处理器的启动顺序开始研究。
1 串口C语言方式编程
使用该方法要加上下面语句:
执行上面程序可以得到串口输出结果。
如果不调用alt_main()函数,则系统默认运行步骤如下:
(1)调用alt_os_int()函数来执行任何操作系统所特有的初始化。如果HAL是在操作系统里运行的,那么初始化alt_fd_list_lock命令。它可以控制访问HAL文件系统,初始化中断控制器并执行中断。
(2)调用alt_sys_init()函数,以初始化系统里所有的驱动装置和软件组成部分。
(3)重新设置C标准I/O通道(stdin,stdout,stderr),以使用合适的器件。
(4)调用main()。
(5)调用exit()。main()的返回代码作为exit()的输入。
该方式使用串口比较简单,但是占用的存储资源比较大,编译时间也较长。
评论